jvnlee / catch-dining

맛집 검색 및 예약 서비스
0 stars 0 forks source link

feature/#16 seat api crud #17

Closed jvnlee closed 1 year ago

jvnlee commented 1 year ago

구현 내용

Repository

Spring Data JPA 방식의 SeatRepository 인터페이스를 추가함

 

Service

SeatRepository를 의존성으로 갖는 SeatService 클래스를 추가함

 

Controller

SeatService를 의존성으로 갖는 SeatController 클래스를 추가함

API 상세

Method Endpoint Parameters Authorities Success Fail
POST /restaurants/{restaurantId}/seats 없음 OWNER 200 400
GET /restaurants/{restaurantId}/seats date, seatType, headCount CUSTOMER, OWNER 200 404

@PreAuthorize로 Seat 등록에 대해서는 OWNER 권한이 있는 사용자만 접근할 수 있도록 제한

Seat은 Restaurant에 종속적인 개념이기 때문에 API Endpoint를 restaurants 하위로 오게 설계함

 

테스트 코드

 

기타

Seat의 데이터를 수정하거나 삭제하는 기능을 구현하지 않음

updatePastDates()는 클라이언트 요청에 의해 호출되는 것이 아닌 내부적으로 호출되는 메서드이므로 논외

Seat은 Reservation과 1대1 연관 관계를 가지고 있기 때문에, 특정 Seat에 대한 Reservation이 생성된 뒤에 Seat 데이터가 변경되면 Reservation 조회 시의 데이터에도 문제가 생길 수 있다고 판단함. 이 부분은 추후 Reservation API 구현 과정에서 적절한 해결책을 찾아야할 것으로 보임.