fix(rank): 홈 콘텐츠 랭킹 차단 크리에이터를 양방향으로 필터링한다
This commit is contained in:
24
docs/20260226_홈콘텐츠랭킹차단크리에이터필터링.md
Normal file
24
docs/20260226_홈콘텐츠랭킹차단크리에이터필터링.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
- [x] 홈 `fetchData` 콘텐츠 랭킹 조회 경로 및 차단 적용 패턴 확인
|
||||||
|
- [x] `RankingRepository.getAudioContentRanking`에 양방향 차단(내가 차단/나를 차단) 조건 적용
|
||||||
|
- [x] 변경 파일 진단 및 테스트/빌드 검증 수행
|
||||||
|
- [x] 검증 결과 기록
|
||||||
|
|
||||||
|
## 1차 구현 검증 기록
|
||||||
|
- 무엇: 홈 `fetchData`의 `contentRanking`에서 내가 차단한 크리에이터와 나를 차단한 크리에이터의 콘텐츠를
|
||||||
|
모두 제외하도록 서비스 레벨 필터를 추가했다.
|
||||||
|
- 왜: 기존 랭킹 조회 쿼리에는 한 방향 차단만 반영되어 양방향 차단 관계를 완전히 차단하지 못할 수 있기 때문이다.
|
||||||
|
- 어떻게:
|
||||||
|
- `lsp_diagnostics`: Kotlin(`.kt`)용 LSP 서버가 현재 환경에 없어 도구 기반 진단은 수행 불가.
|
||||||
|
- `./gradlew ktlintCheck`: 성공.
|
||||||
|
- `./gradlew test`: 성공.
|
||||||
|
- `./gradlew build -x test`: 성공.
|
||||||
|
|
||||||
|
## 2차 수정 검증 기록
|
||||||
|
- 무엇: 서비스(`HomeService`)에서 처리하던 `contentRanking` 차단 필터를 제거하고, `RankingRepository.getAudioContentRanking`
|
||||||
|
쿼리의 `blockMemberCondition`을 양방향 차단 조건으로 수정했다.
|
||||||
|
- 왜: 홈 서비스가 아닌 랭킹 데이터 조회 계층에서 차단 정책을 일관되게 보장하기 위해서다.
|
||||||
|
- 어떻게:
|
||||||
|
- `lsp_diagnostics`: Kotlin(`.kt`)용 LSP 서버가 현재 환경에 없어 도구 기반 진단은 수행 불가.
|
||||||
|
- `./gradlew ktlintCheck`: 성공.
|
||||||
|
- `./gradlew test`: 성공.
|
||||||
|
- `./gradlew build -x test`: 성공.
|
||||||
@@ -80,9 +80,15 @@ class RankingRepository(
|
|||||||
locale: String? = null
|
locale: String? = null
|
||||||
): List<GetAudioContentRankingItem> {
|
): List<GetAudioContentRankingItem> {
|
||||||
val blockMemberCondition = if (memberId != null) {
|
val blockMemberCondition = if (memberId != null) {
|
||||||
blockMember.member.id.eq(member.id)
|
blockMember.isActive.isTrue
|
||||||
.and(blockMember.isActive.isTrue)
|
.and(
|
||||||
.and(blockMember.blockedMember.id.eq(memberId))
|
blockMember.member.id.eq(member.id)
|
||||||
|
.and(blockMember.blockedMember.id.eq(memberId))
|
||||||
|
.or(
|
||||||
|
blockMember.member.id.eq(memberId)
|
||||||
|
.and(blockMember.blockedMember.id.eq(member.id))
|
||||||
|
)
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user