diff --git a/BE/src/main/java/com/codesquad/airbnb/common/exception/GlobalRestExceptionHandler.java b/BE/src/main/java/com/codesquad/airbnb/common/exception/GlobalRestExceptionHandler.java index 09b786f..501bc64 100644 --- a/BE/src/main/java/com/codesquad/airbnb/common/exception/GlobalRestExceptionHandler.java +++ b/BE/src/main/java/com/codesquad/airbnb/common/exception/GlobalRestExceptionHandler.java @@ -2,6 +2,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestController; @@ -10,8 +11,11 @@ public class GlobalRestExceptionHandler { @ExceptionHandler(Exception.class) protected ResponseEntity handleServerException(Exception e) { - return new ResponseEntity<>("서버 에러입니다..", HttpStatus.INTERNAL_SERVER_ERROR); + return new ResponseEntity<>("서버 에러입니다", HttpStatus.INTERNAL_SERVER_ERROR); } - + @ExceptionHandler(HttpRequestMethodNotSupportedException.class) + protected ResponseEntity HttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e) { + return new ResponseEntity<>("지원하지 않는 메소드입니다", HttpStatus.METHOD_NOT_ALLOWED); + } } diff --git a/BE/src/main/java/com/codesquad/airbnb/common/exception/InputMistakeException.java b/BE/src/main/java/com/codesquad/airbnb/common/exception/InputMistakeException.java new file mode 100644 index 0000000..46005b4 --- /dev/null +++ b/BE/src/main/java/com/codesquad/airbnb/common/exception/InputMistakeException.java @@ -0,0 +1,8 @@ +package com.codesquad.airbnb.common.exception; + +public class InputMistakeException extends RuntimeException { + + public InputMistakeException() { + super(); + } +} diff --git a/BE/src/main/java/com/codesquad/airbnb/common/exception/InputNothingException.java b/BE/src/main/java/com/codesquad/airbnb/common/exception/InputNothingException.java new file mode 100644 index 0000000..e1b4440 --- /dev/null +++ b/BE/src/main/java/com/codesquad/airbnb/common/exception/InputNothingException.java @@ -0,0 +1,4 @@ +package com.codesquad.airbnb.common.exception; + +public class InputNothingException { +} diff --git a/BE/src/main/java/com/codesquad/airbnb/reservation/domain/Guest.java b/BE/src/main/java/com/codesquad/airbnb/reservation/domain/Guest.java index 5e95919..fd1eecb 100644 --- a/BE/src/main/java/com/codesquad/airbnb/reservation/domain/Guest.java +++ b/BE/src/main/java/com/codesquad/airbnb/reservation/domain/Guest.java @@ -1,25 +1,20 @@ package com.codesquad.airbnb.reservation.domain; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; + +import javax.validation.constraints.Min; @Getter @NoArgsConstructor @Setter @AllArgsConstructor +@ToString public class Guest { + @Min(1) private int numberOfAdults; private int numberOfKids; private int numberOfBabies; - - public void checkInput() { - if(numberOfAdults == 0 && numberOfKids == 0 && numberOfBabies == 0) { - throw new IllegalArgumentException("Please Input Guests!"); - } - } } diff --git a/BE/src/main/java/com/codesquad/airbnb/reservation/domain/ReservationDate.java b/BE/src/main/java/com/codesquad/airbnb/reservation/domain/ReservationDate.java index f4dd99b..903b843 100644 --- a/BE/src/main/java/com/codesquad/airbnb/reservation/domain/ReservationDate.java +++ b/BE/src/main/java/com/codesquad/airbnb/reservation/domain/ReservationDate.java @@ -2,6 +2,7 @@ import lombok.*; +import javax.validation.constraints.NotNull; import java.time.LocalDate; @Getter @@ -11,24 +12,9 @@ @ToString public class ReservationDate { + @NotNull private LocalDate checkInDate = LocalDate.MIN; + @NotNull private LocalDate checkOutDate = LocalDate.MAX; - - public void checkInput() { - validCheckInDate(); - validCheckOutDate(); - } - - private void validCheckInDate() { - if (checkInDate.equals(LocalDate.MIN)) { - throw new IllegalArgumentException("Please Input Check-In-Date!"); - } - } - - private void validCheckOutDate() { - if (checkOutDate.equals(LocalDate.MAX)) { - throw new IllegalArgumentException("Please Input Check-Out-Date!"); - } - } } diff --git a/BE/src/main/java/com/codesquad/airbnb/reservation/ui/ReservationController.java b/BE/src/main/java/com/codesquad/airbnb/reservation/ui/ReservationController.java index 81efd5a..4f38043 100644 --- a/BE/src/main/java/com/codesquad/airbnb/reservation/ui/ReservationController.java +++ b/BE/src/main/java/com/codesquad/airbnb/reservation/ui/ReservationController.java @@ -26,15 +26,11 @@ public class ReservationController { @GetMapping("/reservations") public Confirmation showBillAndReview(@RequestParam Long roomId, @Valid ReservationDate reservationDate, @Valid Guest guest) { - reservationDate.checkInput(); - guest.checkInput(); return viewDAO.showBillAndReview(utilDAO, roomId, reservationDate, guest); } @PostMapping("/reservations") public ResponseEntity reserve(@RequestParam Long roomId, @RequestParam Long userId, @Valid ReservationDate reservationDate, @Valid Guest guest) { - reservationDate.checkInput(); - guest.checkInput(); reservationDAO.reserve(utilDAO, roomId, userId, reservationDate, guest); return new ResponseEntity<>(HttpStatus.CREATED); } diff --git a/BE/src/main/java/com/codesquad/airbnb/room/domain/Budget.java b/BE/src/main/java/com/codesquad/airbnb/room/domain/Budget.java index 7f96ea3..b2985f9 100644 --- a/BE/src/main/java/com/codesquad/airbnb/room/domain/Budget.java +++ b/BE/src/main/java/com/codesquad/airbnb/room/domain/Budget.java @@ -1,14 +1,12 @@ package com.codesquad.airbnb.room.domain; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; @Getter @Setter @NoArgsConstructor @AllArgsConstructor +@ToString public class Budget { private int lowestPrice; diff --git a/BE/src/main/java/com/codesquad/airbnb/room/infra/ViewDAO.java b/BE/src/main/java/com/codesquad/airbnb/room/infra/ViewDAO.java index bc2843e..287589d 100644 --- a/BE/src/main/java/com/codesquad/airbnb/room/infra/ViewDAO.java +++ b/BE/src/main/java/com/codesquad/airbnb/room/infra/ViewDAO.java @@ -49,7 +49,8 @@ public Main main(UtilDAO utilDAO, ReservationDate reservationDate, Guest guest, "LEFT OUTER JOIN reservations r3 on r.room_id = r3.room_id " + "LEFT OUTER JOIN dates d on r3.room_id = d.room_id " + "WHERE (p.price BETWEEN ? AND ?) " + - "GROUP BY r.room_id"; + "GROUP BY r.room_id " + + "LIMIT 5"; RowMapper roomRowMapper = new RowMapper() { @Override diff --git a/BE/src/main/java/com/codesquad/airbnb/room/ui/MainController.java b/BE/src/main/java/com/codesquad/airbnb/room/ui/MainController.java index ef731c7..4afe41b 100644 --- a/BE/src/main/java/com/codesquad/airbnb/room/ui/MainController.java +++ b/BE/src/main/java/com/codesquad/airbnb/room/ui/MainController.java @@ -26,16 +26,15 @@ public class MainController { private final ViewDAO viewDAO; @GetMapping("") - public Main showMain(@Valid ReservationDate reservationDate, - @Valid Guest guest, - @Valid Budget budget) { + public Main showMain(ReservationDate reservationDate, + Guest guest, + Budget budget) { return viewDAO.main(utilDAO, reservationDate, guest, budget); } @GetMapping("/budget") public Statistics showPriceStatistics(@Valid ReservationDate reservationDate) { - reservationDate.checkInput(); return viewDAO.showStatistics(reservationDate); } } diff --git a/BE/src/main/java/com/codesquad/airbnb/user/ui/LoginController.java b/BE/src/main/java/com/codesquad/airbnb/user/ui/LoginController.java index 9745191..049a82a 100644 --- a/BE/src/main/java/com/codesquad/airbnb/user/ui/LoginController.java +++ b/BE/src/main/java/com/codesquad/airbnb/user/ui/LoginController.java @@ -1,10 +1,8 @@ package com.codesquad.airbnb.user.ui; import com.codesquad.airbnb.user.application.LoginService; -import com.codesquad.airbnb.user.domain.GitHubOAuthProperty; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping;