refactor: Application Serviceをリファクタリング3

This commit is contained in:
usbharu 2024-09-14 21:52:27 +09:00
parent 3a923c7c57
commit 6904bc0692
Signed by: usbharu
GPG Key ID: 6556747BF94EEBC8
38 changed files with 66 additions and 362 deletions

View File

@ -16,7 +16,7 @@
package dev.usbharu.hideout.core.application.media
import dev.usbharu.hideout.core.application.post.MediaDetail
import dev.usbharu.hideout.core.application.model.MediaDetail
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
import dev.usbharu.hideout.core.application.shared.Transaction
import dev.usbharu.hideout.core.domain.model.media.*

View File

@ -1,4 +1,4 @@
package dev.usbharu.hideout.core.application.post
package dev.usbharu.hideout.core.application.model
import dev.usbharu.hideout.core.domain.model.media.Media
import java.net.URI

View File

@ -1,6 +1,5 @@
package dev.usbharu.hideout.core.application.model
import dev.usbharu.hideout.core.application.post.MediaDetail
import dev.usbharu.hideout.core.domain.model.actor.Actor
import dev.usbharu.hideout.core.domain.model.media.Media
import dev.usbharu.hideout.core.domain.model.post.Post

View File

@ -1,3 +0,0 @@
package dev.usbharu.hideout.core.application.post
data class GetPostDetail(val postId: Long)

View File

@ -98,3 +98,5 @@ class GetPostDetailApplicationService(
private val logger = LoggerFactory.getLogger(GetPostDetailApplicationService::class.java)
}
}
data class GetPostDetail(val postId: Long)

View File

@ -1,58 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.post
import dev.usbharu.hideout.core.domain.model.post.Post
import dev.usbharu.hideout.core.domain.model.post.Visibility
import java.net.URI
import java.time.Instant
data class Post(
val id: Long,
val actorId: Long,
val overview: String?,
val text: String,
val content: String,
val createdAt: Instant,
val visibility: Visibility,
val url: URI,
val repostId: Long?,
val replyId: Long?,
val sensitive: Boolean,
val mediaIds: List<Long>,
val moveTo: Long?,
) {
companion object {
fun of(post: Post): dev.usbharu.hideout.core.application.post.Post {
return Post(
id = post.id.id,
actorId = post.actorId.id,
overview = post.overview?.overview,
text = post.text,
content = post.content.content,
createdAt = post.createdAt,
visibility = post.visibility,
url = post.url,
repostId = post.repostId?.id,
replyId = post.replyId?.id,
sensitive = post.sensitive,
mediaIds = post.mediaIds.map { it.id },
moveTo = post.moveTo?.id
)
}
}
}

View File

@ -1,29 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.post
import dev.usbharu.hideout.core.domain.model.post.Visibility
data class RegisterLocalPost(
val content: String,
val overview: String?,
val visibility: Visibility,
val repostId: Long?,
val replyId: Long?,
val sensitive: Boolean,
val mediaIds: List<Long>,
)

View File

@ -24,6 +24,7 @@ import dev.usbharu.hideout.core.domain.model.media.MediaId
import dev.usbharu.hideout.core.domain.model.post.PostId
import dev.usbharu.hideout.core.domain.model.post.PostOverview
import dev.usbharu.hideout.core.domain.model.post.PostRepository
import dev.usbharu.hideout.core.domain.model.post.Visibility
import dev.usbharu.hideout.core.domain.model.support.principal.LocalUser
import dev.usbharu.hideout.core.infrastructure.factory.PostFactoryImpl
import org.slf4j.Logger
@ -64,3 +65,13 @@ class RegisterLocalPostApplicationService(
val logger: Logger = LoggerFactory.getLogger(RegisterLocalPostApplicationService::class.java)
}
}
data class RegisterLocalPost(
val content: String,
val overview: String?,
val visibility: Visibility,
val repostId: Long?,
val replyId: Long?,
val sensitive: Boolean,
val mediaIds: List<Long>,
)

View File

@ -1,25 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.post
data class UpdateLocalNote(
val postId: Long,
val overview: String?,
val content: String,
val sensitive: Boolean,
val mediaIds: List<Long>
)

View File

@ -64,3 +64,11 @@ class UpdateLocalNoteApplicationService(
private val logger = LoggerFactory.getLogger(UpdateLocalNoteApplicationService::class.java)
}
}
data class UpdateLocalNote(
val postId: Long,
val overview: String?,
val content: String,
val sensitive: Boolean,
val mediaIds: List<Long>
)

View File

@ -1,3 +0,0 @@
package dev.usbharu.hideout.core.application.reaction
data class CreateReaction(val postId: Long, val customEmojiId: Long?, val unicodeEmoji: String)

View File

@ -1,7 +0,0 @@
package dev.usbharu.hideout.core.application.reaction
data class RemoveReaction(
val postId: Long,
val customEmojiId: Long?,
val unicodeEmoji: String
)

View File

@ -63,3 +63,5 @@ class UserCreateReactionApplicationService(
private val logger = LoggerFactory.getLogger(UserCreateReactionApplicationService::class.java)
}
}
data class CreateReaction(val postId: Long, val customEmojiId: Long?, val unicodeEmoji: String)

