feat(content): 콘텐츠 상세 조회 이력을 기록한다
This commit is contained in:
@@ -39,6 +39,7 @@ import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.isAdultVisibleByPolicy
|
||||
import kr.co.vividnext.sodalive.utils.generateFileName
|
||||
import kr.co.vividnext.sodalive.v2.recommend.application.CreatorContentViewHistoryService
|
||||
import org.springframework.beans.factory.annotation.Value
|
||||
import org.springframework.cache.annotation.Cacheable
|
||||
import org.springframework.context.ApplicationEventPublisher
|
||||
@@ -63,6 +64,7 @@ class AudioContentService(
|
||||
private val limitedEditionOrderRepository: LimitedEditionOrderRepository,
|
||||
private val themeQueryRepository: AudioContentThemeQueryRepository,
|
||||
private val playbackTrackingRepository: PlaybackTrackingRepository,
|
||||
private val creatorContentViewHistoryService: CreatorContentViewHistoryService,
|
||||
private val commentRepository: AudioContentCommentRepository,
|
||||
private val audioContentLikeRepository: AudioContentLikeRepository,
|
||||
private val pinContentRepository: PinContentRepository,
|
||||
@@ -813,6 +815,13 @@ class AudioContentService(
|
||||
}
|
||||
}
|
||||
|
||||
runCatching {
|
||||
creatorContentViewHistoryService.recordView(
|
||||
memberId = member.id!!,
|
||||
contentId = audioContent.id!!
|
||||
)
|
||||
}
|
||||
|
||||
return GetAudioContentDetailResponse(
|
||||
contentId = audioContent.id!!,
|
||||
title = audioContent.title,
|
||||
|
||||
@@ -21,6 +21,7 @@ import kr.co.vividnext.sodalive.i18n.SodaMessageSource
|
||||
import kr.co.vividnext.sodalive.i18n.translation.ResourceTranslationJobScheduler
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
|
||||
import kr.co.vividnext.sodalive.v2.recommend.application.CreatorContentViewHistoryService
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertNull
|
||||
import org.junit.jupiter.api.Assertions.assertThrows
|
||||
@@ -41,6 +42,7 @@ class AudioContentServiceTest {
|
||||
private lateinit var limitedEditionOrderRepository: LimitedEditionOrderRepository
|
||||
private lateinit var themeQueryRepository: AudioContentThemeQueryRepository
|
||||
private lateinit var playbackTrackingRepository: PlaybackTrackingRepository
|
||||
private lateinit var creatorContentViewHistoryService: CreatorContentViewHistoryService
|
||||
private lateinit var commentRepository: AudioContentCommentRepository
|
||||
private lateinit var audioContentLikeRepository: AudioContentLikeRepository
|
||||
private lateinit var pinContentRepository: PinContentRepository
|
||||
@@ -63,6 +65,7 @@ class AudioContentServiceTest {
|
||||
limitedEditionOrderRepository = Mockito.mock(LimitedEditionOrderRepository::class.java)
|
||||
themeQueryRepository = Mockito.mock(AudioContentThemeQueryRepository::class.java)
|
||||
playbackTrackingRepository = Mockito.mock(PlaybackTrackingRepository::class.java)
|
||||
creatorContentViewHistoryService = Mockito.mock(CreatorContentViewHistoryService::class.java)
|
||||
commentRepository = Mockito.mock(AudioContentCommentRepository::class.java)
|
||||
audioContentLikeRepository = Mockito.mock(AudioContentLikeRepository::class.java)
|
||||
pinContentRepository = Mockito.mock(PinContentRepository::class.java)
|
||||
@@ -82,6 +85,7 @@ class AudioContentServiceTest {
|
||||
limitedEditionOrderRepository = limitedEditionOrderRepository,
|
||||
themeQueryRepository = themeQueryRepository,
|
||||
playbackTrackingRepository = playbackTrackingRepository,
|
||||
creatorContentViewHistoryService = creatorContentViewHistoryService,
|
||||
commentRepository = commentRepository,
|
||||
audioContentLikeRepository = audioContentLikeRepository,
|
||||
pinContentRepository = pinContentRepository,
|
||||
@@ -230,6 +234,10 @@ class AudioContentServiceTest {
|
||||
|
||||
Mockito.verify(repository, Mockito.never()).findSeriesIdByContentId(audioContent.id!!, false)
|
||||
Mockito.verifyNoInteractions(commentRepository)
|
||||
val recordViewInvocation = Mockito.mockingDetails(creatorContentViewHistoryService).invocations
|
||||
.single { it.method.name == "recordView" }
|
||||
assertEquals(viewer.id!!, recordViewInvocation.arguments[0])
|
||||
assertEquals(audioContent.id!!, recordViewInvocation.arguments[1])
|
||||
}
|
||||
|
||||
private fun createMember(id: Long, nickname: String): Member {
|
||||
|
||||
Reference in New Issue
Block a user