Skip to content

[Feat] 문서 목록 조회 API #153

Description

@Gimini-3

📌 Description

사용자가 읽을 수 있는 문서 목록을 조회하는 API를 추가합니다.

GET /api/documents?status={status}&page={page}&size={size}

현재 문서 도메인에는 업로드(POST /api/documents)와 단건 인덱싱 상태 조회(GET /api/documents/{id}/status)만 있고, "내가 볼 수 있는 문서 목록"을 반환하는 API가 없습니다. 프론트엔드 문서 화면을 만들려면 목록 조회가 필요합니다.

권한 판정은 검색 pre-filter가 이미 쓰고 있는 DocumentRepository의 UNION 쿼리를 재사용합니다. 다만 해당 쿼리는 d.status = 'INDEXED'가 하드코딩되어 있어, 인덱싱 중이거나 실패한 문서까지 목록에 노출하려면 상태 조건을 파라미터화해야 합니다.

  • 접근 경로 5가지(OWNER / PUBLIC / USER 캐시 / ROLE live / DEPARTMENT live)를 그대로 사용합니다.
  • 상태 조건만 파라미터화하고 쿼리를 복제하지 않습니다. 검색은 INDEXED만 넘겨 기존 동작을 유지합니다.
  • status 미지정 시 DELETED를 제외한 전체 상태를 반환합니다.
  • 정렬은 최신 등록순(createdAt DESC, id DESC) 고정이며 외부 정렬 입력을 받지 않습니다.

✅ To-do

  • DocumentRepository 권한 pre-filter 쿼리 상태 파라미터화
  • 목록 페이지 조회 쿼리 추가 (currentVersion JOIN FETCH, countQuery 분리)
  • DocumentSummaryResponse / DocumentSummaryConverter 추가
  • DocumentQueryService.getMyDocuments 구현
  • DocumentQueryController 목록 API 추가 및 page·size 범위 검증
  • 단위 테스트 및 Repository 테스트 작성
  • 설계 문서 작성

📒 기타

  • 검색 회귀 확인 대상: AccessibleDocumentQueryServiceTest, SearchFacadeTest, DocumentIndexingCompletionIntegrationTest

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions