Skip to content

feat: 업무함을 Case API 기반으로 전환 - #269

Merged
BcKmini merged 1 commit into
mainfrom
feat/work-inbox-case-api
Aug 6, 2026
Merged

feat: 업무함을 Case API 기반으로 전환#269
BcKmini merged 1 commit into
mainfrom
feat/work-inbox-case-api

Conversation

@BcKmini

@BcKmini BcKmini commented Aug 6, 2026

Copy link
Copy Markdown
Member

요약

  • 업무함(WorkListPage) 데이터 레이어를 /workers + /tasks + /workflow-catalogs 조합해서 클라이언트에서 직접 조합하던 방식에서, 서버가 새로 제공하는 GET /api/v1/cases / GET /api/v1/cases/{caseId}/projection으로 교체
  • progress·display_status 계산을 서버 값 그대로 사용 (클라이언트 계산 로직 제거)
  • Worker API 실패를 non-blocking으로 변경 — Case가 이미 worker_id/worker_display_name을 들고 있어서 조인 실패(orphan task) 케이스 자체가 없어짐
  • 실제 로컬 서버(H2 + demo seed)에 붙여서 /cases, /cases/{id}/projection 응답을 직접 확인하고 타입(src/api/cases.ts) 검증 완료

알려진 단순화

  • fetchCaseProjection은 작성했지만 아직 미사용. 지금은 목록 응답(CaseSummaryResponse)만으로 상세 패널을 구성하고, readiness/전체 tasks 같은 projection 전용 데이터는 다루지 않음. 필요해지면 별도로 확장

검증

  • npx tsc -b
  • npm run lint
  • npx vitest run — 350/350 통과 ✅
  • npm run build
  • 로컬 서버 실제 /cases, /cases/{id}/projection 응답과 TS 타입 대조 확인 ✅

Closes #268

/workers + /tasks + /workflow-catalogs 조합해서 클라이언트에서 직접 만들던 업무함 데이터를 서버의 GET /api/v1/cases, /cases/{id}/projection으로 대체. progress·display_status 계산도 서버가 내려주는 값 그대로 사용.

Worker API 실패는 이제 non-blocking으로 처리(Case가 worker_id/worker_display_name을 이미 들고 있어서 조인 실패 케이스가 없어짐).

Closes #268
@BcKmini
BcKmini merged commit d3340e3 into main Aug 6, 2026
1 check passed
@BcKmini
BcKmini deleted the feat/work-inbox-case-api branch August 6, 2026 03:01
@BcKmini BcKmini self-assigned this Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

1 participant