fix(block-member): 양방향 차단 관계의 댓글·응원·콘텐츠 노출을 차단한다
This commit is contained in:
@@ -524,6 +524,10 @@ class AudioContentService(
|
||||
val creator = explorerQueryRepository.getMember(creatorId)
|
||||
?: throw SodaException(messageKey = "content.error.user_not_found")
|
||||
|
||||
if (isBlockedBetweenMembers(memberId = member.id!!, creatorId = creatorId)) {
|
||||
throw SodaException(messageKey = "content.error.invalid_content_retry")
|
||||
}
|
||||
|
||||
val creatorFollowing = explorerQueryRepository.getCreatorFollowing(
|
||||
creatorId = creatorId,
|
||||
memberId = member.id!!
|
||||
@@ -534,12 +538,6 @@ class AudioContentService(
|
||||
contentId = audioContent.id!!
|
||||
)
|
||||
|
||||
// 차단된 사용자 체크
|
||||
val isBlocked = blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = creatorId)
|
||||
if (isBlocked && !isExistsAudioContent) {
|
||||
throw SodaException(formatMessage("content.error.access_restricted_by_creator", creator.nickname))
|
||||
}
|
||||
|
||||
val orderSequence = if (isExistsAudioContent) {
|
||||
limitedEditionOrderRepository.getOrderSequence(
|
||||
contentId = audioContent.id!!,
|
||||
@@ -886,6 +884,10 @@ class AudioContentService(
|
||||
): GetAudioContentListItem? {
|
||||
val isAdult = member.auth != null && isAdultContentVisible
|
||||
|
||||
if (isBlockedBetweenMembers(memberId = member.id!!, creatorId = creatorId)) {
|
||||
return null
|
||||
}
|
||||
|
||||
val audioContent = repository.findLatestContentByCreatorId(creatorId, isAdult) ?: return null
|
||||
|
||||
val commentCount = commentRepository
|
||||
@@ -957,6 +959,10 @@ class AudioContentService(
|
||||
val isAdult = member.auth != null && isAdultContentVisible
|
||||
val isCreator = member.id == creatorId
|
||||
|
||||
if (!isCreator && isBlockedBetweenMembers(memberId = member.id!!, creatorId = creatorId)) {
|
||||
return GetAudioContentListResponse(totalCount = 0, items = listOf())
|
||||
}
|
||||
|
||||
val totalCount = repository.findTotalCountByCreatorId(
|
||||
creatorId = creatorId,
|
||||
isCreator = isCreator,
|
||||
@@ -1313,8 +1319,8 @@ class AudioContentService(
|
||||
}
|
||||
}
|
||||
|
||||
private fun formatMessage(key: String, vararg args: Any): String {
|
||||
val template = messageSource.getMessage(key, langContext.lang) ?: return ""
|
||||
return String.format(template, *args)
|
||||
private fun isBlockedBetweenMembers(memberId: Long, creatorId: Long): Boolean {
|
||||
return blockMemberRepository.isBlocked(blockedMemberId = memberId, memberId = creatorId) ||
|
||||
blockMemberRepository.isBlocked(blockedMemberId = creatorId, memberId = memberId)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user