From 27e70bc4645fb8877c42c6a99f5da12ee7f4fa07 Mon Sep 17 00:00:00 2001 From: Kim HyunSik Date: Thu, 4 Jun 2020 12:33:26 +0900 Subject: [PATCH] =?UTF-8?q?[#38]=20feat:=20=EC=98=88=EC=95=BD=20=EB=82=A0?= =?UTF-8?q?=EC=A7=9C=20validation=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/InputMistakeException.java | 4 +-- .../reservation/domain/ReservationDate.java | 33 ++++++++++++++++--- .../airbnb/room/ui/MainController.java | 1 + 3 files changed, 32 insertions(+), 6 deletions(-) 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 index 46005b4..9389973 100644 --- a/BE/src/main/java/com/codesquad/airbnb/common/exception/InputMistakeException.java +++ b/BE/src/main/java/com/codesquad/airbnb/common/exception/InputMistakeException.java @@ -2,7 +2,7 @@ public class InputMistakeException extends RuntimeException { - public InputMistakeException() { - super(); + public InputMistakeException(String message) { + super(message); } } 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 903b843..b940161 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 @@ -1,7 +1,10 @@ package com.codesquad.airbnb.reservation.domain; +import com.codesquad.airbnb.common.exception.InputMistakeException; import lombok.*; +import javax.validation.constraints.AssertTrue; +import javax.validation.constraints.FutureOrPresent; import javax.validation.constraints.NotNull; import java.time.LocalDate; @@ -12,9 +15,31 @@ @ToString public class ReservationDate { - @NotNull - private LocalDate checkInDate = LocalDate.MIN; + @NotNull(message = "Please provide a date") + @FutureOrPresent + private LocalDate checkInDate = LocalDate.now(); - @NotNull - private LocalDate checkOutDate = LocalDate.MAX; + @NotNull(message = "Please provide a date") + @FutureOrPresent + private LocalDate checkOutDate = LocalDate.now(); + + @AssertTrue + private boolean isAfterThanCheckInDate() { + if(checkOutDate.isBefore(checkInDate)) { + throw new InputMistakeException("체크아웃 날짜를 확인해주세요"); + } + + return true; + } + + public void validateReservationDate() { + validateCheckInDate(); + isAfterThanCheckInDate(); + } + + private void validateCheckInDate() { + if(checkInDate.isBefore(LocalDate.now())) { + throw new InputMistakeException("체크인 날짜를 확인해주세요"); + } + } } 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 4afe41b..b87128a 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 @@ -30,6 +30,7 @@ public Main showMain(ReservationDate reservationDate, Guest guest, Budget budget) { + reservationDate.validateReservationDate(); return viewDAO.main(utilDAO, reservationDate, guest, budget); }