mirror of https://github.com/usbharu/Hideout.git
refactor: 不要なQueryServiceを削除
This commit is contained in:
parent
3571ab22e3
commit
bf4d694aa2
|
@ -4,11 +4,11 @@ import com.fasterxml.jackson.databind.ObjectMapper
|
||||||
import dev.usbharu.hideout.core.domain.exception.resource.PostNotFoundException
|
import dev.usbharu.hideout.core.domain.exception.resource.PostNotFoundException
|
||||||
import dev.usbharu.hideout.core.domain.exception.resource.UserNotFoundException
|
import dev.usbharu.hideout.core.domain.exception.resource.UserNotFoundException
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
|
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.reaction.Reaction
|
import dev.usbharu.hideout.core.domain.model.reaction.Reaction
|
||||||
import dev.usbharu.hideout.core.external.job.DeliverReactionJob
|
import dev.usbharu.hideout.core.external.job.DeliverReactionJob
|
||||||
import dev.usbharu.hideout.core.external.job.DeliverRemoveReactionJob
|
import dev.usbharu.hideout.core.external.job.DeliverRemoveReactionJob
|
||||||
import dev.usbharu.hideout.core.query.FollowerQueryService
|
import dev.usbharu.hideout.core.query.FollowerQueryService
|
||||||
import dev.usbharu.hideout.core.query.PostQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.job.JobQueueParentService
|
import dev.usbharu.hideout.core.service.job.JobQueueParentService
|
||||||
import org.springframework.beans.factory.annotation.Qualifier
|
import org.springframework.beans.factory.annotation.Qualifier
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
@ -22,15 +22,15 @@ interface APReactionService {
|
||||||
class APReactionServiceImpl(
|
class APReactionServiceImpl(
|
||||||
private val jobQueueParentService: JobQueueParentService,
|
private val jobQueueParentService: JobQueueParentService,
|
||||||
private val followerQueryService: FollowerQueryService,
|
private val followerQueryService: FollowerQueryService,
|
||||||
private val postQueryService: PostQueryService,
|
|
||||||
private val actorRepository: ActorRepository,
|
private val actorRepository: ActorRepository,
|
||||||
@Qualifier("activitypub") private val objectMapper: ObjectMapper
|
@Qualifier("activitypub") private val objectMapper: ObjectMapper,
|
||||||
|
private val postRepository: PostRepository
|
||||||
) : APReactionService {
|
) : APReactionService {
|
||||||
override suspend fun reaction(like: Reaction) {
|
override suspend fun reaction(like: Reaction) {
|
||||||
val followers = followerQueryService.findFollowersById(like.actorId)
|
val followers = followerQueryService.findFollowersById(like.actorId)
|
||||||
val user = actorRepository.findById(like.actorId) ?: throw UserNotFoundException.withId(like.actorId)
|
val user = actorRepository.findById(like.actorId) ?: throw UserNotFoundException.withId(like.actorId)
|
||||||
val post =
|
val post =
|
||||||
postQueryService.findById(like.postId) ?: throw PostNotFoundException.withId(like.postId)
|
postRepository.findById(like.postId) ?: throw PostNotFoundException.withId(like.postId)
|
||||||
followers.forEach { follower ->
|
followers.forEach { follower ->
|
||||||
jobQueueParentService.schedule(DeliverReactionJob) {
|
jobQueueParentService.schedule(DeliverReactionJob) {
|
||||||
props[DeliverReactionJob.actor] = user.url
|
props[DeliverReactionJob.actor] = user.url
|
||||||
|
@ -46,7 +46,7 @@ class APReactionServiceImpl(
|
||||||
val followers = followerQueryService.findFollowersById(like.actorId)
|
val followers = followerQueryService.findFollowersById(like.actorId)
|
||||||
val user = actorRepository.findById(like.actorId) ?: throw UserNotFoundException.withId(like.actorId)
|
val user = actorRepository.findById(like.actorId) ?: throw UserNotFoundException.withId(like.actorId)
|
||||||
val post =
|
val post =
|
||||||
postQueryService.findById(like.postId) ?: throw PostNotFoundException.withId(like.postId)
|
postRepository.findById(like.postId) ?: throw PostNotFoundException.withId(like.postId)
|
||||||
followers.forEach { follower ->
|
followers.forEach { follower ->
|
||||||
jobQueueParentService.schedule(DeliverRemoveReactionJob) {
|
jobQueueParentService.schedule(DeliverRemoveReactionJob) {
|
||||||
props[DeliverRemoveReactionJob.actor] = user.url
|
props[DeliverRemoveReactionJob.actor] = user.url
|
||||||
|
|
|
@ -11,7 +11,7 @@ import dev.usbharu.hideout.core.domain.exception.resource.PostNotFoundException
|
||||||
import dev.usbharu.hideout.core.domain.exception.resource.UserNotFoundException
|
import dev.usbharu.hideout.core.domain.exception.resource.UserNotFoundException
|
||||||
import dev.usbharu.hideout.core.domain.exception.resource.local.LocalUserNotFoundException
|
import dev.usbharu.hideout.core.domain.exception.resource.local.LocalUserNotFoundException
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.query.PostQueryService
|
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
||||||
import dev.usbharu.hideout.core.service.reaction.ReactionService
|
import dev.usbharu.hideout.core.service.reaction.ReactionService
|
||||||
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
@ -21,9 +21,9 @@ class APUndoProcessor(
|
||||||
transaction: Transaction,
|
transaction: Transaction,
|
||||||
private val apUserService: APUserService,
|
private val apUserService: APUserService,
|
||||||
private val relationshipService: RelationshipService,
|
private val relationshipService: RelationshipService,
|
||||||
private val postQueryService: PostQueryService,
|
|
||||||
private val reactionService: ReactionService,
|
private val reactionService: ReactionService,
|
||||||
private val actorRepository: ActorRepository
|
private val actorRepository: ActorRepository,
|
||||||
|
private val postRepository: PostRepository
|
||||||
) :
|
) :
|
||||||
AbstractActivityPubProcessor<Undo>(transaction) {
|
AbstractActivityPubProcessor<Undo>(transaction) {
|
||||||
override suspend fun internalProcess(activity: ActivityPubProcessContext<Undo>) {
|
override suspend fun internalProcess(activity: ActivityPubProcessContext<Undo>) {
|
||||||
|
@ -81,7 +81,7 @@ class APUndoProcessor(
|
||||||
val like = undo.apObject as Like
|
val like = undo.apObject as Like
|
||||||
|
|
||||||
val post =
|
val post =
|
||||||
postQueryService.findByUrl(like.apObject) ?: throw PostNotFoundException.withUrl(like.apObject)
|
postRepository.findByUrl(like.apObject) ?: throw PostNotFoundException.withUrl(like.apObject)
|
||||||
|
|
||||||
val signer =
|
val signer =
|
||||||
actorRepository.findById(post.actorId) ?: throw LocalUserNotFoundException.withId(post.actorId)
|
actorRepository.findById(post.actorId) ?: throw LocalUserNotFoundException.withId(post.actorId)
|
||||||
|
|
|
@ -9,7 +9,6 @@ import dev.usbharu.hideout.activitypub.service.objects.user.APUserService
|
||||||
import dev.usbharu.hideout.core.domain.model.post.Post
|
import dev.usbharu.hideout.core.domain.model.post.Post
|
||||||
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
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.post.Visibility
|
||||||
import dev.usbharu.hideout.core.query.PostQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.media.MediaService
|
import dev.usbharu.hideout.core.service.media.MediaService
|
||||||
import dev.usbharu.hideout.core.service.media.RemoteMedia
|
import dev.usbharu.hideout.core.service.media.RemoteMedia
|
||||||
import dev.usbharu.hideout.core.service.post.PostService
|
import dev.usbharu.hideout.core.service.post.PostService
|
||||||
|
@ -29,7 +28,6 @@ interface APNoteService {
|
||||||
class APNoteServiceImpl(
|
class APNoteServiceImpl(
|
||||||
private val postRepository: PostRepository,
|
private val postRepository: PostRepository,
|
||||||
private val apUserService: APUserService,
|
private val apUserService: APUserService,
|
||||||
private val postQueryService: PostQueryService,
|
|
||||||
private val postService: PostService,
|
private val postService: PostService,
|
||||||
private val apResourceResolveService: APResourceResolveService,
|
private val apResourceResolveService: APResourceResolveService,
|
||||||
private val postBuilder: Post.PostBuilder,
|
private val postBuilder: Post.PostBuilder,
|
||||||
|
@ -97,7 +95,7 @@ class APNoteServiceImpl(
|
||||||
|
|
||||||
val reply = note.inReplyTo?.let {
|
val reply = note.inReplyTo?.let {
|
||||||
fetchNote(it, targetActor)
|
fetchNote(it, targetActor)
|
||||||
postQueryService.findByUrl(it)
|
postRepository.findByUrl(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
val mediaList = note.attachment.map {
|
val mediaList = note.attachment.map {
|
||||||
|
|
|
@ -4,4 +4,5 @@ interface DeletedActorRepository {
|
||||||
suspend fun save(deletedActor: DeletedActor): DeletedActor
|
suspend fun save(deletedActor: DeletedActor): DeletedActor
|
||||||
suspend fun delete(deletedActor: DeletedActor)
|
suspend fun delete(deletedActor: DeletedActor)
|
||||||
suspend fun findById(id: Long): DeletedActor?
|
suspend fun findById(id: Long): DeletedActor?
|
||||||
|
suspend fun findByNameAndDomain(name: String, domain: String): DeletedActor?
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,4 +5,5 @@ interface InstanceRepository {
|
||||||
suspend fun save(instance: Instance): Instance
|
suspend fun save(instance: Instance): Instance
|
||||||
suspend fun findById(id: Long): Instance?
|
suspend fun findById(id: Long): Instance?
|
||||||
suspend fun delete(instance: Instance)
|
suspend fun delete(instance: Instance)
|
||||||
|
suspend fun findByUrl(url:String):Instance?
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,4 +5,5 @@ interface MediaRepository {
|
||||||
suspend fun save(media: Media): Media
|
suspend fun save(media: Media): Media
|
||||||
suspend fun findById(id: Long): Media?
|
suspend fun findById(id: Long): Media?
|
||||||
suspend fun delete(id: Long)
|
suspend fun delete(id: Long)
|
||||||
|
suspend fun findByRemoteUrl(remoteUrl: String): Media?
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,10 +10,8 @@ interface PostRepository {
|
||||||
suspend fun delete(id: Long)
|
suspend fun delete(id: Long)
|
||||||
suspend fun findById(id: Long): Post?
|
suspend fun findById(id: Long): Post?
|
||||||
suspend fun findByUrl(url: String): Post?
|
suspend fun findByUrl(url: String): Post?
|
||||||
suspend fun findByUrl2(url: String): Post? {
|
|
||||||
throw Exception()
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun findByApId(apId: String): Post?
|
suspend fun findByApId(apId: String): Post?
|
||||||
suspend fun existByApIdWithLock(apId: String): Boolean
|
suspend fun existByApIdWithLock(apId: String): Boolean
|
||||||
|
suspend fun findByActorId(actorId: Long): List<Post>
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,4 +9,8 @@ interface ReactionRepository {
|
||||||
suspend fun delete(reaction: Reaction): Reaction
|
suspend fun delete(reaction: Reaction): Reaction
|
||||||
suspend fun deleteByPostId(postId: Long): Int
|
suspend fun deleteByPostId(postId: Long): Int
|
||||||
suspend fun deleteByActorId(actorId: Long): Int
|
suspend fun deleteByActorId(actorId: Long): Int
|
||||||
|
suspend fun findByPostId(postId: Long): List<Reaction>
|
||||||
|
suspend fun findByPostIdAndActorIdAndEmojiId(postId: Long, actorId: Long, emojiId: Long): Reaction?
|
||||||
|
suspend fun existByPostIdAndActorIdAndEmojiId(postId: Long, actorId: Long, emojiId: Long): Boolean
|
||||||
|
suspend fun findByPostIdAndActorId(postId: Long, actorId: Long): List<Reaction>
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,4 +30,15 @@ interface RelationshipRepository {
|
||||||
suspend fun findByUserIdAndTargetUserId(actorId: Long, targetActorId: Long): Relationship?
|
suspend fun findByUserIdAndTargetUserId(actorId: Long, targetActorId: Long): Relationship?
|
||||||
|
|
||||||
suspend fun deleteByActorIdOrTargetActorId(actorId: Long, targetActorId: Long)
|
suspend fun deleteByActorIdOrTargetActorId(actorId: Long, targetActorId: Long)
|
||||||
|
|
||||||
|
suspend fun findByTargetIdAndFollowing(targetId: Long,following:Boolean):List<Relationship>
|
||||||
|
|
||||||
|
suspend fun findByTargetIdAndFollowRequestAndIgnoreFollowRequest(
|
||||||
|
maxId: Long?,
|
||||||
|
sinceId: Long?,
|
||||||
|
limit: Int,
|
||||||
|
targetId: Long,
|
||||||
|
followRequest: Boolean,
|
||||||
|
ignoreFollowRequest: Boolean
|
||||||
|
): List<Relationship>
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ package dev.usbharu.hideout.core.infrastructure.exposedquery
|
||||||
import dev.usbharu.hideout.core.domain.model.deletedActor.DeletedActor
|
import dev.usbharu.hideout.core.domain.model.deletedActor.DeletedActor
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.DeletedActors
|
import dev.usbharu.hideout.core.infrastructure.exposedrepository.DeletedActors
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.toDeletedActor
|
import dev.usbharu.hideout.core.infrastructure.exposedrepository.toDeletedActor
|
||||||
import dev.usbharu.hideout.core.query.DeletedActorQueryService
|
|
||||||
import org.jetbrains.exposed.sql.and
|
import org.jetbrains.exposed.sql.and
|
||||||
import org.jetbrains.exposed.sql.select
|
import org.jetbrains.exposed.sql.select
|
||||||
import org.springframework.stereotype.Repository
|
import org.springframework.stereotype.Repository
|
||||||
|
|
|
@ -4,18 +4,16 @@ import dev.usbharu.hideout.core.domain.model.actor.Actor
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
||||||
import dev.usbharu.hideout.core.query.FollowerQueryService
|
import dev.usbharu.hideout.core.query.FollowerQueryService
|
||||||
import dev.usbharu.hideout.core.query.RelationshipQueryService
|
|
||||||
import org.springframework.stereotype.Repository
|
import org.springframework.stereotype.Repository
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
class FollowerQueryServiceImpl(
|
class FollowerQueryServiceImpl(
|
||||||
private val relationshipQueryService: RelationshipQueryService,
|
|
||||||
private val relationshipRepository: RelationshipRepository,
|
private val relationshipRepository: RelationshipRepository,
|
||||||
private val actorRepository: ActorRepository
|
private val actorRepository: ActorRepository
|
||||||
) : FollowerQueryService {
|
) : FollowerQueryService {
|
||||||
override suspend fun findFollowersById(id: Long): List<Actor> {
|
override suspend fun findFollowersById(id: Long): List<Actor> {
|
||||||
return actorRepository.findByIds(
|
return actorRepository.findByIds(
|
||||||
relationshipQueryService.findByTargetIdAndFollowing(id, true).map { it.actorId }
|
relationshipRepository.findByTargetIdAndFollowing(id, true).map { it.actorId }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ package dev.usbharu.hideout.core.infrastructure.exposedquery
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.Instance
|
import dev.usbharu.hideout.core.infrastructure.exposedrepository.Instance
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.toInstance
|
import dev.usbharu.hideout.core.infrastructure.exposedrepository.toInstance
|
||||||
import dev.usbharu.hideout.core.query.InstanceQueryService
|
|
||||||
import org.jetbrains.exposed.sql.select
|
import org.jetbrains.exposed.sql.select
|
||||||
import org.springframework.stereotype.Repository
|
import org.springframework.stereotype.Repository
|
||||||
import dev.usbharu.hideout.core.domain.model.instance.Instance as InstanceEntity
|
import dev.usbharu.hideout.core.domain.model.instance.Instance as InstanceEntity
|
||||||
|
|
|
@ -1,25 +1,13 @@
|
||||||
package dev.usbharu.hideout.core.infrastructure.exposedquery
|
package dev.usbharu.hideout.core.infrastructure.exposedquery
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.Media
|
import dev.usbharu.hideout.core.infrastructure.exposedrepository.Media
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.PostsMedia
|
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.toMedia
|
import dev.usbharu.hideout.core.infrastructure.exposedrepository.toMedia
|
||||||
import dev.usbharu.hideout.core.query.MediaQueryService
|
|
||||||
import org.jetbrains.exposed.sql.innerJoin
|
|
||||||
import org.jetbrains.exposed.sql.select
|
import org.jetbrains.exposed.sql.select
|
||||||
import org.springframework.stereotype.Repository
|
import org.springframework.stereotype.Repository
|
||||||
import dev.usbharu.hideout.core.domain.model.media.Media as MediaEntity
|
import dev.usbharu.hideout.core.domain.model.media.Media as MediaEntity
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
class MediaQueryServiceImpl : MediaQueryService {
|
class MediaQueryServiceImpl : MediaQueryService {
|
||||||
override suspend fun findByPostId(postId: Long): List<MediaEntity> {
|
|
||||||
return Media.innerJoin(
|
|
||||||
PostsMedia,
|
|
||||||
onColumn = { id },
|
|
||||||
otherColumn = { mediaId }
|
|
||||||
)
|
|
||||||
.select { PostsMedia.postId eq postId }
|
|
||||||
.map { it.toMedia() }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun findByRemoteUrl(remoteUrl: String): MediaEntity? {
|
override suspend fun findByRemoteUrl(remoteUrl: String): MediaEntity? {
|
||||||
return Media.select { Media.remoteUrl eq remoteUrl }.forUpdate()
|
return Media.select { Media.remoteUrl eq remoteUrl }.forUpdate()
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
package dev.usbharu.hideout.core.infrastructure.exposedquery
|
|
||||||
|
|
||||||
import dev.usbharu.hideout.application.infrastructure.exposed.QueryMapper
|
|
||||||
import dev.usbharu.hideout.application.infrastructure.exposed.ResultRowMapper
|
|
||||||
import dev.usbharu.hideout.core.domain.model.post.Post
|
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.Posts
|
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.PostsMedia
|
|
||||||
import dev.usbharu.hideout.core.query.PostQueryService
|
|
||||||
import org.jetbrains.exposed.sql.select
|
|
||||||
import org.springframework.stereotype.Repository
|
|
||||||
|
|
||||||
@Repository
|
|
||||||
class PostQueryServiceImpl(
|
|
||||||
private val postResultRowMapper: ResultRowMapper<Post>,
|
|
||||||
private val postQueryMapper: QueryMapper<Post>
|
|
||||||
) : PostQueryService {
|
|
||||||
override suspend fun findById(id: Long): Post? =
|
|
||||||
Posts.leftJoin(PostsMedia)
|
|
||||||
.select { Posts.id eq id }
|
|
||||||
.singleOrNull()
|
|
||||||
?.let(postResultRowMapper::map)
|
|
||||||
|
|
||||||
override suspend fun findByUrl(url: String): Post? =
|
|
||||||
Posts.leftJoin(PostsMedia)
|
|
||||||
.select { Posts.url eq url }
|
|
||||||
.let(postQueryMapper::map)
|
|
||||||
.singleOrNull()
|
|
||||||
|
|
||||||
override suspend fun findByApId(string: String): Post? =
|
|
||||||
Posts.leftJoin(PostsMedia)
|
|
||||||
.select { Posts.apId eq string }
|
|
||||||
.let(postQueryMapper::map)
|
|
||||||
.singleOrNull()
|
|
||||||
|
|
||||||
override suspend fun findByActorId(actorId: Long): List<Post> =
|
|
||||||
Posts.leftJoin(PostsMedia).select { Posts.actorId eq actorId }.let(postQueryMapper::map)
|
|
||||||
}
|
|
|
@ -1,43 +1,8 @@
|
||||||
package dev.usbharu.hideout.core.infrastructure.exposedquery
|
package dev.usbharu.hideout.core.infrastructure.exposedquery
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.domain.model.reaction.Reaction
|
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.Reactions
|
|
||||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.toReaction
|
|
||||||
import dev.usbharu.hideout.core.query.ReactionQueryService
|
|
||||||
import org.jetbrains.exposed.sql.and
|
|
||||||
import org.jetbrains.exposed.sql.select
|
|
||||||
import org.springframework.stereotype.Repository
|
import org.springframework.stereotype.Repository
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
class ReactionQueryServiceImpl : ReactionQueryService {
|
class ReactionQueryServiceImpl : ReactionQueryService {
|
||||||
override suspend fun findByPostId(postId: Long, actorId: Long?): List<Reaction> {
|
|
||||||
return Reactions.select {
|
|
||||||
Reactions.postId.eq(postId)
|
|
||||||
}.map { it.toReaction() }
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("FunctionMaxLength")
|
|
||||||
override suspend fun findByPostIdAndActorIdAndEmojiId(postId: Long, actorId: Long, emojiId: Long): Reaction? {
|
|
||||||
return Reactions
|
|
||||||
.select {
|
|
||||||
Reactions.postId.eq(postId).and(Reactions.actorId.eq(actorId)).and(
|
|
||||||
Reactions.emojiId.eq(emojiId)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
.singleOrNull()
|
|
||||||
?.toReaction()
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun reactionAlreadyExist(postId: Long, actorId: Long, emojiId: Long): Boolean {
|
|
||||||
return Reactions.select {
|
|
||||||
Reactions.postId.eq(postId).and(Reactions.actorId.eq(actorId)).and(
|
|
||||||
Reactions.emojiId.eq(emojiId)
|
|
||||||
)
|
|
||||||
}.empty().not()
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun findByPostIdAndActorId(postId: Long, actorId: Long): List<Reaction> {
|
|
||||||
return Reactions.select { Reactions.postId eq postId and (Reactions.actorId eq actorId) }
|
|
||||||
.map { it.toReaction() }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,43 +1,8 @@
|
||||||
package dev.usbharu.hideout.core.infrastructure.exposedquery
|
package dev.usbharu.hideout.core.infrastructure.exposedquery
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.Relationship
|
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.Relationships
|
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.toRelationships
|
|
||||||
import dev.usbharu.hideout.core.query.RelationshipQueryService
|
|
||||||
import org.jetbrains.exposed.sql.and
|
|
||||||
import org.jetbrains.exposed.sql.andWhere
|
|
||||||
import org.jetbrains.exposed.sql.select
|
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
class RelationshipQueryServiceImpl : RelationshipQueryService {
|
class RelationshipQueryServiceImpl : RelationshipQueryService {
|
||||||
override suspend fun findByTargetIdAndFollowing(targetId: Long, following: Boolean): List<Relationship> =
|
|
||||||
Relationships.select { Relationships.targetActorId eq targetId and (Relationships.following eq following) }
|
|
||||||
.map { it.toRelationships() }
|
|
||||||
|
|
||||||
override suspend fun findByTargetIdAndFollowRequestAndIgnoreFollowRequest(
|
|
||||||
maxId: Long?,
|
|
||||||
sinceId: Long?,
|
|
||||||
limit: Int,
|
|
||||||
targetId: Long,
|
|
||||||
followRequest: Boolean,
|
|
||||||
ignoreFollowRequest: Boolean
|
|
||||||
): List<Relationship> {
|
|
||||||
val query = Relationships
|
|
||||||
.select {
|
|
||||||
Relationships.targetActorId.eq(targetId)
|
|
||||||
.and(Relationships.followRequest.eq(followRequest))
|
|
||||||
.and(Relationships.ignoreFollowRequestFromTarget.eq(ignoreFollowRequest))
|
|
||||||
}.limit(limit)
|
|
||||||
|
|
||||||
if (maxId != null) {
|
|
||||||
query.andWhere { Relationships.id greater maxId }
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sinceId != null) {
|
|
||||||
query.andWhere { Relationships.id less sinceId }
|
|
||||||
}
|
|
||||||
|
|
||||||
return query.map { it.toRelationships() }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
package dev.usbharu.hideout.core.query
|
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.domain.model.deletedActor.DeletedActor
|
|
||||||
|
|
||||||
interface DeletedActorQueryService {
|
|
||||||
suspend fun findByNameAndDomain(name: String, domain: String): DeletedActor?
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
package dev.usbharu.hideout.core.query
|
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.domain.model.instance.Instance
|
|
||||||
|
|
||||||
interface InstanceQueryService {
|
|
||||||
suspend fun findByUrl(url: String): Instance?
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
package dev.usbharu.hideout.core.query
|
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.domain.model.media.Media
|
|
||||||
|
|
||||||
interface MediaQueryService {
|
|
||||||
suspend fun findByPostId(postId: Long): List<Media>
|
|
||||||
suspend fun findByRemoteUrl(remoteUrl: String): Media?
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
package dev.usbharu.hideout.core.query
|
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.domain.model.post.Post
|
|
||||||
import org.springframework.stereotype.Repository
|
|
||||||
|
|
||||||
@Repository
|
|
||||||
interface PostQueryService {
|
|
||||||
suspend fun findById(id: Long): Post?
|
|
||||||
suspend fun findByUrl(url: String): Post?
|
|
||||||
suspend fun findByApId(string: String): Post?
|
|
||||||
suspend fun findByActorId(actorId: Long): List<Post>
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
package dev.usbharu.hideout.core.query
|
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.domain.model.reaction.Reaction
|
|
||||||
import org.springframework.stereotype.Repository
|
|
||||||
|
|
||||||
@Repository
|
|
||||||
interface ReactionQueryService {
|
|
||||||
suspend fun findByPostId(postId: Long, actorId: Long? = null): List<Reaction>
|
|
||||||
|
|
||||||
@Suppress("FunctionMaxLength")
|
|
||||||
suspend fun findByPostIdAndActorIdAndEmojiId(postId: Long, actorId: Long, emojiId: Long): Reaction?
|
|
||||||
|
|
||||||
suspend fun reactionAlreadyExist(postId: Long, actorId: Long, emojiId: Long): Boolean
|
|
||||||
|
|
||||||
suspend fun findByPostIdAndActorId(postId: Long, actorId: Long): List<Reaction>
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package dev.usbharu.hideout.core.query
|
|
||||||
|
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.Relationship
|
|
||||||
|
|
||||||
interface RelationshipQueryService {
|
|
||||||
|
|
||||||
suspend fun findByTargetIdAndFollowing(targetId: Long, following: Boolean): List<Relationship>
|
|
||||||
|
|
||||||
@Suppress("LongParameterList", "FunctionMaxLength")
|
|
||||||
suspend fun findByTargetIdAndFollowRequestAndIgnoreFollowRequest(
|
|
||||||
maxId: Long?,
|
|
||||||
sinceId: Long?,
|
|
||||||
limit: Int,
|
|
||||||
targetId: Long,
|
|
||||||
followRequest: Boolean,
|
|
||||||
ignoreFollowRequest: Boolean
|
|
||||||
): List<Relationship>
|
|
||||||
}
|
|
|
@ -5,7 +5,6 @@ import dev.usbharu.hideout.core.domain.model.instance.Instance
|
||||||
import dev.usbharu.hideout.core.domain.model.instance.InstanceRepository
|
import dev.usbharu.hideout.core.domain.model.instance.InstanceRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.instance.Nodeinfo
|
import dev.usbharu.hideout.core.domain.model.instance.Nodeinfo
|
||||||
import dev.usbharu.hideout.core.domain.model.instance.Nodeinfo2_0
|
import dev.usbharu.hideout.core.domain.model.instance.Nodeinfo2_0
|
||||||
import dev.usbharu.hideout.core.query.InstanceQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.resource.ResourceResolveService
|
import dev.usbharu.hideout.core.service.resource.ResourceResolveService
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import org.springframework.beans.factory.annotation.Qualifier
|
import org.springframework.beans.factory.annotation.Qualifier
|
||||||
|
@ -22,14 +21,13 @@ interface InstanceService {
|
||||||
class InstanceServiceImpl(
|
class InstanceServiceImpl(
|
||||||
private val instanceRepository: InstanceRepository,
|
private val instanceRepository: InstanceRepository,
|
||||||
private val resourceResolveService: ResourceResolveService,
|
private val resourceResolveService: ResourceResolveService,
|
||||||
@Qualifier("activitypub") private val objectMapper: ObjectMapper,
|
@Qualifier("activitypub") private val objectMapper: ObjectMapper
|
||||||
private val instanceQueryService: InstanceQueryService
|
|
||||||
) : InstanceService {
|
) : InstanceService {
|
||||||
override suspend fun fetchInstance(url: String, sharedInbox: String?): Instance {
|
override suspend fun fetchInstance(url: String, sharedInbox: String?): Instance {
|
||||||
val u = URL(url)
|
val u = URL(url)
|
||||||
val resolveInstanceUrl = u.protocol + "://" + u.host
|
val resolveInstanceUrl = u.protocol + "://" + u.host
|
||||||
|
|
||||||
val instance = instanceQueryService.findByUrl(resolveInstanceUrl)
|
val instance = instanceRepository.findByUrl(resolveInstanceUrl)
|
||||||
|
|
||||||
if (instance != null) {
|
if (instance != null) {
|
||||||
return instance
|
return instance
|
||||||
|
|
|
@ -4,7 +4,6 @@ import dev.usbharu.hideout.core.domain.exception.media.MediaSaveException
|
||||||
import dev.usbharu.hideout.core.domain.exception.media.UnsupportedMediaException
|
import dev.usbharu.hideout.core.domain.exception.media.UnsupportedMediaException
|
||||||
import dev.usbharu.hideout.core.domain.model.media.Media
|
import dev.usbharu.hideout.core.domain.model.media.Media
|
||||||
import dev.usbharu.hideout.core.domain.model.media.MediaRepository
|
import dev.usbharu.hideout.core.domain.model.media.MediaRepository
|
||||||
import dev.usbharu.hideout.core.query.MediaQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.media.converter.MediaProcessService
|
import dev.usbharu.hideout.core.service.media.converter.MediaProcessService
|
||||||
import dev.usbharu.hideout.mastodon.interfaces.api.media.MediaRequest
|
import dev.usbharu.hideout.mastodon.interfaces.api.media.MediaRequest
|
||||||
import dev.usbharu.hideout.util.withDelete
|
import dev.usbharu.hideout.util.withDelete
|
||||||
|
@ -23,8 +22,7 @@ class MediaServiceImpl(
|
||||||
private val mediaRepository: MediaRepository,
|
private val mediaRepository: MediaRepository,
|
||||||
private val mediaProcessServices: List<MediaProcessService>,
|
private val mediaProcessServices: List<MediaProcessService>,
|
||||||
private val remoteMediaDownloadService: RemoteMediaDownloadService,
|
private val remoteMediaDownloadService: RemoteMediaDownloadService,
|
||||||
private val renameService: MediaFileRenameService,
|
private val renameService: MediaFileRenameService
|
||||||
private val mediaQueryService: MediaQueryService
|
|
||||||
) : MediaService {
|
) : MediaService {
|
||||||
@Suppress("LongMethod", "NestedBlockDepth")
|
@Suppress("LongMethod", "NestedBlockDepth")
|
||||||
override suspend fun uploadLocalMedia(mediaRequest: MediaRequest): EntityMedia {
|
override suspend fun uploadLocalMedia(mediaRequest: MediaRequest): EntityMedia {
|
||||||
|
@ -102,7 +100,7 @@ class MediaServiceImpl(
|
||||||
logger.info("MEDIA Remote media. filename:${remoteMedia.name} url:${remoteMedia.url}")
|
logger.info("MEDIA Remote media. filename:${remoteMedia.name} url:${remoteMedia.url}")
|
||||||
|
|
||||||
|
|
||||||
val findByRemoteUrl = mediaQueryService.findByRemoteUrl(remoteMedia.url)
|
val findByRemoteUrl = mediaRepository.findByRemoteUrl(remoteMedia.url)
|
||||||
if (findByRemoteUrl != null) {
|
if (findByRemoteUrl != null) {
|
||||||
logger.warn("DUPLICATED Remote media is duplicated. url: {}", remoteMedia.url)
|
logger.warn("DUPLICATED Remote media is duplicated. url: {}", remoteMedia.url)
|
||||||
return findByRemoteUrl
|
return findByRemoteUrl
|
||||||
|
|
|
@ -9,7 +9,6 @@ import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.post.Post
|
import dev.usbharu.hideout.core.domain.model.post.Post
|
||||||
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.reaction.ReactionRepository
|
import dev.usbharu.hideout.core.domain.model.reaction.ReactionRepository
|
||||||
import dev.usbharu.hideout.core.query.PostQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.timeline.TimelineService
|
import dev.usbharu.hideout.core.service.timeline.TimelineService
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
@ -20,7 +19,6 @@ class PostServiceImpl(
|
||||||
private val postRepository: PostRepository,
|
private val postRepository: PostRepository,
|
||||||
private val actorRepository: ActorRepository,
|
private val actorRepository: ActorRepository,
|
||||||
private val timelineService: TimelineService,
|
private val timelineService: TimelineService,
|
||||||
private val postQueryService: PostQueryService,
|
|
||||||
private val postBuilder: Post.PostBuilder,
|
private val postBuilder: Post.PostBuilder,
|
||||||
private val apSendCreateService: ApSendCreateService,
|
private val apSendCreateService: ApSendCreateService,
|
||||||
private val reactionRepository: ReactionRepository
|
private val reactionRepository: ReactionRepository
|
||||||
|
@ -69,7 +67,7 @@ class PostServiceImpl(
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun deleteByActor(actorId: Long) {
|
override suspend fun deleteByActor(actorId: Long) {
|
||||||
postQueryService.findByActorId(actorId).filterNot { it.delted }.forEach { postRepository.save(it.delete()) }
|
postRepository.findByActorId(actorId).filterNot { it.delted }.forEach { postRepository.save(it.delete()) }
|
||||||
|
|
||||||
val actor = actorRepository.findById(actorId)
|
val actor = actorRepository.findById(actorId)
|
||||||
?: throw IllegalStateException("actor: $actorId was not found.")
|
?: throw IllegalStateException("actor: $actorId was not found.")
|
||||||
|
|
|
@ -3,7 +3,6 @@ package dev.usbharu.hideout.core.service.reaction
|
||||||
import dev.usbharu.hideout.activitypub.service.activity.like.APReactionService
|
import dev.usbharu.hideout.activitypub.service.activity.like.APReactionService
|
||||||
import dev.usbharu.hideout.core.domain.model.reaction.Reaction
|
import dev.usbharu.hideout.core.domain.model.reaction.Reaction
|
||||||
import dev.usbharu.hideout.core.domain.model.reaction.ReactionRepository
|
import dev.usbharu.hideout.core.domain.model.reaction.ReactionRepository
|
||||||
import dev.usbharu.hideout.core.query.ReactionQueryService
|
|
||||||
import org.jetbrains.exposed.exceptions.ExposedSQLException
|
import org.jetbrains.exposed.exceptions.ExposedSQLException
|
||||||
import org.slf4j.Logger
|
import org.slf4j.Logger
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
|
@ -12,11 +11,10 @@ import org.springframework.stereotype.Service
|
||||||
@Service
|
@Service
|
||||||
class ReactionServiceImpl(
|
class ReactionServiceImpl(
|
||||||
private val reactionRepository: ReactionRepository,
|
private val reactionRepository: ReactionRepository,
|
||||||
private val apReactionService: APReactionService,
|
private val apReactionService: APReactionService
|
||||||
private val reactionQueryService: ReactionQueryService
|
|
||||||
) : ReactionService {
|
) : ReactionService {
|
||||||
override suspend fun receiveReaction(name: String, domain: String, actorId: Long, postId: Long) {
|
override suspend fun receiveReaction(name: String, domain: String, actorId: Long, postId: Long) {
|
||||||
if (reactionQueryService.reactionAlreadyExist(postId, actorId, 0).not()) {
|
if (reactionRepository.existByPostIdAndActorIdAndEmojiId(postId, actorId, 0).not()) {
|
||||||
try {
|
try {
|
||||||
reactionRepository.save(
|
reactionRepository.save(
|
||||||
Reaction(reactionRepository.generateId(), 0, postId, actorId)
|
Reaction(reactionRepository.generateId(), 0, postId, actorId)
|
||||||
|
@ -27,7 +25,7 @@ class ReactionServiceImpl(
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun receiveRemoveReaction(actorId: Long, postId: Long) {
|
override suspend fun receiveRemoveReaction(actorId: Long, postId: Long) {
|
||||||
val reaction = reactionQueryService.findByPostIdAndActorIdAndEmojiId(postId, actorId, 0)
|
val reaction = reactionRepository.findByPostIdAndActorIdAndEmojiId(postId, actorId, 0)
|
||||||
if (reaction == null) {
|
if (reaction == null) {
|
||||||
LOGGER.warn("FAILED receive Remove Reaction. $actorId $postId")
|
LOGGER.warn("FAILED receive Remove Reaction. $actorId $postId")
|
||||||
return
|
return
|
||||||
|
@ -37,7 +35,7 @@ class ReactionServiceImpl(
|
||||||
|
|
||||||
override suspend fun sendReaction(name: String, actorId: Long, postId: Long) {
|
override suspend fun sendReaction(name: String, actorId: Long, postId: Long) {
|
||||||
val findByPostIdAndUserIdAndEmojiId =
|
val findByPostIdAndUserIdAndEmojiId =
|
||||||
reactionQueryService.findByPostIdAndActorIdAndEmojiId(postId, actorId, 0)
|
reactionRepository.findByPostIdAndActorIdAndEmojiId(postId, actorId, 0)
|
||||||
|
|
||||||
if (findByPostIdAndUserIdAndEmojiId == null) {
|
if (findByPostIdAndUserIdAndEmojiId == null) {
|
||||||
LOGGER.warn("FAILED Send reaction. $postId $actorId")
|
LOGGER.warn("FAILED Send reaction. $postId $actorId")
|
||||||
|
@ -53,7 +51,7 @@ class ReactionServiceImpl(
|
||||||
|
|
||||||
override suspend fun removeReaction(actorId: Long, postId: Long) {
|
override suspend fun removeReaction(actorId: Long, postId: Long) {
|
||||||
val findByPostIdAndUserIdAndEmojiId =
|
val findByPostIdAndUserIdAndEmojiId =
|
||||||
reactionQueryService.findByPostIdAndActorIdAndEmojiId(postId, actorId, 0)
|
reactionRepository.findByPostIdAndActorIdAndEmojiId(postId, actorId, 0)
|
||||||
if (findByPostIdAndUserIdAndEmojiId == null) {
|
if (findByPostIdAndUserIdAndEmojiId == null) {
|
||||||
LOGGER.warn("FAILED Remove reaction. actorId: $actorId postId: $postId")
|
LOGGER.warn("FAILED Remove reaction. actorId: $actorId postId: $postId")
|
||||||
return
|
return
|
||||||
|
|
|
@ -12,7 +12,6 @@ import dev.usbharu.hideout.core.domain.model.reaction.ReactionRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.userdetails.UserDetail
|
import dev.usbharu.hideout.core.domain.model.userdetails.UserDetail
|
||||||
import dev.usbharu.hideout.core.domain.model.userdetails.UserDetailRepository
|
import dev.usbharu.hideout.core.domain.model.userdetails.UserDetailRepository
|
||||||
import dev.usbharu.hideout.core.query.DeletedActorQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.instance.InstanceService
|
import dev.usbharu.hideout.core.service.instance.InstanceService
|
||||||
import dev.usbharu.hideout.core.service.post.PostService
|
import dev.usbharu.hideout.core.service.post.PostService
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
|
@ -29,7 +28,6 @@ class UserServiceImpl(
|
||||||
private val instanceService: InstanceService,
|
private val instanceService: InstanceService,
|
||||||
private val userDetailRepository: UserDetailRepository,
|
private val userDetailRepository: UserDetailRepository,
|
||||||
private val deletedActorRepository: DeletedActorRepository,
|
private val deletedActorRepository: DeletedActorRepository,
|
||||||
private val deletedActorQueryService: DeletedActorQueryService,
|
|
||||||
private val reactionRepository: ReactionRepository,
|
private val reactionRepository: ReactionRepository,
|
||||||
private val relationshipRepository: RelationshipRepository,
|
private val relationshipRepository: RelationshipRepository,
|
||||||
private val postService: PostService,
|
private val postService: PostService,
|
||||||
|
@ -73,7 +71,7 @@ class UserServiceImpl(
|
||||||
override suspend fun createRemoteUser(user: RemoteUserCreateDto): Actor {
|
override suspend fun createRemoteUser(user: RemoteUserCreateDto): Actor {
|
||||||
logger.info("START Create New remote user. name: {} url: {}", user.name, user.url)
|
logger.info("START Create New remote user. name: {} url: {}", user.name, user.url)
|
||||||
|
|
||||||
val deletedActor = deletedActorQueryService.findByNameAndDomain(user.name, user.domain)
|
val deletedActor = deletedActorRepository.findByNameAndDomain(user.name, user.domain)
|
||||||
|
|
||||||
if (deletedActor != null) {
|
if (deletedActor != null) {
|
||||||
logger.warn("FAILED Deleted actor. user: ${user.name} domain: ${user.domain}")
|
logger.warn("FAILED Deleted actor. user: ${user.name} domain: ${user.domain}")
|
||||||
|
|
|
@ -2,7 +2,6 @@ package dev.usbharu.hideout.mastodon.service.account
|
||||||
|
|
||||||
import dev.usbharu.hideout.application.external.Transaction
|
import dev.usbharu.hideout.application.external.Transaction
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
||||||
import dev.usbharu.hideout.core.query.RelationshipQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.media.MediaService
|
import dev.usbharu.hideout.core.service.media.MediaService
|
||||||
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
||||||
import dev.usbharu.hideout.core.service.user.UpdateUserDto
|
import dev.usbharu.hideout.core.service.user.UpdateUserDto
|
||||||
|
@ -221,7 +220,7 @@ class AccountApiServiceImpl(
|
||||||
limit: Int,
|
limit: Int,
|
||||||
withIgnore: Boolean
|
withIgnore: Boolean
|
||||||
): List<Account> = transaction.transaction {
|
): List<Account> = transaction.transaction {
|
||||||
val actorIdList = relationshipQueryService
|
val actorIdList = relationshipRepository
|
||||||
.findByTargetIdAndFollowRequestAndIgnoreFollowRequest(
|
.findByTargetIdAndFollowRequestAndIgnoreFollowRequest(
|
||||||
maxId = maxId,
|
maxId = maxId,
|
||||||
sinceId = sinceId,
|
sinceId = sinceId,
|
||||||
|
|
|
@ -4,7 +4,7 @@ import dev.usbharu.hideout.application.external.Transaction
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.media.MediaRepository
|
import dev.usbharu.hideout.core.domain.model.media.MediaRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.media.toMediaAttachments
|
import dev.usbharu.hideout.core.domain.model.media.toMediaAttachments
|
||||||
import dev.usbharu.hideout.core.query.PostQueryService
|
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
||||||
import dev.usbharu.hideout.core.service.post.PostCreateDto
|
import dev.usbharu.hideout.core.service.post.PostCreateDto
|
||||||
import dev.usbharu.hideout.core.service.post.PostService
|
import dev.usbharu.hideout.core.service.post.PostService
|
||||||
import dev.usbharu.hideout.domain.mastodon.model.generated.Status
|
import dev.usbharu.hideout.domain.mastodon.model.generated.Status
|
||||||
|
@ -28,10 +28,10 @@ interface StatusesApiService {
|
||||||
class StatsesApiServiceImpl(
|
class StatsesApiServiceImpl(
|
||||||
private val postService: PostService,
|
private val postService: PostService,
|
||||||
private val accountService: AccountService,
|
private val accountService: AccountService,
|
||||||
private val postQueryService: PostQueryService,
|
|
||||||
private val mediaRepository: MediaRepository,
|
private val mediaRepository: MediaRepository,
|
||||||
private val transaction: Transaction,
|
private val transaction: Transaction,
|
||||||
private val actorRepository: ActorRepository
|
private val actorRepository: ActorRepository,
|
||||||
|
private val postRepository: PostRepository
|
||||||
) :
|
) :
|
||||||
StatusesApiService {
|
StatusesApiService {
|
||||||
override suspend fun postStatus(
|
override suspend fun postStatus(
|
||||||
|
@ -53,7 +53,7 @@ class StatsesApiServiceImpl(
|
||||||
val account = accountService.findById(userId)
|
val account = accountService.findById(userId)
|
||||||
|
|
||||||
val replyUser = if (post.replyId != null) {
|
val replyUser = if (post.replyId != null) {
|
||||||
val findById = postQueryService.findById(post.replyId)
|
val findById = postRepository.findById(post.replyId)
|
||||||
if (findById == null) {
|
if (findById == null) {
|
||||||
null
|
null
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -6,7 +6,6 @@ import dev.usbharu.hideout.core.domain.model.reaction.Reaction
|
||||||
import dev.usbharu.hideout.core.external.job.DeliverReactionJob
|
import dev.usbharu.hideout.core.external.job.DeliverReactionJob
|
||||||
import dev.usbharu.hideout.core.external.job.DeliverRemoveReactionJob
|
import dev.usbharu.hideout.core.external.job.DeliverRemoveReactionJob
|
||||||
import dev.usbharu.hideout.core.query.FollowerQueryService
|
import dev.usbharu.hideout.core.query.FollowerQueryService
|
||||||
import dev.usbharu.hideout.core.query.PostQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.job.JobQueueParentService
|
import dev.usbharu.hideout.core.service.job.JobQueueParentService
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
|
@ -16,7 +16,6 @@ import dev.usbharu.hideout.application.service.id.TwitterSnowflakeIdGenerateServ
|
||||||
import dev.usbharu.hideout.core.domain.exception.FailedToGetResourcesException
|
import dev.usbharu.hideout.core.domain.exception.FailedToGetResourcesException
|
||||||
import dev.usbharu.hideout.core.domain.model.post.Post
|
import dev.usbharu.hideout.core.domain.model.post.Post
|
||||||
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
||||||
import dev.usbharu.hideout.core.query.PostQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.post.PostService
|
import dev.usbharu.hideout.core.service.post.PostService
|
||||||
import io.ktor.client.*
|
import io.ktor.client.*
|
||||||
import io.ktor.client.call.*
|
import io.ktor.client.call.*
|
||||||
|
@ -70,7 +69,6 @@ class APNoteServiceImplTest {
|
||||||
val apNoteServiceImpl = APNoteServiceImpl(
|
val apNoteServiceImpl = APNoteServiceImpl(
|
||||||
postRepository = mock(),
|
postRepository = mock(),
|
||||||
apUserService = mock(),
|
apUserService = mock(),
|
||||||
postQueryService = mock(),
|
|
||||||
postService = mock(),
|
postService = mock(),
|
||||||
apResourceResolveService = mock(),
|
apResourceResolveService = mock(),
|
||||||
postBuilder = Post.PostBuilder(CharacterLimit()),
|
postBuilder = Post.PostBuilder(CharacterLimit()),
|
||||||
|
@ -144,7 +142,6 @@ class APNoteServiceImplTest {
|
||||||
val apNoteServiceImpl = APNoteServiceImpl(
|
val apNoteServiceImpl = APNoteServiceImpl(
|
||||||
postRepository = postRepository,
|
postRepository = postRepository,
|
||||||
apUserService = apUserService,
|
apUserService = apUserService,
|
||||||
postQueryService = postQueryService,
|
|
||||||
postService = mock(),
|
postService = mock(),
|
||||||
apResourceResolveService = apResourceResolveService,
|
apResourceResolveService = apResourceResolveService,
|
||||||
postBuilder = Post.PostBuilder(CharacterLimit()),
|
postBuilder = Post.PostBuilder(CharacterLimit()),
|
||||||
|
@ -211,7 +208,6 @@ class APNoteServiceImplTest {
|
||||||
val apNoteServiceImpl = APNoteServiceImpl(
|
val apNoteServiceImpl = APNoteServiceImpl(
|
||||||
postRepository = mock(),
|
postRepository = mock(),
|
||||||
apUserService = mock(),
|
apUserService = mock(),
|
||||||
postQueryService = postQueryService,
|
|
||||||
postService = mock(),
|
postService = mock(),
|
||||||
apResourceResolveService = apResourceResolveService,
|
apResourceResolveService = apResourceResolveService,
|
||||||
postBuilder = Post.PostBuilder(CharacterLimit()),
|
postBuilder = Post.PostBuilder(CharacterLimit()),
|
||||||
|
@ -262,7 +258,6 @@ class APNoteServiceImplTest {
|
||||||
val apNoteServiceImpl = APNoteServiceImpl(
|
val apNoteServiceImpl = APNoteServiceImpl(
|
||||||
postRepository = postRepository,
|
postRepository = postRepository,
|
||||||
apUserService = apUserService,
|
apUserService = apUserService,
|
||||||
postQueryService = mock(),
|
|
||||||
postService = postService,
|
postService = postService,
|
||||||
apResourceResolveService = mock(),
|
apResourceResolveService = mock(),
|
||||||
postBuilder = postBuilder,
|
postBuilder = postBuilder,
|
||||||
|
@ -318,7 +313,6 @@ class APNoteServiceImplTest {
|
||||||
val apNoteServiceImpl = APNoteServiceImpl(
|
val apNoteServiceImpl = APNoteServiceImpl(
|
||||||
postRepository = mock(),
|
postRepository = mock(),
|
||||||
apUserService = mock(),
|
apUserService = mock(),
|
||||||
postQueryService = mock(),
|
|
||||||
postService = mock(),
|
postService = mock(),
|
||||||
apResourceResolveService = mock(),
|
apResourceResolveService = mock(),
|
||||||
postBuilder = postBuilder,
|
postBuilder = postBuilder,
|
||||||
|
|
|
@ -6,7 +6,6 @@ import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.post.Post
|
import dev.usbharu.hideout.core.domain.model.post.Post
|
||||||
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
import dev.usbharu.hideout.core.domain.model.post.PostRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.reaction.ReactionRepository
|
import dev.usbharu.hideout.core.domain.model.reaction.ReactionRepository
|
||||||
import dev.usbharu.hideout.core.query.PostQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.timeline.TimelineService
|
import dev.usbharu.hideout.core.service.timeline.TimelineService
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
|
|
|
@ -6,7 +6,6 @@ import dev.usbharu.hideout.application.service.id.TwitterSnowflakeIdGenerateServ
|
||||||
import dev.usbharu.hideout.core.domain.exception.FailedToGetResourcesException
|
import dev.usbharu.hideout.core.domain.exception.FailedToGetResourcesException
|
||||||
import dev.usbharu.hideout.core.domain.model.reaction.Reaction
|
import dev.usbharu.hideout.core.domain.model.reaction.Reaction
|
||||||
import dev.usbharu.hideout.core.domain.model.reaction.ReactionRepository
|
import dev.usbharu.hideout.core.domain.model.reaction.ReactionRepository
|
||||||
import dev.usbharu.hideout.core.query.ReactionQueryService
|
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.jetbrains.exposed.exceptions.ExposedSQLException
|
import org.jetbrains.exposed.exceptions.ExposedSQLException
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
|
@ -8,7 +8,6 @@ import dev.usbharu.hideout.core.domain.exception.FailedToGetResourcesException
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.Actor
|
import dev.usbharu.hideout.core.domain.model.actor.Actor
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.post.Post
|
import dev.usbharu.hideout.core.domain.model.post.Post
|
||||||
import dev.usbharu.hideout.core.query.DeletedActorQueryService
|
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
@ -43,7 +42,6 @@ class ActorServiceTest {
|
||||||
instanceService = mock(),
|
instanceService = mock(),
|
||||||
userDetailRepository = mock(),
|
userDetailRepository = mock(),
|
||||||
deletedActorRepository = mock(),
|
deletedActorRepository = mock(),
|
||||||
deletedActorQueryService = mock(),
|
|
||||||
reactionRepository = mock(),
|
reactionRepository = mock(),
|
||||||
relationshipRepository = mock(),
|
relationshipRepository = mock(),
|
||||||
postService = mock(),
|
postService = mock(),
|
||||||
|
@ -89,7 +87,6 @@ class ActorServiceTest {
|
||||||
instanceService = mock(),
|
instanceService = mock(),
|
||||||
userDetailRepository = mock(),
|
userDetailRepository = mock(),
|
||||||
deletedActorRepository = mock(),
|
deletedActorRepository = mock(),
|
||||||
deletedActorQueryService = deletedActorQueryService,
|
|
||||||
reactionRepository = mock(),
|
reactionRepository = mock(),
|
||||||
relationshipRepository = mock(),
|
relationshipRepository = mock(),
|
||||||
postService = mock(),
|
postService = mock(),
|
||||||
|
|
|
@ -4,7 +4,6 @@ import dev.usbharu.hideout.application.external.Transaction
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
||||||
import dev.usbharu.hideout.core.query.FollowerQueryService
|
import dev.usbharu.hideout.core.query.FollowerQueryService
|
||||||
import dev.usbharu.hideout.core.query.RelationshipQueryService
|
|
||||||
import dev.usbharu.hideout.core.service.media.MediaService
|
import dev.usbharu.hideout.core.service.media.MediaService
|
||||||
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
||||||
import dev.usbharu.hideout.core.service.user.UserService
|
import dev.usbharu.hideout.core.service.user.UserService
|
||||||
|
|
Loading…
Reference in New Issue