Skip to content

[Feature] 승인 플로우 실제 API 연동 — 데모 UI와 서버 모델 정합 필요 (Approval) #154

Description

@BcKmini

배경

fowoco/server에 승인·감사 API가 실제로 구현·병합됐다 (#11). CaseDetailPage의 승인 플로우(#146)는 Figma 와이어프레임만 보고 데모로 먼저 만든 것이라, 실제 서버 모델과 차이가 있다.

실제 서버 API

POST /api/v1/tasks/{taskId}/approval-requests
POST /api/v1/tasks/{taskId}/approve
POST /api/v1/tasks/{taskId}/reject
  • approval-requests: expected_version, ai_snapshot, hr_snapshot, changed_fields, source_versions
  • approve/reject: expected_version, reason(반려는 필수, 승인은 선택)
  • 응답(ApprovalResponse): approval_request_id, task_id, approval_status, task_status, content_revision, task_version, requested_at, decided_at

⚠️ 데모 UI와 실제로 다른 부분 (정합 필요)

  • 서버는 단일 승인자 approve/reject만 지원한다. 지금 클라이언트 데모([Feature] 승인 플로우 오버레이 5종 구현 (요청/결정/반려사유/다른승인자처리/재승인diff) #146)에 있는 "승인자 그룹·ANY_ONE 규칙", "다른 승인자가 처리했습니다" 오버레이는 대응하는 서버 개념이 없다. 실제로 여러 승인자를 지정하는 기능이 있는지, 있다면 어느 API인지 먼저 확인해야 한다 (지금 스캔한 범위에선 못 찾음).
  • "재승인 diff" 화면도 대응 API가 없다. 서버는 content_revision으로 재승인 필요 여부만 판단하고, 필드별 변경 비교(before/after)를 반환하는 API는 없다. 화면에 diff를 보여주려면 클라이언트가 이전 스냅샷(hr_snapshot)을 별도로 저장·비교하거나, 서버에 diff API 추가를 요청해야 한다.
  • ai_snapshot/hr_snapshot/changed_fields/source_versions를 채우려면 Task 생성·수정 시점에 이 값들을 만드는 로직이 클라이언트 또는 서버 어디에 있어야 하는지도 확인 필요.

완료 조건

  • 위 불일치 사항을 팀(서버 담당자)과 확인해 범위를 확정한다 — 그전까지는 구현 시작하지 않는다
  • 확정된 범위에 맞춰 "승인 요청" 버튼이 실제 POST .../approval-requests 호출
  • "승인"/"반려" 버튼이 실제 POST .../approve//reject 호출 (expected_version 낙관적 잠금 처리)
  • 확정 범위 밖의 데모 오버레이(승인자 그룹, 다른 승인자 처리, 재승인 diff)는 유지할지 제거할지 결정
  • 테스트 작성

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions