From d06b4062c8dd9748490f17f6d87d5b29aff97b7c Mon Sep 17 00:00:00 2001 From: usbharu <64310155+usbharu@users.noreply.github.com> Date: Mon, 12 Feb 2024 15:29:43 +0900 Subject: [PATCH] style: fix lint --- .../service/objects/note/APNoteService.kt | 70 ++++++++------- .../core/domain/model/filter/FilterAction.kt | 1 + .../core/domain/model/filter/FilterType.kt | 1 + .../hideout/core/domain/model/post/Post.kt | 32 +++---- .../ExposedFilterRepository.kt | 4 +- .../query/model/ExposedFilterQueryService.kt | 2 +- .../core/query/model/FilterQueryModel.kt | 13 +-- .../api/filter/MastodonFilterApiController.kt | 88 +++++++++++++------ .../service/account/AccountApiService.kt | 2 +- .../filter/MastodonFilterApiService.kt | 37 ++++---- 10 files changed, 149 insertions(+), 101 deletions(-) diff --git a/src/main/kotlin/dev/usbharu/hideout/activitypub/service/objects/note/APNoteService.kt b/src/main/kotlin/dev/usbharu/hideout/activitypub/service/objects/note/APNoteService.kt index 8cd1ad11..e3dc56ff 100644 --- a/src/main/kotlin/dev/usbharu/hideout/activitypub/service/objects/note/APNoteService.kt +++ b/src/main/kotlin/dev/usbharu/hideout/activitypub/service/objects/note/APNoteService.kt @@ -180,41 +180,51 @@ class APNoteServiceImpl( }.map { it.id } val createPost = - if (quote != null) { - postBuilder.quoteRepostOf( - id = postRepository.generateId(), - actorId = person.second.id, - content = note.content, - createdAt = Instant.parse(note.published), - visibility = visibility, - url = note.id, - replyId = reply?.id, - sensitive = note.sensitive, - apId = note.id, - mediaIds = mediaList, - emojiIds = emojis, - repost = quote - ) - } else { - postBuilder.of( - id = postRepository.generateId(), - actorId = person.second.id, - content = note.content, - createdAt = Instant.parse(note.published).toEpochMilli(), - visibility = visibility, - url = note.id, - replyId = reply?.id, - sensitive = note.sensitive, - apId = note.id, - mediaIds = mediaList, - emojiIds = emojis - ) - } + post(quote, person, note, visibility, reply, mediaList, emojis) val createRemote = postService.createRemote(createPost) return note to createRemote } + private suspend fun post( + quote: Post?, + person: Pair, + note: Note, + visibility: Visibility, + reply: Post?, + mediaList: List, + emojis: List + ) = if (quote != null) { + postBuilder.quoteRepostOf( + id = postRepository.generateId(), + actorId = person.second.id, + content = note.content, + createdAt = Instant.parse(note.published), + visibility = visibility, + url = note.id, + replyId = reply?.id, + sensitive = note.sensitive, + apId = note.id, + mediaIds = mediaList, + emojiIds = emojis, + repost = quote + ) + } else { + postBuilder.of( + id = postRepository.generateId(), + actorId = person.second.id, + content = note.content, + createdAt = Instant.parse(note.published).toEpochMilli(), + visibility = visibility, + url = note.id, + replyId = reply?.id, + sensitive = note.sensitive, + apId = note.id, + mediaIds = mediaList, + emojiIds = emojis + ) + } + private suspend fun buildEmojis(note: Note) = note.tag .filterIsInstance() .map { diff --git a/src/main/kotlin/dev/usbharu/hideout/core/domain/model/filter/FilterAction.kt b/src/main/kotlin/dev/usbharu/hideout/core/domain/model/filter/FilterAction.kt index ac3e8b88..0dd17d81 100644 --- a/src/main/kotlin/dev/usbharu/hideout/core/domain/model/filter/FilterAction.kt +++ b/src/main/kotlin/dev/usbharu/hideout/core/domain/model/filter/FilterAction.kt @@ -1,5 +1,6 @@ package dev.usbharu.hideout.core.domain.model.filter +@Suppress("EnumEntryNameCase", "EnumNaming") enum class FilterAction { warn, hide diff --git a/src/main/kotlin/dev/usbharu/hideout/core/domain/model/filter/FilterType.kt b/src/main/kotlin/dev/usbharu/hideout/core/domain/model/filter/FilterType.kt index d58df8b1..bce9a8db 100644 --- a/src/main/kotlin/dev/usbharu/hideout/core/domain/model/filter/FilterType.kt +++ b/src/main/kotlin/dev/usbharu/hideout/core/domain/model/filter/FilterType.kt @@ -1,5 +1,6 @@ package dev.usbharu.hideout.core.domain.model.filter +@Suppress("EnumEntryNameCase", "EnumNaming") enum class FilterType { home, notifications, diff --git a/src/main/kotlin/dev/usbharu/hideout/core/domain/model/post/Post.kt b/src/main/kotlin/dev/usbharu/hideout/core/domain/model/post/Post.kt index e9b73fe2..1873c7cf 100644 --- a/src/main/kotlin/dev/usbharu/hideout/core/domain/model/post/Post.kt +++ b/src/main/kotlin/dev/usbharu/hideout/core/domain/model/post/Post.kt @@ -89,6 +89,7 @@ data class Post private constructor( ) } + @Suppress("LongParameterList") fun pureRepostOf( id: Long, actorId: Long, @@ -110,24 +111,25 @@ data class Post private constructor( require(actorId >= 0) { "actorId must be greater than or equal to 0." } return Post( - id, - actorId, - null, - "", - "", - createdAt.toEpochMilli(), - fixedVisibility, - url, - repost.id, - null, - false, - apId, - emptyList(), - false, - emptyList() + id = id, + actorId = actorId, + overview = null, + content = "", + text = "", + createdAt = createdAt.toEpochMilli(), + visibility = fixedVisibility, + url = url, + repostId = repost.id, + replyId = null, + sensitive = false, + apId = apId, + mediaIds = emptyList(), + delted = false, + emojiIds = emptyList() ) } + @Suppress("LongParameterList") fun quoteRepostOf( id: Long, actorId: Long, diff --git a/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/ExposedFilterRepository.kt b/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/ExposedFilterRepository.kt index ce612540..0856ce17 100644 --- a/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/ExposedFilterRepository.kt +++ b/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/ExposedFilterRepository.kt @@ -28,14 +28,14 @@ class ExposedFilterRepository(private val idGenerateService: IdGenerateService) it[id] = filter.id it[userId] = filter.userId it[name] = filter.name - it[context] = filter.context.joinToString(",") { it.name } + it[context] = filter.context.joinToString(",") { filterType -> filterType.name } it[filterAction] = filter.filterAction.name } } else { Filters.update({ Filters.id eq filter.id }) { it[userId] = filter.userId it[name] = filter.name - it[context] = filter.context.joinToString(",") { it.name } + it[context] = filter.context.joinToString(",") { filterType -> filterType.name } it[filterAction] = filter.filterAction.name } } diff --git a/src/main/kotlin/dev/usbharu/hideout/core/query/model/ExposedFilterQueryService.kt b/src/main/kotlin/dev/usbharu/hideout/core/query/model/ExposedFilterQueryService.kt index 3be528f2..39d6b43b 100644 --- a/src/main/kotlin/dev/usbharu/hideout/core/query/model/ExposedFilterQueryService.kt +++ b/src/main/kotlin/dev/usbharu/hideout/core/query/model/ExposedFilterQueryService.kt @@ -53,7 +53,7 @@ class ExposedFilterQueryService : FilterQueryService { .map { FilterQueryModel.of( it.first().toFilter(), - it.map { it.toFilterKeyword() } + it.map { resultRow -> resultRow.toFilterKeyword() } ) } } diff --git a/src/main/kotlin/dev/usbharu/hideout/core/query/model/FilterQueryModel.kt b/src/main/kotlin/dev/usbharu/hideout/core/query/model/FilterQueryModel.kt index fed11141..70482768 100644 --- a/src/main/kotlin/dev/usbharu/hideout/core/query/model/FilterQueryModel.kt +++ b/src/main/kotlin/dev/usbharu/hideout/core/query/model/FilterQueryModel.kt @@ -14,13 +14,14 @@ data class FilterQueryModel( val keywords: List ) { companion object { + @Suppress("FunctionMinLength") fun of(filter: Filter, keywords: List): FilterQueryModel = FilterQueryModel( - filter.id, - filter.userId, - filter.name, - filter.context, - filter.filterAction, - keywords + id = filter.id, + userId = filter.userId, + name = filter.name, + context = filter.context, + filterAction = filter.filterAction, + keywords = keywords ) } } diff --git a/src/main/kotlin/dev/usbharu/hideout/mastodon/interfaces/api/filter/MastodonFilterApiController.kt b/src/main/kotlin/dev/usbharu/hideout/mastodon/interfaces/api/filter/MastodonFilterApiController.kt index 2a465ec2..ed3d310f 100644 --- a/src/main/kotlin/dev/usbharu/hideout/mastodon/interfaces/api/filter/MastodonFilterApiController.kt +++ b/src/main/kotlin/dev/usbharu/hideout/mastodon/interfaces/api/filter/MastodonFilterApiController.kt @@ -1,21 +1,32 @@ package dev.usbharu.hideout.mastodon.interfaces.api.filter import dev.usbharu.hideout.controller.mastodon.generated.FilterApi +import dev.usbharu.hideout.core.infrastructure.springframework.security.LoginUserContextHolder import dev.usbharu.hideout.domain.mastodon.model.generated.* +import dev.usbharu.hideout.mastodon.service.filter.MastodonFilterApiService import org.springframework.http.ResponseEntity import org.springframework.stereotype.Controller @Controller -class MastodonFilterApiController : FilterApi { +class MastodonFilterApiController( + private val mastodonFilterApiService: MastodonFilterApiService, + private val loginUserContextHolder: LoginUserContextHolder +) : FilterApi { override suspend fun apiV1FiltersIdDelete(id: String): ResponseEntity { - return super.apiV1FiltersIdDelete(id) + mastodonFilterApiService.deleteV1FilterById(loginUserContextHolder.getLoginUserId(), id.toLong()) + return ResponseEntity.ok().build() } override suspend fun apiV1FiltersIdGet( id: String ): ResponseEntity { - return super.apiV1FiltersIdGet(id) + return ResponseEntity.ok( + mastodonFilterApiService.getV1FilterById( + loginUserContextHolder.getLoginUserId(), + id.toLong() + ) + ) } override suspend fun apiV1FiltersIdPut( @@ -25,35 +36,47 @@ class MastodonFilterApiController : FilterApi { irreversible: Boolean?, wholeWord: Boolean?, expiresIn: Int? - ): ResponseEntity { - return super.apiV1FiltersIdPut(id, phrase, context, irreversible, wholeWord, expiresIn) - } + ): ResponseEntity = super.apiV1FiltersIdPut(id, phrase, context, irreversible, wholeWord, expiresIn) override suspend fun apiV1FiltersPost(v1FilterPostRequest: V1FilterPostRequest): ResponseEntity { - return super.apiV1FiltersPost(v1FilterPostRequest) + return ResponseEntity.ok( + mastodonFilterApiService.createByV1Filter(loginUserContextHolder.getLoginUserId(), v1FilterPostRequest) + ) } override suspend fun apiV2FiltersFilterIdKeywordsPost( filterId: String, filterKeywordsPostRequest: FilterKeywordsPostRequest ): ResponseEntity { - return super.apiV2FiltersFilterIdKeywordsPost(filterId, filterKeywordsPostRequest) + return ResponseEntity.ok( + mastodonFilterApiService.addKeyword( + loginUserContextHolder.getLoginUserId(), + filterId.toLong(), + filterKeywordsPostRequest + ) + ) } override suspend fun apiV2FiltersFilterIdStatusesPost( filterId: String, filterStatusRequest: FilterStatusRequest ): ResponseEntity { - return super.apiV2FiltersFilterIdStatusesPost(filterId, filterStatusRequest) + return ResponseEntity.ok( + mastodonFilterApiService.addFilterStatus( + loginUserContextHolder.getLoginUserId(), + filterId.toLong(), + filterStatusRequest + ) + ) } override suspend fun apiV2FiltersIdDelete(id: String): ResponseEntity { - return super.apiV2FiltersIdDelete(id) + mastodonFilterApiService.deleteById(loginUserContextHolder.getLoginUserId(), id.toLong()) + return ResponseEntity.ok().build() } - override suspend fun apiV2FiltersIdGet(id: String): ResponseEntity { - return super.apiV2FiltersIdGet(id) - } + override suspend fun apiV2FiltersIdGet(id: String): ResponseEntity = + ResponseEntity.ok(mastodonFilterApiService.getById(loginUserContextHolder.getLoginUserId(), id.toLong())) override suspend fun apiV2FiltersIdPut( id: String, @@ -62,16 +85,21 @@ class MastodonFilterApiController : FilterApi { filterAction: String?, expiresIn: Int?, keywordsAttributes: List? - ): ResponseEntity { - return super.apiV2FiltersIdPut(id, title, context, filterAction, expiresIn, keywordsAttributes) - } + ): ResponseEntity = + super.apiV2FiltersIdPut(id, title, context, filterAction, expiresIn, keywordsAttributes) override suspend fun apiV2FiltersKeywordsIdDelete(id: String): ResponseEntity { - return super.apiV2FiltersKeywordsIdDelete(id) + mastodonFilterApiService.deleteKeyword(loginUserContextHolder.getLoginUserId(), id.toLong()) + return ResponseEntity.ok().build() } override suspend fun apiV2FiltersKeywordsIdGet(id: String): ResponseEntity { - return super.apiV2FiltersKeywordsIdGet(id) + return ResponseEntity.ok( + mastodonFilterApiService.getKeywordById( + loginUserContextHolder.getLoginUserId(), + id.toLong() + ) + ) } override suspend fun apiV2FiltersKeywordsIdPut( @@ -79,19 +107,27 @@ class MastodonFilterApiController : FilterApi { keyword: String?, wholeWord: Boolean?, regex: Boolean? - ): ResponseEntity { - return super.apiV2FiltersKeywordsIdPut(id, keyword, wholeWord, regex) - } + ): ResponseEntity = super.apiV2FiltersKeywordsIdPut(id, keyword, wholeWord, regex) - override suspend fun apiV2FiltersPost(filterPostRequest: FilterPostRequest): ResponseEntity { - return super.apiV2FiltersPost(filterPostRequest) - } + override suspend fun apiV2FiltersPost(filterPostRequest: FilterPostRequest): ResponseEntity = + ResponseEntity.ok( + mastodonFilterApiService.createFilter( + loginUserContextHolder.getLoginUserId(), + filterPostRequest + ) + ) override suspend fun apiV2FiltersStatusesIdDelete(id: String): ResponseEntity { - return super.apiV2FiltersStatusesIdDelete(id) + mastodonFilterApiService.deleteFilterStatusById(loginUserContextHolder.getLoginUserId(), id.toLong()) + return ResponseEntity.ok().build() } override suspend fun apiV2FiltersStatusesIdGet(id: String): ResponseEntity { - return super.apiV2FiltersStatusesIdGet(id) + return ResponseEntity.ok( + mastodonFilterApiService.getFilterStatusById( + loginUserContextHolder.getLoginUserId(), + id.toLong() + ) + ) } } diff --git a/src/main/kotlin/dev/usbharu/hideout/mastodon/service/account/AccountApiService.kt b/src/main/kotlin/dev/usbharu/hideout/mastodon/service/account/AccountApiService.kt index 5ec3d733..8733649b 100644 --- a/src/main/kotlin/dev/usbharu/hideout/mastodon/service/account/AccountApiService.kt +++ b/src/main/kotlin/dev/usbharu/hideout/mastodon/service/account/AccountApiService.kt @@ -20,7 +20,7 @@ import kotlin.math.min @Suppress("TooManyFunctions") interface AccountApiService { - @Suppress("ongParameterList") + @Suppress("LongParameterList") suspend fun accountsStatuses( userid: Long, onlyMedia: Boolean, diff --git a/src/main/kotlin/dev/usbharu/hideout/mastodon/service/filter/MastodonFilterApiService.kt b/src/main/kotlin/dev/usbharu/hideout/mastodon/service/filter/MastodonFilterApiService.kt index c9602df8..e122c84f 100644 --- a/src/main/kotlin/dev/usbharu/hideout/mastodon/service/filter/MastodonFilterApiService.kt +++ b/src/main/kotlin/dev/usbharu/hideout/mastodon/service/filter/MastodonFilterApiService.kt @@ -18,6 +18,7 @@ import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.runBlocking import org.springframework.stereotype.Service +@Suppress("TooManyFunctions") interface MastodonFilterApiService { fun v1Filters(userId: Long): Flow @@ -33,7 +34,7 @@ interface MastodonFilterApiService { fun filterStatuses(userId: Long, filterId: Long): Flow - suspend fun addFilterStatus(userId: Long, filterId: Long, filterStatusRequest: FilterStatusRequest) + suspend fun addFilterStatus(userId: Long, filterId: Long, filterStatusRequest: FilterStatusRequest): FilterStatus fun filters(userId: Long): Flow @@ -65,8 +66,8 @@ class MastodonFilterApiServiceImpl( V1Filter( id = it.id.toString(), phrase = it.keyword, - context = filterQueryModel.context.map { - when (it) { + context = filterQueryModel.context.map { filterType -> + when (filterType) { home -> Context.home notifications -> Context.notifications public -> Context.public @@ -178,19 +179,20 @@ class MastodonFilterApiServiceImpl( return toFilterKeyword(filterKeyword) } - override fun filterStatuses(userId: Long, filterId: Long): Flow { - return emptyFlow() + override fun filterStatuses(userId: Long, filterId: Long): Flow = emptyFlow() + + override suspend fun addFilterStatus( + userId: Long, + filterId: Long, + filterStatusRequest: FilterStatusRequest + ): FilterStatus { + TODO() } - override suspend fun addFilterStatus(userId: Long, filterId: Long, filterStatusRequest: FilterStatusRequest) { - return - } - - override fun filters(userId: Long): Flow { - return runBlocking { filterQueryService.findByUserId(userId) }.map { filterQueryModel -> + override fun filters(userId: Long): Flow = + runBlocking { filterQueryService.findByUserId(userId) }.map { filterQueryModel -> toFilter(filterQueryModel) }.asFlow() - } private fun toFilter(filterQueryModel: FilterQueryModel) = Filter( id = filterQueryModel.id.toString(), @@ -221,9 +223,8 @@ class MastodonFilterApiServiceImpl( it.mode == FilterMode.WHOLE_WORD ) - override suspend fun deleteById(userId: Long, filterId: Long) { + override suspend fun deleteById(userId: Long, filterId: Long) = filterRepository.deleteByUserIdAndId(userId, filterId) - } override suspend fun getById(userId: Long, filterId: Long): Filter? = filterQueryService.findByUserIdAndId(userId, filterId)?.let { toFilter(it) } @@ -278,11 +279,7 @@ class MastodonFilterApiServiceImpl( ) } - override suspend fun deleteFilterStatusById(userId: Long, filterPostsId: Long) { - return - } + override suspend fun deleteFilterStatusById(userId: Long, filterPostsId: Long) = Unit - override suspend fun getFilterStatusById(userId: Long, filterPostsId: Long): FilterStatus? { - return null - } + override suspend fun getFilterStatusById(userId: Long, filterPostsId: Long): FilterStatus? = null }