Skip to content

[work-list] GET /api/v1/cases API로 업무함 데이터 계층 교체 #268

Description

@BcKmini

배경

server #88(merged, main에 있음)에서 GET /api/v1/cases, GET /api/v1/cases/{caseId}/projection이 생김. 지금 WorkListPage는 /workers + /tasks + /workflow-catalogs를 따로 받아서 클라이언트가 직접 그룹핑·진행률·현재 할 일을 계산하는데(workInboxModel.ts), 서버와 연결 할 예정

서버 응답 계약 (snake_case)

GET /api/v1/cases?keyword=&page=&size={ items: CaseSummary[], page, size, total_elements, total_pages }

CaseSummary: case_id, worker_id, worker_display_name, title, display_status(DOCUMENT_PENDING|REQUEST_SENT|REVIEW_REQUIRED|COMPLETED|CANCELLED), has_unread_response, priority(URGENT|HIGH|NORMAL|LOW), progress{completed_steps,total_steps,percentage}, due_date, current_task, updated_at

GET /api/v1/cases/{caseId}/projection → 위 필드 + lifecycle_status(ACTIVE|COMPLETED|CANCELLED), readiness{completed_checklist_items,total_checklist_items,verified_documents,total_documents,pending_approvals,approved_approvals,worker_responses,evidence_items}, tasks[], workflow_catalog_version, workflow_snapshot

CaseTask: task_id, task_type, title, status, due_date

작업 범위

  • src/api/cases.ts 신설 (타입 + fetchCases + fetchCaseProjection)
  • WorkListPage.tsx를 /cases 기반으로 재작성, /workers+/tasks+/workflow-catalogs 조합 제거
  • workInboxModel.ts(클라이언트 그룹핑 로직) 삭제 또는 대폭 축소
  • workInboxPresentation.ts의 상태 매핑을 server의 display_status 5종 기준으로 재정리 — 지금 REVIEW-001 4단계 배지([work-list] 근로자 배지를 REVIEW-001 단계 라벨로 바꾸고 바로 연결 #257)와의 매핑도 다시 확인 필요
  • WorkInboxTargetList.tsx, WorkInboxDetail.tsx prop을 Case 응답 모양에 맞춰 조정
  • 관련 테스트 전체 갱신

완료 조건

  • WorkListPage가 /cases API로 목록·상세를 표시
  • REVIEW-001 4단계 배지 매핑이 새 display_status 기준으로 정확
  • 기존 테스트 갱신 + 통과, lint/build 통과

#269 에서 완료. 로컬 서버(H2 + demo seed)에 실제로 붙여서 /cases, /cases/{id}/projection 응답과 타입 대조까지 확인함.

Metadata

Metadata

Assignees

Labels

area:task-board업무카드 보드 화면priority:P1핵심 작업 다음으로 중요한 작업type:feature사용자 기능 개발

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions