Skip to content

[FIX] 독서 타임라인 sort=LATEST/OLDEST 미지원으로 감상 기록 안 보이던 문제 수정 - #454

Merged
onuyyy merged 1 commit into
devfrom
fix/timeline-sort-latest
Jun 17, 2026
Merged

[FIX] 독서 타임라인 sort=LATEST/OLDEST 미지원으로 감상 기록 안 보이던 문제 수정#454
onuyyy merged 1 commit into
devfrom
fix/timeline-sort-latest

Conversation

@onuyyy

@onuyyy onuyyy commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

PR 요약

책 상세의 "감상 기록 란"이 호출하는 타임라인 API가 sort=LATEST 를 인식하지 못해
400(G003)으로 실패, 목록이 비어 "기록이 저장되지 않는 것처럼" 보이던 QA 버그를 수정합니다.
(저장은 정상이었고, 조회 API의 sort 파라미터 enum 불일치가 원인)

  • 버그 수정

이슈 번호

  • 없음

주요 변경 사항

  • TimelineSortType: FE가 보내는 LATEST/OLDEST 값 추가(DESC/ASC 하위 호환 유지),
    의미 기반 isAscending() 헬퍼 추가
  • ReadingTimelineRepository: 정렬 방향 판정을 sort == ASCsort.isAscending()(null-safe)로
    변경해 OLDEST도 오름차순으로 매핑
  • PersonalBookRecordController / PersonalBookRecordApi: sort 기본값 DESCLATEST,
    Swagger 문서 동기화(B14)
  • TimelineSortTypeTest(신규): 해피(LATEST/OLDEST 바인딩·방향 매핑) + 더티(미정의 토큰 거부)

참고 사항

  • 원인: GET /api/book/{personalBookId}/records/timeline?sort=LATESTsort
    TimelineSortType(기존 DESC/ASC만)에 없어 @RequestParam 바인딩(Enum.valueOf) 실패
    MethodArgumentTypeMismatchException(G003).
  • 하위 호환 유지: DESC/ASC 도 계속 허용되어 기존 호출 안 깨짐.
  • DB 스키마 변경 없음(요청 파라미터 enum이라 영속화 X → CHECK 제약 무관).
  • 검증: compileJava OK, 신규 회귀 테스트 OK, com.dokdok.book.* 전체 테스트 OK.
  • 참고(별건): 일반 기록 목록 GET /{personalBookId}/recordssort 는 Spring Sort.Direction
    (DESC/ASC)이라, FE가 그쪽에도 LATEST 를 보낸다면 동일 이슈가 발생할 수 있어 확인 필요.

책 상세의 감상 기록 란이 호출하는
GET /api/book/{personalBookId}/records/timeline?sort=LATEST 가
TimelineSortType(DESC/ASC만 정의)에 LATEST 가 없어 @RequestParam 바인딩
(Enum.valueOf)에 실패 → MethodArgumentTypeMismatchException(G003) → 타임라인
응답 자체가 실패해 "기록 저장 안 됨"처럼 보이던 버그.

- TimelineSortType: LATEST/OLDEST 추가(DESC/ASC 하위 호환 유지),
  의미 기반 isAscending() 헬퍼 추가
- ReadingTimelineRepository: sort==ASC → sort.isAscending() (null-safe),
  OLDEST 도 오름차순으로 매핑
- 컨트롤러/Api: defaultValue DESC→LATEST, Swagger 문서 동기화(B14)
- TimelineSortTypeTest: 해피(LATEST/OLDEST 바인딩·방향 매핑) + 더티(미정의 토큰 거부)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@onuyyy
onuyyy merged commit f43e828 into dev Jun 17, 2026
2 checks passed
@onuyyy
onuyyy deleted the fix/timeline-sort-latest branch June 17, 2026 06:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant