콘텐츠 고정, 해제 API 추가

This commit is contained in:
2024-01-26 23:36:17 +09:00
parent 3ea6b5824b
commit 711842f00d
4 changed files with 105 additions and 0 deletions

View File

@@ -16,6 +16,8 @@ import kr.co.vividnext.sodalive.content.like.PutAudioContentLikeResponse
import kr.co.vividnext.sodalive.content.main.GetAudioContentRanking
import kr.co.vividnext.sodalive.content.order.OrderRepository
import kr.co.vividnext.sodalive.content.order.OrderType
import kr.co.vividnext.sodalive.content.pin.PinContent
import kr.co.vividnext.sodalive.content.pin.PinContentRepository
import kr.co.vividnext.sodalive.content.theme.AudioContentThemeQueryRepository
import kr.co.vividnext.sodalive.explorer.ExplorerQueryRepository
import kr.co.vividnext.sodalive.extensions.convertLocalDateTime
@@ -49,6 +51,7 @@ class AudioContentService(
private val playbackTrackingRepository: PlaybackTrackingRepository,
private val commentRepository: AudioContentCommentRepository,
private val audioContentLikeRepository: AudioContentLikeRepository,
private val pinContentRepository: PinContentRepository,
private val s3Uploader: S3Uploader,
private val objectMapper: ObjectMapper,
@@ -696,4 +699,31 @@ class AudioContentService(
fun getContentRankingSortTypeList(): List<String> {
return listOf("매출", "댓글", "좋아요")
}
@Transactional
fun pinToTheTop(contentId: Long, member: Member) {
val audioContent = repository.findByIdAndCreatorId(contentId = contentId, creatorId = member.id!!)
?: throw SodaException("잘못된 콘텐츠 입니다.\n다시 시도해 주세요.")
val pinContentList = pinContentRepository.getPinContentList(memberId = member.id!!)
val pinContent = if (pinContentList.size >= 3) {
pinContentList[0]
} else {
PinContent()
}
pinContent.member = member
pinContent.content = audioContent
pinContentRepository.save(pinContent)
}
@Transactional
fun unpinAtTheTop(contentId: Long, member: Member) {
val pinContent = pinContentRepository.findByContentIdAndMemberId(
contentId = contentId,
memberId = member.id!!
) ?: throw SodaException("잘못된 콘텐츠 입니다.\n다시 시도해 주세요.")
pinContent.isActive = false
}
}