📌 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
📒 기타
- 검색 회귀 확인 대상:
AccessibleDocumentQueryServiceTest, SearchFacadeTest, DocumentIndexingCompletionIntegrationTest
📌 Description
사용자가 읽을 수 있는 문서 목록을 조회하는 API를 추가합니다.
현재 문서 도메인에는 업로드(
POST /api/documents)와 단건 인덱싱 상태 조회(GET /api/documents/{id}/status)만 있고, "내가 볼 수 있는 문서 목록"을 반환하는 API가 없습니다. 프론트엔드 문서 화면을 만들려면 목록 조회가 필요합니다.권한 판정은 검색 pre-filter가 이미 쓰고 있는
DocumentRepository의 UNION 쿼리를 재사용합니다. 다만 해당 쿼리는d.status = 'INDEXED'가 하드코딩되어 있어, 인덱싱 중이거나 실패한 문서까지 목록에 노출하려면 상태 조건을 파라미터화해야 합니다.INDEXED만 넘겨 기존 동작을 유지합니다.status미지정 시DELETED를 제외한 전체 상태를 반환합니다.createdAt DESC, id DESC) 고정이며 외부 정렬 입력을 받지 않습니다.✅ To-do
DocumentRepository권한 pre-filter 쿼리 상태 파라미터화currentVersionJOIN FETCH, countQuery 분리)DocumentSummaryResponse/DocumentSummaryConverter추가DocumentQueryService.getMyDocuments구현DocumentQueryController목록 API 추가 및 page·size 범위 검증📒 기타
AccessibleDocumentQueryServiceTest,SearchFacadeTest,DocumentIndexingCompletionIntegrationTest