View File

@ -49,3 +49,9 @@ class UserRemoveReactionApplicationService(
private val logger = LoggerFactory.getLogger(UserRemoveReactionApplicationService::class.java)
}
}
data class RemoveReaction(
val postId: Long,
val customEmojiId: Long?,
val unicodeEmoji: String
)

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.get
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.model.Relationship
@ -70,3 +70,5 @@ class GetRelationshipApplicationService(
private val logger = LoggerFactory.getLogger(GetRelationshipApplicationService::class.java)
}
}
data class GetRelationship(val targetActorId: Long)

View File

@ -14,10 +14,9 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.acceptfollowrequest
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.relationship.block.UserBlockApplicationService
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
import dev.usbharu.hideout.core.application.shared.Transaction
import dev.usbharu.hideout.core.domain.model.actor.ActorId
@ -52,3 +51,5 @@ class UserAcceptFollowRequestApplicationService(
private val logger = LoggerFactory.getLogger(UserBlockApplicationService::class.java)
}
}
data class AcceptFollowRequest(val sourceActorId: Long)

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.block
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
import dev.usbharu.hideout.core.application.shared.Transaction
@ -61,3 +61,5 @@ class UserBlockApplicationService(
private val logger = LoggerFactory.getLogger(UserBlockApplicationService::class.java)
}
}
data class Block(val targetActorId: Long)

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.followrequest
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
@ -56,3 +56,5 @@ class UserFollowRequestApplicationService(
private val logger = LoggerFactory.getLogger(UserFollowRequestApplicationService::class.java)
}
}
data class FollowRequest(val targetActorId: Long)

View File

@ -14,10 +14,9 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.mute
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.relationship.block.UserBlockApplicationService
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
import dev.usbharu.hideout.core.application.shared.Transaction
import dev.usbharu.hideout.core.domain.model.actor.ActorId
@ -54,3 +53,5 @@ class UserMuteApplicationService(
private val logger = LoggerFactory.getLogger(UserBlockApplicationService::class.java)
}
}
data class Mute(val targetActorId: Long)

View File

@ -14,10 +14,9 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.rejectfollowrequest
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.relationship.block.UserBlockApplicationService
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
import dev.usbharu.hideout.core.application.shared.Transaction
import dev.usbharu.hideout.core.domain.model.actor.ActorId
@ -52,3 +51,5 @@ class UserRejectFollowRequestApplicationService(
private val logger = LoggerFactory.getLogger(UserBlockApplicationService::class.java)
}
}
data class RejectFollowRequest(val sourceActorId: Long)

View File

@ -14,10 +14,9 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.removefromfollowers
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.relationship.block.UserBlockApplicationService
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
import dev.usbharu.hideout.core.application.shared.Transaction
import dev.usbharu.hideout.core.domain.model.actor.ActorId
@ -54,3 +53,5 @@ class UserRemoveFromFollowersApplicationService(
private val logger = LoggerFactory.getLogger(UserBlockApplicationService::class.java)
}
}
data class RemoveFromFollowers(val targetActorId: Long)

View File

@ -14,10 +14,9 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.unblock
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.relationship.block.UserBlockApplicationService
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
import dev.usbharu.hideout.core.application.shared.Transaction
import dev.usbharu.hideout.core.domain.model.actor.ActorId
@ -54,3 +53,5 @@ class UserUnblockApplicationService(
private val logger = LoggerFactory.getLogger(UserBlockApplicationService::class.java)
}
}
data class Unblock(val targetActorId: Long)

View File

@ -14,10 +14,9 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.unfollow
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.relationship.block.UserBlockApplicationService
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
import dev.usbharu.hideout.core.application.shared.Transaction
import dev.usbharu.hideout.core.domain.model.actor.ActorId
@ -54,3 +53,5 @@ class UserUnfollowApplicationService(
private val logger = LoggerFactory.getLogger(UserBlockApplicationService::class.java)
}
}
data class Unfollow(val targetActorId: Long)

View File

