From 2a1486cb4d6f2b80e640a71c8603228c6d840bb7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 07:16:06 +0000 Subject: [PATCH 1/3] chore(deps): update detekt to v1.23.7 --- libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" From 2b2d9046d8333a37bf09c1c523ad9898fbb0a7e5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 9 Sep 2024 07:20:00 +0000 Subject: [PATCH 2/3] style: fix lint (CI) --- .../UserCreateReactionApplicationService.kt | 6 +++--- .../UserRemoveReactionApplicationService.kt | 5 +++-- .../domain/event/reaction/ReactionEvent.kt | 2 +- .../core/domain/model/emoji/CustomEmoji.kt | 6 +++--- .../core/domain/model/reaction/Reaction.kt | 10 +++++++--- .../core/domain/model/reaction/ReactionId.kt | 2 +- .../model/reaction/ReactionRepository.kt | 2 +- .../model/timelineobject/TimelineObject.kt | 12 ++++++------ .../service/emoji/UnicodeEmojiService.kt | 2 +- .../emojikt/EmojiKtUnicodeEmojiService.kt | 2 +- .../ExposedReactionsQueryService.kt | 3 +-- .../ExposedUserTimelineQueryService.kt | 17 ++++++++++------- .../ExposedReactionRepository.kt | 19 +++++++++++-------- .../timeline/AbstractTimelineStore.kt | 6 +++--- .../interfaces/web/posts/PostsController.kt | 6 ++++-- .../query/reactions/ReactionsQueryService.kt | 2 +- 16 files changed, 57 insertions(+), 45 deletions(-) diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/reaction/UserCreateReactionApplicationService.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/reaction/UserCreateReactionApplicationService.kt index 1ca68aef..f0a7f2dd 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/reaction/UserCreateReactionApplicationService.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/reaction/UserCreateReactionApplicationService.kt @@ -29,10 +29,10 @@ class UserCreateReactionApplicationService( private val unicodeEmojiService: UnicodeEmojiService ) : LocalUserAbstractApplicationService( - transaction, logger + transaction, + logger ) { override suspend fun internalExecute(command: CreateReaction, principal: LocalUser) { - val postId = PostId(command.postId) val post = postRepository.findById(postId) ?: throw IllegalArgumentException("Post $postId not found.") if (postReadAccessControl.isAllow(post, principal).not()) { @@ -62,4 +62,4 @@ class UserCreateReactionApplicationService( companion object { private val logger = LoggerFactory.getLogger(UserCreateReactionApplicationService::class.java) } -} \ No newline at end of file +} diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/reaction/UserRemoveReactionApplicationService.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/reaction/UserRemoveReactionApplicationService.kt index b53f21f8..4335ee63 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/reaction/UserRemoveReactionApplicationService.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/application/reaction/UserRemoveReactionApplicationService.kt @@ -18,7 +18,8 @@ class UserRemoveReactionApplicationService( private val unicodeEmojiService: UnicodeEmojiService ) : LocalUserAbstractApplicationService( - transaction, logger + transaction, + logger ) { override suspend fun internalExecute(command: RemoveReaction, principal: LocalUser) { val postId = PostId(command.postId) @@ -47,4 +48,4 @@ class UserRemoveReactionApplicationService( companion object { private val logger = LoggerFactory.getLogger(UserRemoveReactionApplicationService::class.java) } -} \ No newline at end of file +} diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/event/reaction/ReactionEvent.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/event/reaction/ReactionEvent.kt index 7e89361e..6da7a58c 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/event/reaction/ReactionEvent.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/event/reaction/ReactionEvent.kt @@ -19,4 +19,4 @@ class ReactionEventBody( enum class ReactionEvent(val eventName: String) { CREATE("ReactionCreate"), DELETE("ReactionDelete"), -} \ No newline at end of file +} diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/emoji/CustomEmoji.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/emoji/CustomEmoji.kt index 5a64a948..b80d06cf 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/emoji/CustomEmoji.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/emoji/CustomEmoji.kt @@ -29,9 +29,9 @@ sealed class Emoji { abstract fun id(): String override fun toString(): String { return "Emoji(" + - "domain='$domain', " + - "name='$name'" + - ")" + "domain='$domain', " + + "name='$name'" + + ")" } } 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 93b43000..c85c061d 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 @@ -18,7 +18,6 @@ class Reaction( val createdAt: Instant ) : DomainEventStorable() { - override fun equals(other: Any?): Boolean { if (this === other) return true if (javaClass != other?.javaClass) return false @@ -46,8 +45,13 @@ class Reaction( createdAt: Instant ): Reaction { return Reaction( - id, postId, actorId, customEmojiId, unicodeEmoji, createdAt + id, + postId, + actorId, + customEmojiId, + unicodeEmoji, + createdAt ).apply { addDomainEvent(ReactionEventFactory(this).createEvent(ReactionEvent.CREATE)) } } } -} \ No newline at end of file +} diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/ReactionId.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/ReactionId.kt index af369ff0..948fb1ea 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/ReactionId.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/reaction/ReactionId.kt @@ -1,4 +1,4 @@ package dev.usbharu.hideout.core.domain.model.reaction @JvmInline -value class ReactionId(val value: Long) \ No newline at end of file +value class ReactionId(val value: Long) 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 9aa1f6aa..01e893a7 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 @@ -23,4 +23,4 @@ interface ReactionRepository { ): Reaction? suspend fun delete(reaction: Reaction) -} \ No newline at end of file +} diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timelineobject/TimelineObject.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timelineobject/TimelineObject.kt index a6fbe671..f7f57f22 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timelineobject/TimelineObject.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/model/timelineobject/TimelineObject.kt @@ -61,9 +61,9 @@ class TimelineObject( lastUpdatedAt = Instant.now() isPureRepost = post.repostId != null && - post.replyId == null && - post.text.isEmpty() && - post.overview?.overview.isNullOrEmpty() + post.replyId == null && + post.text.isEmpty() && + post.overview?.overview.isNullOrEmpty() warnFilters = filterResults.map { TimelineObjectWarnFilter(it.filter.id, it.matchedKeyword) } } @@ -133,9 +133,9 @@ class TimelineObject( repostActorId = repost.actorId, visibility = post.visibility, isPureRepost = repost.mediaIds.isEmpty() && - repost.overview == null && - repost.content == PostContent.empty && - repost.replyId == null, + repost.overview == null && + repost.content == PostContent.empty && + repost.replyId == null, mediaIds = post.mediaIds, emojiIds = post.emojiIds, visibleActors = post.visibleActors.toList(), diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/service/emoji/UnicodeEmojiService.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/service/emoji/UnicodeEmojiService.kt index add7bdbe..35a44ca5 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/service/emoji/UnicodeEmojiService.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/domain/service/emoji/UnicodeEmojiService.kt @@ -2,4 +2,4 @@ package dev.usbharu.hideout.core.domain.service.emoji interface UnicodeEmojiService { fun isUnicodeEmoji(emoji: String): Boolean -} \ No newline at end of file +} 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 3eef34aa..3e0fdc43 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 @@ -9,4 +9,4 @@ class EmojiKtUnicodeEmojiService : UnicodeEmojiService { override fun isUnicodeEmoji(emoji: String): Boolean { return Emojis.allEmojis.singleOrNull { it.char == emoji } != null } -} \ No newline at end of file +} 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 b4d7705f..d22184e7 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 @@ -37,7 +37,6 @@ class ExposedReactionsQueryService : ReactionsQueryService, AbstractRepository() override suspend fun findAllByPostIdIn(postIds: List): List { return query { - val actorIdsQuery = ExposedrepositoryReactions.actorId.castTo(VarCharColumnType()).groupConcat(",", true) @@ -71,4 +70,4 @@ class ExposedReactionsQueryService : ReactionsQueryService, AbstractRepository() companion object { private val logger = LoggerFactory.getLogger(ExposedReactionsQueryService::class.java) } -} \ No newline at end of file +} 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 6b4338fb..db3fb0f2 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 @@ -42,10 +42,10 @@ class ExposedUserTimelineQueryService : UserTimelineQueryService, AbstractReposi .select(Posts.columns) .where { Posts.visibility eq Visibility.PUBLIC.name or - (Posts.visibility eq Visibility.UNLISTED.name) or - (Posts.visibility eq Visibility.DIRECT.name and (PostsVisibleActors.actorId eq principal.actorId.id)) or - (Posts.visibility eq Visibility.FOLLOWERS.name and (Relationships.blocking eq false and (relationshipsAlias[Relationships.following] eq true))) or - (Posts.actorId eq principal.actorId.id) + (Posts.visibility eq Visibility.UNLISTED.name) or + (Posts.visibility eq Visibility.DIRECT.name and (PostsVisibleActors.actorId eq principal.actorId.id)) or + (Posts.visibility eq Visibility.FOLLOWERS.name and (Relationships.blocking eq false and (relationshipsAlias[Relationships.following] eq true))) or + (Posts.actorId eq principal.actorId.id) } .alias("authorized_table") } @@ -61,10 +61,12 @@ class ExposedUserTimelineQueryService : UserTimelineQueryService, AbstractReposi .leftJoin(iconMedia, { Actors.icon }, { iconMedia[Media.id] }) .leftJoin(PostsMedia, { authorizedQuery[Posts.id] }, { PostsMedia.postId }) .leftJoin(Media, { PostsMedia.mediaId }, { Media.id }) - .leftJoin(Reactions, + .leftJoin( + Reactions, { authorizedQuery[Posts.id] }, { Reactions.postId }, - { Reactions.id isDistinctFrom principal.actorId.id }) + { Reactions.id isDistinctFrom principal.actorId.id } + ) .selectAll() .where { authorizedQuery[Posts.id] inList idList.map { it.id } } .groupBy { it[authorizedQuery[Posts.id]] } @@ -73,7 +75,8 @@ class ExposedUserTimelineQueryService : UserTimelineQueryService, AbstractReposi toPostDetail(it.first(), authorizedQuery, iconMedia).copy( mediaDetailList = it.mapNotNull { resultRow -> resultRow.toMediaOrNull()?.let { it1 -> MediaDetail.of(it1) } - }, favourited = it.any { it.getOrNull(Reactions.actorId) != null } + }, + favourited = it.any { it.getOrNull(Reactions.actorId) != null } ) } } 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 f3fc6886..d44bca1f 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 @@ -17,13 +17,14 @@ import org.slf4j.LoggerFactory import org.springframework.stereotype.Repository @Repository -class ExposedReactionRepository(override val domainEventPublisher: DomainEventPublisher) : ReactionRepository, - AbstractRepository(), DomainEventPublishableRepository { +class ExposedReactionRepository(override val domainEventPublisher: DomainEventPublisher) : + ReactionRepository, + AbstractRepository(), + DomainEventPublishableRepository { override val logger: Logger get() = Companion.logger - override suspend fun save(reaction: Reaction): Reaction { return query { Reactions.upsert { @@ -66,7 +67,9 @@ class ExposedReactionRepository(override val domainEventPublisher: DomainEventPu return query { Reactions.selectAll().where { Reactions.postId.eq(postId.id).and(Reactions.actorId eq actorId.id) - .and((Reactions.customEmojiId eq customEmojiId?.emojiId or (Reactions.unicodeEmoji eq unicodeEmoji))) + .and( + (Reactions.customEmojiId eq customEmojiId?.emojiId or (Reactions.unicodeEmoji eq unicodeEmoji)) + ) }.empty().not() } } @@ -89,10 +92,11 @@ class ExposedReactionRepository(override val domainEventPublisher: DomainEventPu unicodeEmoji: String ): Reaction? { return query { - Reactions.selectAll().where { Reactions.postId.eq(postId.id).and(Reactions.actorId eq actorId.id) - .and((Reactions.customEmojiId eq customEmojiId?.emojiId or (Reactions.unicodeEmoji eq unicodeEmoji))) + .and( + (Reactions.customEmojiId eq customEmojiId?.emojiId or (Reactions.unicodeEmoji eq unicodeEmoji)) + ) }.limit(1).singleOrNull()?.toReaction() } } @@ -111,7 +115,6 @@ fun ResultRow.toReaction(): Reaction { UnicodeEmoji(this[Reactions.unicodeEmoji]), this[Reactions.createdAt] ) - } object Reactions : Table("reactions") { @@ -122,4 +125,4 @@ object Reactions : Table("reactions") { val unicodeEmoji = varchar("unicode_emoji", 100) val createdAt = timestamp("created_at") override val primaryKey: PrimaryKey = PrimaryKey(id) -} \ No newline at end of file +} diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/timeline/AbstractTimelineStore.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/timeline/AbstractTimelineStore.kt index 9ddcc131..b22d0121 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/timeline/AbstractTimelineStore.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/timeline/AbstractTimelineStore.kt @@ -246,8 +246,8 @@ abstract class AbstractTimelineStore(private val idGenerateService: IdGenerateSe val actors = getActors( timelineObjectList.map { it.postActorId } + - timelineObjectList.mapNotNull { it.repostActorId } + - timelineObjectList.mapNotNull { it.replyActorId } + timelineObjectList.mapNotNull { it.repostActorId } + + timelineObjectList.mapNotNull { it.replyActorId } ) val postMap = posts.associate { post -> @@ -256,7 +256,7 @@ abstract class AbstractTimelineStore(private val idGenerateService: IdGenerateSe val mediaMap = getMedias( posts.flatMap { it.mediaIds } + - actors.mapNotNull { it.value.icon } + actors.mapNotNull { it.value.icon } ) val reactions = getReactions(posts.map { it.id }) diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/interfaces/web/posts/PostsController.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/interfaces/web/posts/PostsController.kt index 26e31f3c..f1005327 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/interfaces/web/posts/PostsController.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/interfaces/web/posts/PostsController.kt @@ -47,7 +47,8 @@ class PostsController( id, null, "❤" - ), principal + ), + principal ) return "redirect:/users/$name/posts/$id" } @@ -60,7 +61,8 @@ class PostsController( id, null, "❤" - ), principal + ), + principal ) return "redirect:/users/$name/posts/$id" } diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/query/reactions/ReactionsQueryService.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/query/reactions/ReactionsQueryService.kt index 42164bc0..e410c4ae 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/query/reactions/ReactionsQueryService.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/query/reactions/ReactionsQueryService.kt @@ -6,4 +6,4 @@ import dev.usbharu.hideout.core.domain.model.post.PostId interface ReactionsQueryService { suspend fun findAllByPostId(postId: PostId): List suspend fun findAllByPostIdIn(postIds: List): List -} \ No newline at end of file +} From 39ad5a312512fe9301fd85793ec2cb4b1136981d Mon Sep 17 00:00:00 2001 From: usbharu <64310155+usbharu@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:47:02 +0900 Subject: [PATCH 3/3] style: fix lint --- .../core/application/model/Reactions.kt | 12 ++++++------ .../timeline/ReadTimelineApplicationService.kt | 8 ++++---- .../core/domain/model/reaction/Reaction.kt | 5 ++--- .../model/reaction/ReactionRepository.kt | 1 + .../model/timeline/TimelineRepository.kt | 2 ++ .../TimelineRelationship.kt | 4 +--- .../emojikt/EmojiKtUnicodeEmojiService.kt | 4 +--- .../ExposedReactionsQueryService.kt | 18 +++++++++--------- .../ExposedUserTimelineQueryService.kt | 4 ++-- .../ExposedReactionRepository.kt | 12 ++++++------ .../timeline/DefaultTimelineStore.kt | 5 ++--- 11 files changed, 36 insertions(+), 39 deletions(-) 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 }