88import org .springframework .web .bind .annotation .PostMapping ;
99import org .springframework .web .bind .annotation .RequestBody ;
1010import org .springframework .web .bind .annotation .ResponseBody ;
11- import roomescape .dto .Reservation ;
12- import roomescape .exception .InvalidValueException ;
13- import roomescape .exception .NotFoundReservationException ;
14- import roomescape .repository .ReservationRepository ;
11+ import roomescape .dto .ReservationRequestDto ;
12+ import roomescape .dto .ReservationResponseDto ;
13+ import roomescape .service .ReservationService ;
1514
1615import java .net .URI ;
17- import java .util .ArrayList ;
1816import java .util .List ;
19- import java .util .concurrent .atomic .AtomicLong ;
2017
2118@ Controller
2219public class ReservationController {
2320
24- private final ReservationRepository reservationRepository ;
21+ private final ReservationService reservationService ;
2522
26- public ReservationController (ReservationRepository repository ) {
27- this .reservationRepository = repository ;
23+ public ReservationController (ReservationService reservationService ) {
24+ this .reservationService = reservationService ;
2825 }
2926
3027 // 홈화면
@@ -36,21 +33,17 @@ public String reservationPage() {
3633 //예약 조회
3734 @ ResponseBody
3835 @ GetMapping ("/reservations" )
39- public List <Reservation > list () {
40- return reservationRepository .findAll ();
36+ public ResponseEntity <List <ReservationResponseDto >> list () {
37+ List <ReservationResponseDto > reservations = reservationService .getAllReservations ();
38+ return ResponseEntity .ok (reservations );
4139 }
4240
4341 //예약 추가
4442 @ ResponseBody
4543 @ PostMapping ("/reservations" )
46- public ResponseEntity <Reservation > create (@ RequestBody Reservation newReservation ) {
47- if (newReservation .getName () == null || newReservation .getName ().isEmpty () ||
48- newReservation .getDate () == null || newReservation .getDate ().isEmpty () ||
49- newReservation .getTime () == null || newReservation .getTime ().isEmpty ()) {
50- throw new InvalidValueException ("예약 추가에 필요한 인자값이 비어있습니다." );
51- }
44+ public ResponseEntity <ReservationResponseDto > create (@ RequestBody ReservationRequestDto newReservationDto ) {
5245
53- Reservation reservation = reservationRepository . insert ( newReservation );
46+ ReservationResponseDto reservation = reservationService . createReservation ( newReservationDto );
5447
5548 return ResponseEntity .created (URI .create ("/reservations/" + reservation .getId ()))
5649 .body (reservation );
@@ -59,10 +52,7 @@ public ResponseEntity<Reservation> create(@RequestBody Reservation newReservatio
5952 //예약 삭제
6053 @ DeleteMapping ("/reservations/{id}" )
6154 public ResponseEntity <Void > delete (@ PathVariable Long id ) {
62- // 수정예정 Reservation reservation = reservationRepository.fin
63- // .orElseThrow(() -> new NotFoundReservationException("예약을 찾을 수 없습니다."));
64-
65- reservationRepository .delete (id );
55+ reservationService .deleteReservation (id );
6656 return ResponseEntity .noContent ().build ();
6757 }
6858}
0 commit comments