From ba6aaf391a84fe6d0dcc3777272cdb2bf1547d7c Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 17 Sep 2026 20:19:45 +0900 Subject: [PATCH] =?UTF-8?q?refactor(content):=20=EC=98=A4=EB=94=94?= =?UTF-8?q?=EC=98=A4=20=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=A0=95=EC=B1=85=20?= =?UTF-8?q?=ED=98=B8=EC=B6=9C=EC=9D=84=20=ED=86=B5=ED=95=A9=ED=95=9C?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../co/vividnext/sodalive/content/AudioContentService.kt | 9 +++++---- .../sodalive/content/AudioContentServiceTest.kt | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt index 328ad868..38949296 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt @@ -38,7 +38,7 @@ import kr.co.vividnext.sodalive.i18n.translation.ResourceTranslationJobScheduler import kr.co.vividnext.sodalive.member.Member import kr.co.vividnext.sodalive.member.MemberRepository import kr.co.vividnext.sodalive.member.block.BlockMemberRepository -import kr.co.vividnext.sodalive.member.contentpreference.isAdultVisibleByPolicy +import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService import kr.co.vividnext.sodalive.utils.generateFileName import kr.co.vividnext.sodalive.v2.home.following.application.HomeFollowingNewsPublishService import kr.co.vividnext.sodalive.v2.recommendation.application.CreatorContentViewHistoryService @@ -90,6 +90,7 @@ class AudioContentService( private val contentThemeTranslationRepository: ContentThemeTranslationRepository, private val homeFollowingNewsPublishService: HomeFollowingNewsPublishService, + private val memberContentPreferenceService: MemberContentPreferenceService, @Value("\${cloud.aws.s3.content-bucket}") private val audioContentBucket: String, @@ -616,7 +617,7 @@ class AudioContentService( isAdultContentVisible: Boolean, timezone: String ): GetAudioContentDetailResponse { - val isAdult = isAdultVisibleByPolicy(member, isAdultContentVisible) + val isAdult = memberContentPreferenceService.isAdultVisibleForQuery(member, isAdultContentVisible) // 오디오 콘텐츠 조회 (content_id, 제목, 내용, 테마, 태그, 19여부, 이미지, 콘텐츠 PATH) val audioContent = repository.findByIdOrNull(id) @@ -977,7 +978,7 @@ class AudioContentService( member: Member, isAdultContentVisible: Boolean ): GetAudioContentListItem? { - val isAdult = isAdultVisibleByPolicy(member, isAdultContentVisible) + val isAdult = memberContentPreferenceService.isAdultVisibleForQuery(member, isAdultContentVisible) if (isBlockedBetweenMembers(memberId = member.id!!, creatorId = creatorId)) { return null @@ -1051,7 +1052,7 @@ class AudioContentService( offset: Long, limit: Long ): GetAudioContentListResponse { - val isAdult = isAdultVisibleByPolicy(member, isAdultContentVisible) + val isAdult = memberContentPreferenceService.isAdultVisibleForQuery(member, isAdultContentVisible) val isCreator = member.id == creatorId if (!isCreator && isBlockedBetweenMembers(memberId = member.id!!, creatorId = creatorId)) { diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/content/AudioContentServiceTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/content/AudioContentServiceTest.kt index c28289a1..b19c7bdd 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/content/AudioContentServiceTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/content/AudioContentServiceTest.kt @@ -23,6 +23,7 @@ import kr.co.vividnext.sodalive.i18n.translation.ResourceTranslationJobScheduler import kr.co.vividnext.sodalive.member.Member import kr.co.vividnext.sodalive.member.MemberRepository import kr.co.vividnext.sodalive.member.block.BlockMemberRepository +import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService import kr.co.vividnext.sodalive.v2.home.following.application.HomeFollowingNewsPublishService import kr.co.vividnext.sodalive.v2.recommendation.application.CreatorContentViewHistoryService import org.junit.jupiter.api.Assertions.assertEquals @@ -63,6 +64,7 @@ class AudioContentServiceTest { private lateinit var applicationEventPublisher: ApplicationEventPublisher private lateinit var contentThemeTranslationRepository: ContentThemeTranslationRepository private lateinit var homeFollowingNewsPublishService: HomeFollowingNewsPublishService + private lateinit var memberContentPreferenceService: MemberContentPreferenceService private lateinit var service: AudioContentService @@ -88,6 +90,7 @@ class AudioContentServiceTest { applicationEventPublisher = Mockito.mock(ApplicationEventPublisher::class.java) contentThemeTranslationRepository = Mockito.mock(ContentThemeTranslationRepository::class.java) homeFollowingNewsPublishService = Mockito.mock(HomeFollowingNewsPublishService::class.java) + memberContentPreferenceService = Mockito.mock(MemberContentPreferenceService::class.java) service = AudioContentService( repository = repository, @@ -113,6 +116,7 @@ class AudioContentServiceTest { langContext = LangContext(), contentThemeTranslationRepository = contentThemeTranslationRepository, homeFollowingNewsPublishService = homeFollowingNewsPublishService, + memberContentPreferenceService = memberContentPreferenceService, audioContentBucket = "audio-bucket", coverImageBucket = "cover-bucket", coverImageHost = "https://cdn.test"