Skip to content

[feat] 약속 회고 API 레이어 구축 (types, endpoints, api, hooks) #94

@mgYang53

Description

@mgYang53

📄 설명

약속 회고(AI 요약) 기능의 API 레이어를 구축합니다. 다른 팀원이 UI 구현(#93)을 진행할 수 있도록 types, endpoints, api 함수, React Query 훅을 먼저 분리하여 제공합니다.

관련 API 엔드포인트

메서드 경로 용도
POST /api/gatherings/{gId}/meetings/{mId}/stt/jobs STT + AI 요약 트리거 (multipart, file optional)
GET /api/meetings/{mId}/retrospectives/summary 요약 조회
PATCH /api/meetings/{mId}/retrospectives/summary 요약 수정
POST /api/meetings/{mId}/retrospectives/summary/publish 요약 발행

구현 규칙

  • 쿼리: api.* (auto-unwrap, T 반환)
  • 뮤테이션: apiClient.* (response.dataApiResponse<T> 접근)
  • STT 엔드포인트: 동기 API (5분 타임아웃), AbortSignal로 취소 지원
  • FormData 업로드 (Content-Type: undefined)

✅ 해야 할 일

타입 & 엔드포인트

  • retrospectives.types.ts — SttJobResponse, RetrospectiveSummaryResponse, KeyPoint, SummaryTopic, UpdateSummaryRequest 등
  • retrospectives.endpoints.ts — STT_JOBS, SUMMARY, PUBLISH 엔드포인트 상수

API 함수

  • retrospectives.api.ts — createSttJob (FormData + AbortSignal + 5분 타임아웃), getSummary, updateSummary, publishSummary

React Query 훅

  • hooks/retrospectiveQueryKeys.ts — 쿼리 키 팩토리
  • hooks/useSummary.ts — 요약 조회 훅
  • hooks/useCreateSttJob.ts — STT 생성 뮤테이션 (AbortController 취소 지원)
  • hooks/useUpdateSummary.ts — 요약 수정 뮤테이션 (setQueryData 캐시 업데이트)
  • hooks/usePublishSummary.ts — 요약 발행 뮤테이션
  • hooks/index.ts — 배럴 export

배럴 export

  • features/retrospectives/index.ts — hooks, api, types export 추가

검증

  • pnpm lint 통과
  • pnpm build 성공

Metadata

Metadata

Assignees

Labels

feat새로운 기능 추가

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions