From b64e983caec7c8c48655ce2c92ad83ac5910256e Mon Sep 17 00:00:00 2001 From: usbharu <64310155+usbharu@users.noreply.github.com> Date: Thu, 10 Aug 2023 19:17:07 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=B8=8D=E8=A6=81=E3=81=AA?= =?UTF-8?q?=E9=96=A2=E6=95=B0=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activitypub/ActivityPubAcceptServiceImpl.kt | 10 +++++++--- .../service/activitypub/ActivityPubLikeServiceImpl.kt | 8 ++++---- .../service/activitypub/ActivityPubUndoServiceImpl.kt | 8 +++++--- .../dev/usbharu/hideout/service/user/IUserService.kt | 4 ---- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubAcceptServiceImpl.kt b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubAcceptServiceImpl.kt index 2e4b212a..19df2c97 100644 --- a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubAcceptServiceImpl.kt +++ b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubAcceptServiceImpl.kt @@ -5,12 +5,16 @@ import dev.usbharu.hideout.domain.model.ActivityPubStringResponse import dev.usbharu.hideout.domain.model.ap.Accept import dev.usbharu.hideout.domain.model.ap.Follow import dev.usbharu.hideout.exception.ap.IllegalActivityPubObjectException +import dev.usbharu.hideout.query.UserQueryService import dev.usbharu.hideout.service.user.IUserService import io.ktor.http.* import org.koin.core.annotation.Single @Single -class ActivityPubAcceptServiceImpl(private val userService: IUserService) : ActivityPubAcceptService { +class ActivityPubAcceptServiceImpl( + private val userService: IUserService, + private val userQueryService: UserQueryService +) : ActivityPubAcceptService { override suspend fun receiveAccept(accept: Accept): ActivityPubResponse { val value = accept.`object` ?: throw IllegalActivityPubObjectException("object is null") if (value.type.contains("Follow").not()) { @@ -20,8 +24,8 @@ class ActivityPubAcceptServiceImpl(private val userService: IUserService) : Acti val follow = value as Follow val userUrl = follow.`object` ?: throw IllegalActivityPubObjectException("object is null") val followerUrl = follow.actor ?: throw IllegalActivityPubObjectException("actor is null") - val user = userService.findByUrl(userUrl) - val follower = userService.findByUrl(followerUrl) + val user = userQueryService.findByUrl(userUrl) + val follower = userQueryService.findByUrl(followerUrl) userService.follow(user.id, follower.id) return ActivityPubStringResponse(HttpStatusCode.OK, "accepted") } diff --git a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubLikeServiceImpl.kt b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubLikeServiceImpl.kt index 4d946e2e..72a50f8a 100644 --- a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubLikeServiceImpl.kt +++ b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubLikeServiceImpl.kt @@ -5,9 +5,9 @@ import dev.usbharu.hideout.domain.model.ActivityPubStringResponse import dev.usbharu.hideout.domain.model.ap.Like import dev.usbharu.hideout.exception.PostNotFoundException import dev.usbharu.hideout.exception.ap.IllegalActivityPubObjectException +import dev.usbharu.hideout.query.UserQueryService import dev.usbharu.hideout.repository.IPostRepository import dev.usbharu.hideout.service.reaction.IReactionService -import dev.usbharu.hideout.service.user.IUserService import io.ktor.http.* import org.koin.core.annotation.Single @@ -15,9 +15,9 @@ import org.koin.core.annotation.Single class ActivityPubLikeServiceImpl( private val reactionService: IReactionService, private val activityPubUserService: ActivityPubUserService, - private val userService: IUserService, private val postService: IPostRepository, - private val activityPubNoteService: ActivityPubNoteService + private val activityPubNoteService: ActivityPubNoteService, + private val userQueryService: UserQueryService ) : ActivityPubLikeService { override suspend fun receiveLike(like: Like): ActivityPubResponse { val actor = like.actor ?: throw IllegalActivityPubObjectException("actor is null") @@ -26,7 +26,7 @@ class ActivityPubLikeServiceImpl( val person = activityPubUserService.fetchPerson(actor) activityPubNoteService.fetchNote(like.`object`!!) - val user = userService.findByUrl( + val user = userQueryService.findByUrl( person.url ?: throw IllegalActivityPubObjectException("actor is not found") ) diff --git a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubUndoServiceImpl.kt b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubUndoServiceImpl.kt index 03daa340..16a8ecec 100644 --- a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubUndoServiceImpl.kt +++ b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubUndoServiceImpl.kt @@ -4,6 +4,7 @@ import dev.usbharu.hideout.domain.model.ActivityPubResponse import dev.usbharu.hideout.domain.model.ActivityPubStringResponse import dev.usbharu.hideout.domain.model.ap.Follow import dev.usbharu.hideout.domain.model.ap.Undo +import dev.usbharu.hideout.query.UserQueryService import dev.usbharu.hideout.service.user.IUserService import io.ktor.http.* import org.koin.core.annotation.Single @@ -12,7 +13,8 @@ import org.koin.core.annotation.Single @Suppress("UnsafeCallOnNullableType") class ActivityPubUndoServiceImpl( private val userService: IUserService, - private val activityPubUserService: ActivityPubUserService + private val activityPubUserService: ActivityPubUserService, + private val userQueryService: UserQueryService ) : ActivityPubUndoService { override suspend fun receiveUndo(undo: Undo): ActivityPubResponse { if (undo.actor == null) { @@ -33,8 +35,8 @@ class ActivityPubUndoServiceImpl( } activityPubUserService.fetchPerson(undo.actor!!, follow.`object`) - val follower = userService.findByUrl(undo.actor!!) - val target = userService.findByUrl(follow.`object`!!) + val follower = userQueryService.findByUrl(undo.actor!!) + val target = userQueryService.findByUrl(follow.`object`!!) userService.unfollow(target.id, follower.id) } diff --git a/src/main/kotlin/dev/usbharu/hideout/service/user/IUserService.kt b/src/main/kotlin/dev/usbharu/hideout/service/user/IUserService.kt index 1df65bf9..730b4c09 100644 --- a/src/main/kotlin/dev/usbharu/hideout/service/user/IUserService.kt +++ b/src/main/kotlin/dev/usbharu/hideout/service/user/IUserService.kt @@ -7,10 +7,6 @@ import dev.usbharu.hideout.domain.model.hideout.entity.User @Suppress("TooManyFunctions") interface IUserService { - suspend fun findByNameLocalUser(name: String): User - - suspend fun findByUrl(url: String): User - suspend fun findByUrls(urls: List<String>): List<User> suspend fun usernameAlreadyUse(username: String): Boolean