@ -14,10 +14,9 @@
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.unmute
package dev.usbharu.hideout.core.application.relationship
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.relationship.block.UserBlockApplicationService
import dev.usbharu.hideout.core.application.shared.LocalUserAbstractApplicationService
import dev.usbharu.hideout.core.application.shared.Transaction
import dev.usbharu.hideout.core.domain.model.actor.ActorId
@ -54,3 +53,5 @@ class UserUnmuteApplicationService(
private val logger = LoggerFactory.getLogger(UserBlockApplicationService::class.java)
}
}
data class Unmute(val targetActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.acceptfollowrequest
data class AcceptFollowRequest(val sourceActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.block
data class Block(val targetActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.followrequest
data class FollowRequest(val targetActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.get
data class GetRelationship(val targetActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.mute
data class Mute(val targetActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.rejectfollowrequest
data class RejectFollowRequest(val sourceActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.removefromfollowers
data class RemoveFromFollowers(val targetActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.unblock
data class Unblock(val targetActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.unfollow
data class Unfollow(val targetActorId: Long)

View File

@ -1,19 +0,0 @@
/*
* Copyright (C) 2024 usbharu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package dev.usbharu.hideout.core.application.relationship.unmute
data class Unmute(val targetActorId: Long)

View File

@ -1,8 +1,8 @@
package dev.usbharu.hideout.core.infrastructure.exposedquery
import dev.usbharu.hideout.core.application.model.ActorDetail
import dev.usbharu.hideout.core.application.model.MediaDetail
import dev.usbharu.hideout.core.application.model.PostDetail
import dev.usbharu.hideout.core.application.post.MediaDetail
import dev.usbharu.hideout.core.domain.model.post.PostId
import dev.usbharu.hideout.core.domain.model.post.Visibility
import dev.usbharu.hideout.core.domain.model.support.principal.Principal

View File

@ -3,12 +3,7 @@ package dev.usbharu.hideout.core.interfaces.web.user
import dev.usbharu.hideout.core.application.actor.GetActorDetail
import dev.usbharu.hideout.core.application.actor.GetActorDetailApplicationService
import dev.usbharu.hideout.core.application.instance.GetLocalInstanceApplicationService
import dev.usbharu.hideout.core.application.relationship.followrequest.FollowRequest
import dev.usbharu.hideout.core.application.relationship.followrequest.UserFollowRequestApplicationService
import dev.usbharu.hideout.core.application.relationship.get.GetRelationship
import dev.usbharu.hideout.core.application.relationship.get.GetRelationshipApplicationService
import dev.usbharu.hideout.core.application.relationship.unfollow.Unfollow
import dev.usbharu.hideout.core.application.relationship.unfollow.UserUnfollowApplicationService
import dev.usbharu.hideout.core.application.relationship.*
import dev.usbharu.hideout.core.application.timeline.GetUserTimeline
import dev.usbharu.hideout.core.application.timeline.GetUserTimelineApplicationService
import dev.usbharu.hideout.core.domain.model.support.acct.Acct

View File

@ -1,6 +1,8 @@
package dev.usbharu.hideout.core.application.relationship.acceptfollowrequest
import dev.usbharu.hideout.core.application.exception.InternalServerException
import dev.usbharu.hideout.core.application.relationship.AcceptFollowRequest
import dev.usbharu.hideout.core.application.relationship.UserAcceptFollowRequestApplicationService
import dev.usbharu.hideout.core.domain.model.actor.ActorId
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
import dev.usbharu.hideout.core.domain.model.actor.TestActorFactory

View File

@ -19,26 +19,7 @@ package dev.usbharu.hideout.mastodon.interfaces.api
import dev.usbharu.hideout.core.application.actor.GetUserDetail
import dev.usbharu.hideout.core.application.actor.GetUserDetailApplicationService
import dev.usbharu.hideout.core.application.exception.PermissionDeniedException
import dev.usbharu.hideout.core.application.relationship.acceptfollowrequest.AcceptFollowRequest
import dev.usbharu.hideout.core.application.relationship.acceptfollowrequest.UserAcceptFollowRequestApplicationService
import dev.usbharu.hideout.core.application.relationship.block.Block
import dev.usbharu.hideout.core.application.relationship.block.UserBlockApplicationService
import dev.usbharu.hideout.core.application.relationship.followrequest.FollowRequest
import dev.usbharu.hideout.core.application.relationship.followrequest.UserFollowRequestApplicationService
import dev.usbharu.hideout.core.application.relationship.get.GetRelationship
import dev.usbharu.hideout.core.application.relationship.get.GetRelationshipApplicationService
import dev.usbharu.hideout.core.application.relationship.mute.Mute
import dev.usbharu.hideout.core.application.relationship.mute.UserMuteApplicationService
import dev.usbharu.hideout.core.application.relationship.rejectfollowrequest.RejectFollowRequest
import dev.usbharu.hideout.core.application.relationship.rejectfollowrequest.UserRejectFollowRequestApplicationService
import dev.usbharu.hideout.core.application.relationship.removefromfollowers.RemoveFromFollowers
import dev.usbharu.hideout.core.application.relationship.removefromfollowers.UserRemoveFromFollowersApplicationService
import dev.usbharu.hideout.core.application.relationship.unblock.Unblock
import dev.usbharu.hideout.core.application.relationship.unblock.UserUnblockApplicationService
import dev.usbharu.hideout.core.application.relationship.unfollow.Unfollow
import dev.usbharu.hideout.core.application.relationship.unfollow.UserUnfollowApplicationService
import dev.usbharu.hideout.core.application.relationship.unmute.Unmute
import dev.usbharu.hideout.core.application.relationship.unmute.UserUnmuteApplicationService
import dev.usbharu.hideout.core.application.relationship.*
import dev.usbharu.hideout.core.domain.model.support.principal.Principal
import dev.usbharu.hideout.core.infrastructure.springframework.oauth2.SpringSecurityOauth2PrincipalContextHolder
import dev.usbharu.hideout.mastodon.application.accounts.GetAccount