[FE-28] 웹 운영시간·휴무 lib + BFF Route Handler
작업 내용 (설계 의도)
변경 사항
운영시간 등록·휴무 관리의 서버 호출 계층을 웹 포털 관례(fetch → Next Route Handler → be-client)로 신규 작성한다.
web/lib/portal/operatingHours.ts:updateOperatingHours(facilityId, body)(PUT /facilities/{id}/operating-hours). 응답 zod 파싱.web/lib/portal/holidays.ts:addHoliday(facilityId, date)(POST .../holidays),removeHoliday(facilityId, date)(DELETE .../holidays).- BFF Route Handler:
web/app/api/portal/facilities/[id]/operating-hours/route.ts(PUT),web/app/api/portal/facilities/[id]/holidays/route.ts(POST·DELETE) —lib/server/be-client.ts경유, Bearer 쿠키 전달.
근거: 20260707-...-design-fe-web.md API 연동 표(W-OH/W-HD).
의존
- FE-26 (types·schemas)
다이어그램
클래스 의존
flowchart LR Lib["lib/portal/operatingHours.ts + holidays.ts"] --> Route["api/portal/facilities/[id]/operating-hours + holidays"] Route --> BeClient["lib/server/be-client.ts"] Form["OperatingHoursForm/HolidaySection (FE-31)"] --> Lib
테스트 케이스
updateOperatingHours가 PUT을 호출하고 응답을 zod로 파싱한다(msw)addHoliday가 POST body에 date를 실어 보낸다removeHoliday가 DELETE를 호출한다- 403 응답을 ProblemDetail로 표면화한다(권한 안내 전제)
- 중복 날짜 추가가 멱등 처리(2xx)로 통과한다