fix(content-preference): 조회 선호도 오버라이드 파라미터를 제거해 저장값만 사용한다
This commit is contained in:
@@ -405,11 +405,7 @@ class HomeService(
|
||||
)
|
||||
}
|
||||
|
||||
return memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
return memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
private fun pickByTimeDecay(
|
||||
|
||||
@@ -112,10 +112,6 @@ class LiveApiService(
|
||||
)
|
||||
}
|
||||
|
||||
return memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
return memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -306,10 +306,6 @@ class AudioContentController(
|
||||
)
|
||||
}
|
||||
|
||||
return memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
return memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.main
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.content.order.OrderService
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
@@ -25,7 +24,7 @@ class AudioContentMainController(
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, null, null)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getNewContentUploadCreatorList(
|
||||
@@ -40,7 +39,7 @@ class AudioContentMainController(
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, null, null)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getAudioContentMainBannerList(
|
||||
@@ -67,13 +66,11 @@ class AudioContentMainController(
|
||||
@GetMapping("/new")
|
||||
fun getNewContentByTheme(
|
||||
@RequestParam("theme") theme: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getNewContentByTheme(
|
||||
@@ -88,12 +85,10 @@ class AudioContentMainController(
|
||||
|
||||
@GetMapping("/theme")
|
||||
fun getThemeList(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getThemeList(
|
||||
@@ -106,13 +101,11 @@ class AudioContentMainController(
|
||||
@GetMapping("/new/all")
|
||||
fun getNewContentAllByTheme(
|
||||
@RequestParam("theme") theme: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getNewContentFor2WeeksByTheme(
|
||||
@@ -127,13 +120,11 @@ class AudioContentMainController(
|
||||
|
||||
@GetMapping("/curation-list")
|
||||
fun getCurationList(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getAudioContentCurationListWithPaging(
|
||||
@@ -146,13 +137,5 @@ class AudioContentMainController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.main.curation
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.content.SortType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
@@ -23,14 +22,12 @@ class AudioContentCurationController(
|
||||
@GetMapping("/{id}")
|
||||
fun getCurationContent(
|
||||
@PathVariable id: Long,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@RequestParam("sort-type", required = false) sortType: SortType? = SortType.NEWEST,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getCurationContent(
|
||||
@@ -44,13 +41,5 @@ class AudioContentCurationController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.main.tab.alarm
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
import org.springframework.data.domain.Pageable
|
||||
@@ -20,12 +19,10 @@ class AudioContentMainTabAlarmController(
|
||||
) {
|
||||
@GetMapping
|
||||
fun fetchContentMainTabAlarm(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.fetchData(
|
||||
@@ -39,13 +36,11 @@ class AudioContentMainTabAlarmController(
|
||||
@GetMapping("/all")
|
||||
fun fetchAlarmContentByTheme(
|
||||
@RequestParam("theme") theme: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.fetchAlarmContentByTheme(
|
||||
@@ -59,13 +54,5 @@ class AudioContentMainTabAlarmController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.main.tab.asmr
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal
|
||||
@@ -19,12 +18,10 @@ class AudioContentMainTabAsmrController(
|
||||
) {
|
||||
@GetMapping
|
||||
fun fetchContentMainTabAsmr(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.fetchData(
|
||||
@@ -38,12 +35,10 @@ class AudioContentMainTabAsmrController(
|
||||
@GetMapping("/popular-content-by-creator")
|
||||
fun getPopularContentByCreator(
|
||||
@RequestParam creatorId: Long,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getPopularContentByCreator(
|
||||
@@ -54,13 +49,5 @@ class AudioContentMainTabAsmrController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.main.tab.content
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
import org.springframework.data.domain.Pageable
|
||||
@@ -20,12 +19,10 @@ class AudioContentMainTabContentController(
|
||||
) {
|
||||
@GetMapping
|
||||
fun fetchContentMainTabContent(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.fetchData(
|
||||
@@ -39,13 +36,11 @@ class AudioContentMainTabContentController(
|
||||
@GetMapping("/ranking")
|
||||
fun getAudioContentRanking(
|
||||
@RequestParam("sort-type", required = false) sortType: String?,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getAudioContentRanking(
|
||||
@@ -60,13 +55,11 @@ class AudioContentMainTabContentController(
|
||||
@GetMapping("/new-content-by-theme")
|
||||
fun getNewContentByTheme(
|
||||
@RequestParam("theme") theme: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getNewContentByTheme(
|
||||
@@ -81,12 +74,10 @@ class AudioContentMainTabContentController(
|
||||
@GetMapping("/popular-content-by-creator")
|
||||
fun getPopularContentByCreator(
|
||||
@RequestParam creatorId: Long,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getPopularContentByCreator(
|
||||
@@ -100,12 +91,10 @@ class AudioContentMainTabContentController(
|
||||
@GetMapping("/recommend-content-by-tag")
|
||||
fun getRecommendedContentByTag(
|
||||
@RequestParam tag: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
ApiResponse.ok(
|
||||
service.getRecommendedContentByTag(
|
||||
memberId = member.id!!,
|
||||
@@ -116,13 +105,5 @@ class AudioContentMainTabContentController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.main.tab.free
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
import org.springframework.data.domain.Pageable
|
||||
@@ -20,12 +19,10 @@ class AudioContentMainTabFreeController(
|
||||
) {
|
||||
@GetMapping
|
||||
fun fetchContentMainFree(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.fetchData(
|
||||
@@ -38,13 +35,11 @@ class AudioContentMainTabFreeController(
|
||||
|
||||
@GetMapping("/introduce-creator")
|
||||
fun getIntroduceCreator(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getIntroduceCreator(
|
||||
@@ -60,13 +55,11 @@ class AudioContentMainTabFreeController(
|
||||
@GetMapping("/new-content-by-theme")
|
||||
fun getNewContentByTheme(
|
||||
@RequestParam("theme") theme: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getNewContentByTheme(
|
||||
@@ -83,12 +76,10 @@ class AudioContentMainTabFreeController(
|
||||
@GetMapping("/popular-content-by-creator")
|
||||
fun getPopularContentByCreator(
|
||||
@RequestParam creatorId: Long,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getPopularContentByCreator(
|
||||
@@ -99,13 +90,5 @@ class AudioContentMainTabFreeController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -82,10 +82,6 @@ class AudioContentMainTabHomeController(
|
||||
)
|
||||
}
|
||||
|
||||
return memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
return memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.main.tab.replay
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal
|
||||
@@ -19,12 +18,10 @@ class AudioContentMainTabLiveReplayController(
|
||||
) {
|
||||
@GetMapping
|
||||
fun fetchContentMainTabLiveReplay(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.fetchData(
|
||||
@@ -38,12 +35,10 @@ class AudioContentMainTabLiveReplayController(
|
||||
@GetMapping("/popular-content-by-creator")
|
||||
fun getPopularContentByCreator(
|
||||
@RequestParam creatorId: Long,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getPopularContentByCreator(
|
||||
@@ -54,13 +49,5 @@ class AudioContentMainTabLiveReplayController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.main.tab.series
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
import org.springframework.data.domain.Pageable
|
||||
@@ -20,12 +19,10 @@ class AudioContentMainTabSeriesController(
|
||||
) {
|
||||
@GetMapping
|
||||
fun fetchContentMainSeries(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.fetchData(
|
||||
@@ -38,13 +35,11 @@ class AudioContentMainTabSeriesController(
|
||||
|
||||
@GetMapping("/original")
|
||||
fun getOriginalAudioDramaList(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getOriginalAudioDramaList(
|
||||
@@ -59,13 +54,11 @@ class AudioContentMainTabSeriesController(
|
||||
|
||||
@GetMapping("/completed-rank")
|
||||
fun getRank10DaysCompletedSeriesList(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getRank10DaysCompletedSeriesList(
|
||||
@@ -81,12 +74,10 @@ class AudioContentMainTabSeriesController(
|
||||
@GetMapping("/recommend-by-genre")
|
||||
fun getRecommendSeriesListByGenre(
|
||||
@RequestParam genreId: Long,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getRecommendSeriesListByGenre(
|
||||
@@ -101,12 +92,10 @@ class AudioContentMainTabSeriesController(
|
||||
@GetMapping("/recommend-series-by-creator")
|
||||
fun getRecommendSeriesByCreator(
|
||||
@RequestParam creatorId: Long,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getRecommendSeriesByCreator(
|
||||
@@ -117,13 +106,5 @@ class AudioContentMainTabSeriesController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.series
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesSortType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
@@ -25,13 +24,11 @@ class ContentSeriesController(
|
||||
@RequestParam(required = false) creatorId: Long?,
|
||||
@RequestParam(name = "isOriginal", required = false) isOriginal: Boolean? = null,
|
||||
@RequestParam(name = "isCompleted", required = false) isCompleted: Boolean? = null,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getSeriesList(
|
||||
@@ -50,12 +47,10 @@ class ContentSeriesController(
|
||||
@GetMapping("/{id}")
|
||||
fun getSeriesDetail(
|
||||
@PathVariable id: Long,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getSeriesDetail(
|
||||
@@ -71,13 +66,11 @@ class ContentSeriesController(
|
||||
fun getSeriesContentList(
|
||||
@PathVariable id: Long,
|
||||
@RequestParam("sortType", required = false) sortType: SeriesSortType? = SeriesSortType.NEWEST,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getSeriesContentList(
|
||||
@@ -94,12 +87,10 @@ class ContentSeriesController(
|
||||
|
||||
@GetMapping("/recommend")
|
||||
fun getRecommendSeriesList(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getRecommendSeriesList(
|
||||
@@ -110,13 +101,5 @@ class ContentSeriesController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package kr.co.vividnext.sodalive.content.series.main
|
||||
import kr.co.vividnext.sodalive.admin.content.series.banner.dto.SeriesBannerResponse
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.content.series.ContentSeriesService
|
||||
import kr.co.vividnext.sodalive.content.series.main.banner.ContentSeriesBannerService
|
||||
import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesPublishedDaysOfWeek
|
||||
@@ -29,12 +28,10 @@ class SeriesMainController(
|
||||
) {
|
||||
@GetMapping
|
||||
fun fetchData(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
val banners = bannerService.getActiveBanners(PageRequest.of(0, 10))
|
||||
.content
|
||||
@@ -69,12 +66,10 @@ class SeriesMainController(
|
||||
|
||||
@GetMapping("/recommend")
|
||||
fun getRecommendSeriesList(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
contentSeriesService.getRecommendSeriesList(
|
||||
@@ -88,14 +83,12 @@ class SeriesMainController(
|
||||
@GetMapping("/day-of-week")
|
||||
fun getDayOfWeekSeriesList(
|
||||
@RequestParam("dayOfWeek") dayOfWeek: SeriesPublishedDaysOfWeek,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@RequestParam(defaultValue = "0") page: Int,
|
||||
@RequestParam(defaultValue = "20") size: Int,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
val pageable = PageRequest.of(page, size)
|
||||
|
||||
ApiResponse.ok(
|
||||
@@ -112,12 +105,10 @@ class SeriesMainController(
|
||||
|
||||
@GetMapping("/genre-list")
|
||||
fun getGenreList(
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
val memberId = member.id!!
|
||||
val isAdult = preference.isAdult
|
||||
@@ -134,14 +125,12 @@ class SeriesMainController(
|
||||
@GetMapping("/list-by-genre")
|
||||
fun getSeriesListByGenre(
|
||||
@RequestParam("genreId") genreId: Long,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@RequestParam(defaultValue = "0") page: Int,
|
||||
@RequestParam(defaultValue = "20") size: Int,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
val pageable = PageRequest.of(page, size)
|
||||
|
||||
ApiResponse.ok(
|
||||
@@ -156,13 +145,5 @@ class SeriesMainController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.content.theme
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.content.SortType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
@@ -35,12 +34,10 @@ class AudioContentThemeController(
|
||||
fun getActiveThemes(
|
||||
@RequestParam("isFree", required = false) isFree: Boolean? = null,
|
||||
@RequestParam("isPointAvailableOnly", required = false) isPointAvailableOnly: Boolean? = null,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getActiveThemeOfContent(
|
||||
@@ -56,13 +53,11 @@ class AudioContentThemeController(
|
||||
fun getContentByTheme(
|
||||
@PathVariable id: Long,
|
||||
@RequestParam("sort-type", required = false) sortType: SortType? = SortType.NEWEST,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getContentByTheme(
|
||||
@@ -77,13 +72,5 @@ class AudioContentThemeController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -59,7 +59,6 @@ class ExplorerController(
|
||||
fun getCreatorProfile(
|
||||
@PathVariable("id") creatorId: Long,
|
||||
@RequestParam timezone: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
@@ -67,7 +66,6 @@ class ExplorerController(
|
||||
service.getCreatorProfile(
|
||||
creatorId = creatorId,
|
||||
timezone = timezone,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
member = member
|
||||
)
|
||||
)
|
||||
|
||||
@@ -258,14 +258,9 @@ class ExplorerService(
|
||||
fun getCreatorProfile(
|
||||
creatorId: Long,
|
||||
timezone: String,
|
||||
isAdultContentVisible: Boolean?,
|
||||
member: Member
|
||||
): GetCreatorProfileResponse {
|
||||
val preference = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = null
|
||||
)
|
||||
val preference = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
|
||||
// 크리에이터(유저) 정보
|
||||
val creatorAccount = queryRepository.getMember(creatorId)
|
||||
|
||||
@@ -1480,11 +1480,7 @@ class LiveRoomService(
|
||||
)
|
||||
}
|
||||
|
||||
return memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = null
|
||||
)
|
||||
return memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@Transactional
|
||||
|
||||
@@ -40,7 +40,7 @@ class MemberContentPreferenceService(
|
||||
return initializeDefaultPreference(
|
||||
member = member,
|
||||
seed = PreferenceSeed(
|
||||
isAdultContentVisible = false,
|
||||
isAdultContentVisible = member.auth != null,
|
||||
contentType = ContentType.ALL
|
||||
)
|
||||
)
|
||||
@@ -82,18 +82,10 @@ class MemberContentPreferenceService(
|
||||
}
|
||||
|
||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||
fun resolveForQuery(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
): ViewerContentPreference {
|
||||
fun resolveForQuery(member: Member): ViewerContentPreference {
|
||||
val preference = initializeDefaultPreference(
|
||||
member = member,
|
||||
seed = resolvePreferenceSeedForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
seed = resolvePreferenceSeedForQuery(member)
|
||||
)
|
||||
val countryCode = resolveCountryCode(member)
|
||||
|
||||
@@ -178,21 +170,10 @@ class MemberContentPreferenceService(
|
||||
}
|
||||
}
|
||||
|
||||
private fun resolvePreferenceSeedForQuery(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
): PreferenceSeed {
|
||||
if (member.auth == null) {
|
||||
return PreferenceSeed(
|
||||
isAdultContentVisible = false,
|
||||
contentType = ContentType.ALL
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreferenceSeedForQuery(member: Member): PreferenceSeed {
|
||||
return PreferenceSeed(
|
||||
isAdultContentVisible = isAdultContentVisible ?: true,
|
||||
contentType = contentType ?: ContentType.ALL
|
||||
isAdultContentVisible = member.auth != null,
|
||||
contentType = ContentType.ALL
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package kr.co.vividnext.sodalive.search
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.content.ContentType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
|
||||
import org.springframework.data.domain.Pageable
|
||||
@@ -21,12 +20,10 @@ class SearchController(
|
||||
@GetMapping
|
||||
fun searchUnified(
|
||||
@RequestParam keyword: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
ApiResponse.ok(
|
||||
service.searchUnified(
|
||||
keyword,
|
||||
@@ -57,13 +54,11 @@ class SearchController(
|
||||
@GetMapping("/contents")
|
||||
fun searchContentList(
|
||||
@RequestParam keyword: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
ApiResponse.ok(
|
||||
service.searchContentList(
|
||||
keyword,
|
||||
@@ -79,13 +74,11 @@ class SearchController(
|
||||
@GetMapping("/series")
|
||||
fun searchSeriesList(
|
||||
@RequestParam keyword: String,
|
||||
@RequestParam("isAdultContentVisible", required = false) isAdultContentVisible: Boolean? = null,
|
||||
@RequestParam("contentType", required = false) contentType: ContentType? = null,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
val preference = resolvePreference(member, isAdultContentVisible, contentType)
|
||||
val preference = resolvePreference(member)
|
||||
ApiResponse.ok(
|
||||
service.searchSeriesList(
|
||||
keyword,
|
||||
@@ -98,13 +91,5 @@ class SearchController(
|
||||
)
|
||||
}
|
||||
|
||||
private fun resolvePreference(
|
||||
member: Member,
|
||||
isAdultContentVisible: Boolean?,
|
||||
contentType: ContentType?
|
||||
) = memberContentPreferenceService.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = isAdultContentVisible,
|
||||
contentType = contentType
|
||||
)
|
||||
private fun resolvePreference(member: Member) = memberContentPreferenceService.resolveForQuery(member = member)
|
||||
}
|
||||
|
||||
@@ -54,11 +54,7 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
|
||||
|
||||
assertEquals(null, preferenceRepository.findByMemberId(member.id!!))
|
||||
|
||||
val resolved = service.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = true,
|
||||
contentType = ContentType.MALE
|
||||
)
|
||||
val resolved = service.resolveForQuery(member = member)
|
||||
val stored = service.getStoredPreference(member)
|
||||
|
||||
assertNotNull(preferenceRepository.findByMemberId(member.id!!))
|
||||
@@ -81,11 +77,7 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
|
||||
|
||||
assertEquals(null, preferenceRepository.findByMemberId(member.id!!))
|
||||
|
||||
val resolved = service.resolveForQuery(
|
||||
member = reloadedMember,
|
||||
isAdultContentVisible = null,
|
||||
contentType = null
|
||||
)
|
||||
val resolved = service.resolveForQuery(member = reloadedMember)
|
||||
val stored = service.getStoredPreference(reloadedMember)
|
||||
|
||||
assertNotNull(preferenceRepository.findByMemberId(member.id!!))
|
||||
@@ -123,11 +115,7 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
|
||||
val member = saveNonForcedMember("kr-unauth-user")
|
||||
countryContext.setCountryCode(null)
|
||||
|
||||
val resolved = service.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = true,
|
||||
contentType = ContentType.MALE
|
||||
)
|
||||
val resolved = service.resolveForQuery(member = member)
|
||||
val stored = service.getStoredPreference(member)
|
||||
|
||||
assertEquals("KR", resolved.countryCode)
|
||||
@@ -139,22 +127,18 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("KR + 인증 사용자는 요청값이 저장되고 성인 조회값(isAdult)이 true로 계산된다")
|
||||
fun shouldApplyRequestValuesForKrAuthenticatedMember() {
|
||||
@DisplayName("KR + 인증 사용자는 legacy 파라미터와 무관하게 true/ALL로 생성되고 isAdult가 true로 계산된다")
|
||||
fun shouldCreateTrueAndAllForKrAuthenticatedMemberRegardlessOfLegacyParams() {
|
||||
val member = saveNonForcedMember("kr-auth-user")
|
||||
countryContext.setCountryCode(null)
|
||||
saveAuth(member)
|
||||
|
||||
val reloadedMember = memberRepository.findById(member.id!!).orElseThrow()
|
||||
val resolved = service.resolveForQuery(
|
||||
member = reloadedMember,
|
||||
isAdultContentVisible = true,
|
||||
contentType = ContentType.FEMALE
|
||||
)
|
||||
val resolved = service.resolveForQuery(member = reloadedMember)
|
||||
|
||||
assertEquals("KR", resolved.countryCode)
|
||||
assertTrue(resolved.isAdultContentVisible)
|
||||
assertEquals(ContentType.FEMALE, resolved.contentType)
|
||||
assertEquals(ContentType.ALL, resolved.contentType)
|
||||
assertTrue(resolved.isAdult)
|
||||
}
|
||||
|
||||
@@ -172,11 +156,7 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
|
||||
contentType = ContentType.FEMALE
|
||||
)
|
||||
|
||||
val resolved = service.resolveForQuery(
|
||||
member = reloadedMember,
|
||||
isAdultContentVisible = true,
|
||||
contentType = ContentType.MALE
|
||||
)
|
||||
val resolved = service.resolveForQuery(member = reloadedMember)
|
||||
val stored = service.getStoredPreference(reloadedMember)
|
||||
|
||||
assertFalse(resolved.isAdultContentVisible)
|
||||
|
||||
@@ -258,8 +258,8 @@ class MemberContentPreferenceServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("row 미존재 + 인증 사용자의 legacy 조회 파라미터는 초기 생성값으로 반영된다")
|
||||
fun shouldSeedPreferenceFromLegacyParamsWhenRowMissingAndAuthenticated() {
|
||||
@DisplayName("row 미존재 + 인증 사용자는 legacy 파라미터와 무관하게 true/ALL로 초기 생성된다")
|
||||
fun shouldSeedPreferenceToTrueAndAllWhenRowMissingAndAuthenticatedRegardlessOfLegacyParams() {
|
||||
val member = createMember(id = 2100L, withAuth = true)
|
||||
countryContext.setCountryCode("US")
|
||||
|
||||
@@ -269,14 +269,10 @@ class MemberContentPreferenceServiceTest {
|
||||
Mockito.`when`(repository.saveAndFlush(Mockito.any(MemberContentPreference::class.java)))
|
||||
.thenAnswer { invocation -> invocation.getArgument(0) }
|
||||
|
||||
val result = service.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = true,
|
||||
contentType = ContentType.FEMALE
|
||||
)
|
||||
val result = service.resolveForQuery(member = member)
|
||||
|
||||
assertTrue(result.isAdultContentVisible)
|
||||
assertEquals(ContentType.FEMALE, result.contentType)
|
||||
assertEquals(ContentType.ALL, result.contentType)
|
||||
assertTrue(result.isAdult)
|
||||
}
|
||||
|
||||
@@ -292,11 +288,7 @@ class MemberContentPreferenceServiceTest {
|
||||
Mockito.`when`(repository.saveAndFlush(Mockito.any(MemberContentPreference::class.java)))
|
||||
.thenAnswer { invocation -> invocation.getArgument(0) }
|
||||
|
||||
val result = service.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = null,
|
||||
contentType = null
|
||||
)
|
||||
val result = service.resolveForQuery(member = member)
|
||||
|
||||
assertTrue(result.isAdultContentVisible)
|
||||
assertEquals(ContentType.ALL, result.contentType)
|
||||
@@ -315,11 +307,7 @@ class MemberContentPreferenceServiceTest {
|
||||
Mockito.`when`(repository.saveAndFlush(Mockito.any(MemberContentPreference::class.java)))
|
||||
.thenAnswer { invocation -> invocation.getArgument(0) }
|
||||
|
||||
val result = service.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = true,
|
||||
contentType = ContentType.MALE
|
||||
)
|
||||
val result = service.resolveForQuery(member = member)
|
||||
|
||||
assertFalse(result.isAdultContentVisible)
|
||||
assertEquals(ContentType.ALL, result.contentType)
|
||||
@@ -431,11 +419,7 @@ class MemberContentPreferenceServiceTest {
|
||||
countryContext.setCountryCode("US")
|
||||
Mockito.`when`(repository.findByMemberId(21L)).thenReturn(preference)
|
||||
|
||||
val result = service.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = true,
|
||||
contentType = ContentType.MALE
|
||||
)
|
||||
val result = service.resolveForQuery(member = member)
|
||||
|
||||
assertEquals(ContentType.FEMALE, result.contentType)
|
||||
assertFalse(result.isAdultContentVisible)
|
||||
@@ -449,11 +433,7 @@ class MemberContentPreferenceServiceTest {
|
||||
countryContext.setCountryCode("US")
|
||||
Mockito.`when`(repository.findByMemberId(25L)).thenReturn(preference)
|
||||
|
||||
service.resolveForQuery(
|
||||
member = member,
|
||||
isAdultContentVisible = true,
|
||||
contentType = null
|
||||
)
|
||||
service.resolveForQuery(member = member)
|
||||
|
||||
verifyRecommendLiveCacheNotEvicted(25L)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user