diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/model/Reactions.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/model/Reactions.kt index 11d95f7e..808f763a 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/model/Reactions.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/model/Reactions.kt @@ -16,12 +16,12 @@ data class Reactions( fun of(reactionList: List, customEmoji: CustomEmoji?): Reactions { val first = reactionList.first() return Reactions( - first.id.value, - reactionList.size, - customEmoji?.name ?: first.unicodeEmoji.name, - customEmoji?.domain?.domain ?: first.unicodeEmoji.domain.domain, - customEmoji?.url, - reactionList.map { it.actorId.id } + postId = first.id.value, + count = reactionList.size, + name = customEmoji?.name ?: first.unicodeEmoji.name, + domain = customEmoji?.domain?.domain ?: first.unicodeEmoji.domain.domain, + url = customEmoji?.url, + actorIds = reactionList.map { it.actorId.id } ) } } diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/timeline/ReadTimelineApplicationService.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/timeline/ReadTimelineApplicationService.kt index 8b045657..53c18e48 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/timeline/ReadTimelineApplicationService.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/timeline/ReadTimelineApplicationService.kt @@ -44,10 +44,10 @@ class ReadTimelineApplicationService( val reply = if (it.replyPost != null) { @Suppress("UnsafeCallOnNullableType") PostDetail.of( - it.replyPost, - it.replyPostActor!!, - it.replyPostActorIconMedia, - it.replyPostMedias.orEmpty(), + post = it.replyPost, + actor = it.replyPostActor!!, + iconMedia = it.replyPostActorIconMedia, + mediaList = it.replyPostMedias.orEmpty(), reactionsList = emptyList(), favourited = false, ) diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/Reaction.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/Reaction.kt index c85c061d..fc40bc05 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/Reaction.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/Reaction.kt @@ -27,15 +27,14 @@ class Reaction( return id == other.id } - override fun hashCode(): Int { - return id.hashCode() - } + override fun hashCode(): Int = id.hashCode() fun delete() { addDomainEvent(ReactionEventFactory(this).createEvent(ReactionEvent.DELETE)) } companion object { + @Suppress("LongParameterList") fun create( id: ReactionId, postId: PostId, diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/ReactionRepository.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/ReactionRepository.kt index 01e893a7..508e2708 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/ReactionRepository.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/ReactionRepository.kt @@ -4,6 +4,7 @@ import dev.usbharu.hideout.core.domain.model.actor.ActorId import dev.usbharu.hideout.core.domain.model.emoji.CustomEmojiId import dev.usbharu.hideout.core.domain.model.post.PostId +@Suppress("FunctionMaxLength") interface ReactionRepository { suspend fun save(reaction: Reaction): Reaction suspend fun findById(reactionId: ReactionId): Reaction? diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timeline/TimelineRepository.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timeline/TimelineRepository.kt index c0d4242f..93770f32 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timeline/TimelineRepository.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timeline/TimelineRepository.kt @@ -9,6 +9,8 @@ interface TimelineRepository { suspend fun findByIds(ids: List): List suspend fun findById(id: TimelineId): Timeline? + + @Suppress("FunctionMaxLength") suspend fun findAllByUserDetailIdAndVisibilityIn( userDetailId: UserDetailId, visibility: List diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timelinerelationship/TimelineRelationship.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timelinerelationship/TimelineRelationship.kt index 592630e0..04bb6d25 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timelinerelationship/TimelineRelationship.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timelinerelationship/TimelineRelationship.kt @@ -18,9 +18,7 @@ class TimelineRelationship( return id == other.id } - override fun hashCode(): Int { - return id.hashCode() - } + override fun hashCode(): Int = id.hashCode() } enum class Visible { diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/emojikt/EmojiKtUnicodeEmojiService.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/emojikt/EmojiKtUnicodeEmojiService.kt index 3e0fdc43..afa9c6b9 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/emojikt/EmojiKtUnicodeEmojiService.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/emojikt/EmojiKtUnicodeEmojiService.kt @@ -6,7 +6,5 @@ import org.springframework.stereotype.Service @Service class EmojiKtUnicodeEmojiService : UnicodeEmojiService { - override fun isUnicodeEmoji(emoji: String): Boolean { - return Emojis.allEmojis.singleOrNull { it.char == emoji } != null - } + override fun isUnicodeEmoji(emoji: String): Boolean = Emojis.allEmojis.singleOrNull { it.char == emoji } != null } diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedquery/ExposedReactionsQueryService.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedquery/ExposedReactionsQueryService.kt index d22184e7..4fa8cfed 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedquery/ExposedReactionsQueryService.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedquery/ExposedReactionsQueryService.kt @@ -17,6 +17,9 @@ import dev.usbharu.hideout.core.infrastructure.exposedrepository.Reactions as Ex @Repository class ExposedReactionsQueryService : ReactionsQueryService, AbstractRepository() { + override val logger: Logger + get() = Companion.logger + override suspend fun findAllByPostId(postId: PostId): List { return query { ExposedrepositoryReactions.leftJoin(CustomEmojis).selectAll() @@ -52,21 +55,18 @@ class ExposedReactionsQueryService : ReactionsQueryService, AbstractRepository() .groupBy(ExposedrepositoryReactions.postId) .map { Reactions( - it[ExposedrepositoryReactions.postId], - it[ExposedrepositoryReactions.postId.count()].toInt(), - it.getOrNull(CustomEmojis.name) + postId = it[ExposedrepositoryReactions.postId], + count = it[ExposedrepositoryReactions.postId.count()].toInt(), + name = it.getOrNull(CustomEmojis.name) ?: it[ExposedrepositoryReactions.unicodeEmoji.max()]!!, - it.getOrNull(CustomEmojis.domain) ?: UnicodeEmoji.domain.domain, - it.getOrNull(CustomEmojis.url)?.let { it1 -> URI.create(it1) }, - it[actorIdsQuery].split(",").mapNotNull { it.toLongOrNull() } + domain = it.getOrNull(CustomEmojis.domain) ?: UnicodeEmoji.domain.domain, + url = it.getOrNull(CustomEmojis.url)?.let { it1 -> URI.create(it1) }, + actorIds = it[actorIdsQuery].split(",").mapNotNull { s -> s.toLongOrNull() } ) } } } - override val logger: Logger - get() = Companion.logger - companion object { private val logger = LoggerFactory.getLogger(ExposedReactionsQueryService::class.java) } diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedquery/ExposedUserTimelineQueryService.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedquery/ExposedUserTimelineQueryService.kt index db3fb0f2..6bc068ff 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedquery/ExposedUserTimelineQueryService.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedquery/ExposedUserTimelineQueryService.kt @@ -76,7 +76,7 @@ class ExposedUserTimelineQueryService : UserTimelineQueryService, AbstractReposi mediaDetailList = it.mapNotNull { resultRow -> resultRow.toMediaOrNull()?.let { it1 -> MediaDetail.of(it1) } }, - favourited = it.any { it.getOrNull(Reactions.actorId) != null } + favourited = it.any { resultRow -> resultRow.getOrNull(Reactions.actorId) != null } ) } } @@ -108,7 +108,7 @@ class ExposedUserTimelineQueryService : UserTimelineQueryService, AbstractReposi deleted = it[authorizedQuery[Posts.deleted]], mediaDetailList = emptyList(), moveTo = null, - emptyList(), + reactionsList = emptyList(), favourited = false ) } diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/ExposedReactionRepository.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/ExposedReactionRepository.kt index d44bca1f..4f0fc2f7 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/ExposedReactionRepository.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/ExposedReactionRepository.kt @@ -108,12 +108,12 @@ class ExposedReactionRepository(override val domainEventPublisher: DomainEventPu fun ResultRow.toReaction(): Reaction { return Reaction( - ReactionId(this[Reactions.id]), - PostId(this[Reactions.postId]), - ActorId(this[Reactions.actorId]), - this[Reactions.customEmojiId]?.let { CustomEmojiId(it) }, - UnicodeEmoji(this[Reactions.unicodeEmoji]), - this[Reactions.createdAt] + id = ReactionId(this[Reactions.id]), + postId = PostId(this[Reactions.postId]), + actorId = ActorId(this[Reactions.actorId]), + customEmojiId = this[Reactions.customEmojiId]?.let { CustomEmojiId(it) }, + unicodeEmoji = UnicodeEmoji(this[Reactions.unicodeEmoji]), + createdAt = this[Reactions.createdAt] ) } diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/timeline/DefaultTimelineStore.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/timeline/DefaultTimelineStore.kt index 7426d1b6..c435bc85 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/timeline/DefaultTimelineStore.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/timeline/DefaultTimelineStore.kt @@ -160,9 +160,8 @@ open class DefaultTimelineStore( override suspend fun getMedias(mediaIds: List): Map = mediaRepository.findByIds(mediaIds).associateBy { it.id } - override suspend fun getReactions(postIds: List): Map> { - return reactionsQueryService.findAllByPostIdIn(postIds).groupBy { PostId(it.postId) } - } + override suspend fun getReactions(postIds: List): Map> = + reactionsQueryService.findAllByPostIdIn(postIds).groupBy { PostId(it.postId) } override suspend fun getUserDetails(userDetailIdList: List): Map = userDetailRepository.findAllById(userDetailIdList).associateBy { it.id } diff --git a/libs.versions.toml b/libs.versions.toml index e698a5e4..9eb12aed 100644 --- a/libs.versions.toml +++ b/libs.versions.toml @@ -4,7 +4,7 @@ kotlin = "2.0.20" ktor = "2.3.12" exposed = "0.54.0" javacv-ffmpeg = "6.1.1-1.5.10" -detekt = "1.23.6" +detekt = "1.23.7" coroutines = "1.8.1" swagger = "2.2.23" tika = "2.9.2"