Skip to content

fix(mindrecord): 수신자 데일리질문 isDraft 를 파싱하지 않고 false 하드코딩 — draft 노출 방어가 무효 #956

Closed

Description

@OnlyReadOneBook

📜 Overview (Required)

수신자용 데일리질문 매퍼가 isDraft 를 파싱하지 않고 false 리터럴로 하드코딩한다 (MindRecordMapper.kt:18-19, 주석: "데일리질문 수신자 응답은 isDraft 미노출 — 서버가 draft 를 전달 대상에서 제외한다고 가정").

그런데 ReceiverMindRecordViewModel 은 "서버가 제외하기를 기대하나 방어적으로 한 번 더 거른다"며 두 목록 모두에 filterNot { it.isDraft } 를 건다 — 데일리질문 쪽은 항상 false 라 통과율 100% 인 무효 필터다. BE 가 draft 제외를 빠뜨리면(또는 이미 안 하고 있다면) 작성자가 임시저장만 해 둔 답변이 수신자에게 그대로 노출된다. 일기 쪽(ReceiverDiaryItemDto.isDraft 파싱)은 정상 동작하므로 두 목록의 방어 수준이 갈려 있다.

주석의 전제가 Swagger 로 반증된다 — 실측(2026-08-23, dev /v3/api-docs) 기준 GET /receiver-auth/daily-question 응답 항목은 발신자 목록과 같은 DailyQuestionListResponse 스키마를 재사용하며 isDraft 를 포함한다([userDailyQuestionId, title, content, createdAt, isDraft, receivers]). 즉 계약에 있는 값을 FE 가 버리고 있는 것이라, ReceiverDailyQuestionItemDto 에 isDraft 파싱을 추가하면 기존 필터가 그대로 실효화된다.

📌 Child Issue(Optional)

No response

📍 Note (Optional)

Activity

  1. added a commit that references this issue on Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions