From c9542e2e1e110b82723ae430b763fde802fc7167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=B0=AC=EB=AF=BC?= Date: Wed, 14 Aug 2024 10:07:00 +0900 Subject: [PATCH 1/8] =?UTF-8?q?feat=20ProductReportValidator=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/one/o2o/constants/ProductStatus.java | 13 ++++++++++++ .../report/ProductReportErrorCode.java | 3 ++- .../o2o/validator/ProductReportValidator.java | 21 ++++++++++++++++++- .../one/o2o/validator/ProductValidator.java | 1 + 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 BE/o2o/src/main/java/com/one/o2o/constants/ProductStatus.java diff --git a/BE/o2o/src/main/java/com/one/o2o/constants/ProductStatus.java b/BE/o2o/src/main/java/com/one/o2o/constants/ProductStatus.java new file mode 100644 index 0000000..e805ad3 --- /dev/null +++ b/BE/o2o/src/main/java/com/one/o2o/constants/ProductStatus.java @@ -0,0 +1,13 @@ +package com.one.o2o.constants; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ProductStatus { + MISSING(6), + BROKEN(7); + + private final Integer statusId; +} \ No newline at end of file diff --git a/BE/o2o/src/main/java/com/one/o2o/exception/products/report/ProductReportErrorCode.java b/BE/o2o/src/main/java/com/one/o2o/exception/products/report/ProductReportErrorCode.java index 7c680fe..b24ed8b 100644 --- a/BE/o2o/src/main/java/com/one/o2o/exception/products/report/ProductReportErrorCode.java +++ b/BE/o2o/src/main/java/com/one/o2o/exception/products/report/ProductReportErrorCode.java @@ -9,7 +9,8 @@ @Getter public enum ProductReportErrorCode implements ErrorCode { PRODUCT_REPORT_ID_NOT_FOUND(HttpStatus.NOT_FOUND, "이상 신고 내용을 찾을 수 없습니다."), - PRODUCT_REPORT_CONTENT_LENGTH(HttpStatus.BAD_REQUEST, String.format("이상 신고 내용이 허용된 최대 길이(%d자)를 초과했습니다.", MAX_PRODUCT_REPORT_CONTENT_LENGTH)); + PRODUCT_REPORT_CONTENT_LENGTH(HttpStatus.BAD_REQUEST, String.format("이상 신고 내용이 허용된 최대 길이(%d자)를 초과했습니다.", MAX_PRODUCT_REPORT_CONTENT_LENGTH)), + INVALID_PRODUCT_STATUS_ID(HttpStatus.BAD_REQUEST, "잘못된 상태 입력입니다."); private final HttpStatus httpStatus; private final String message; diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/ProductReportValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/ProductReportValidator.java index 7c67d3c..60150e3 100644 --- a/BE/o2o/src/main/java/com/one/o2o/validator/ProductReportValidator.java +++ b/BE/o2o/src/main/java/com/one/o2o/validator/ProductReportValidator.java @@ -1,5 +1,6 @@ package com.one.o2o.validator; +import com.one.o2o.constants.ProductStatus; import com.one.o2o.exception.products.report.ProductReportErrorCode; import com.one.o2o.exception.products.report.ProductReportException; import com.one.o2o.repository.ProductsReportRepository; @@ -16,6 +17,12 @@ public class ProductReportValidator { @Autowired private ProductsReportRepository productsReportRepository; + /** + * 이상 신고의 처리 아이디 검증 + * 존재하지 않는 ID인 경우 오류를 반환 + * + * @param id 검증할 내용 + */ public void validateProductReportId(Integer id) { boolean exist = productsReportRepository.existsById(id); if (!exist) { @@ -24,7 +31,19 @@ public void validateProductReportId(Integer id) { } /** - * 제품 보고서의 내용 길이 검증 + * 이상 신고의 물품 상태 아이디 검증 + * 분실(6), 파손(7)이 아닌 경우 오류를 반환 + * + * @param statusId 검증할 내용 + */ + public void validateStatusId(Integer statusId) { + if (ProductStatus.MISSING.getStatusId() != statusId && ProductStatus.BROKEN.getStatusId() != statusId) { + throw new ProductReportException(ProductReportErrorCode.INVALID_PRODUCT_STATUS_ID); + } + } + + /** + * 이상 신고의 내용 길이 검증 * 내용의 길이가 허용된 최대 길이를 초과하는 경우 오류를 반환 * * @param content 검증할 내용 diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/ProductValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/ProductValidator.java index d25df20..e11c5db 100644 --- a/BE/o2o/src/main/java/com/one/o2o/validator/ProductValidator.java +++ b/BE/o2o/src/main/java/com/one/o2o/validator/ProductValidator.java @@ -49,5 +49,6 @@ public void validateProductStatus(Integer productStatusId) { if (productStatusId == null || productStatusId < MIN_PRODUCT_STATUS_VALUE || MAX_PRODUCT_STATUS_VALUE < productStatusId) { throw new ProductException(ProductErrorCode.PRODUCT_STATUS_INVALID); } + if (productStatusId != ) } } \ No newline at end of file From 96f4e142c948077954000ceda8c2a61e9f56b343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=B0=AC=EB=AF=BC?= Date: Wed, 14 Aug 2024 10:07:51 +0900 Subject: [PATCH 2/8] =?UTF-8?q?fix:=20ProductValidator=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BE/o2o/src/main/java/com/one/o2o/validator/ProductValidator.java | 1 - 1 file changed, 1 deletion(-) diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/ProductValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/ProductValidator.java index e11c5db..d25df20 100644 --- a/BE/o2o/src/main/java/com/one/o2o/validator/ProductValidator.java +++ b/BE/o2o/src/main/java/com/one/o2o/validator/ProductValidator.java @@ -49,6 +49,5 @@ public void validateProductStatus(Integer productStatusId) { if (productStatusId == null || productStatusId < MIN_PRODUCT_STATUS_VALUE || MAX_PRODUCT_STATUS_VALUE < productStatusId) { throw new ProductException(ProductErrorCode.PRODUCT_STATUS_INVALID); } - if (productStatusId != ) } } \ No newline at end of file From e4fd2f3fb628fbeb6d371605b675b2a10807e206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=B0=AC=EB=AF=BC?= Date: Wed, 14 Aug 2024 10:54:36 +0900 Subject: [PATCH 3/8] =?UTF-8?q?fix:=20Locker=20Validator=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/one/o2o/exception/locker/LockerErrorCode.java | 3 ++- .../main/java/com/one/o2o/validator/LockerValidator.java | 6 ++++++ .../java/com/one/o2o/validator/ProductReportValidator.java | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/BE/o2o/src/main/java/com/one/o2o/exception/locker/LockerErrorCode.java b/BE/o2o/src/main/java/com/one/o2o/exception/locker/LockerErrorCode.java index e9dd6b9..ec45170 100644 --- a/BE/o2o/src/main/java/com/one/o2o/exception/locker/LockerErrorCode.java +++ b/BE/o2o/src/main/java/com/one/o2o/exception/locker/LockerErrorCode.java @@ -8,7 +8,8 @@ public enum LockerErrorCode implements ErrorCode { LOCKER_ID_INVALID(HttpStatus.BAD_REQUEST, "잘못된 locker ID입니다."), LOCKER_ID_NEGATIVE(HttpStatus.BAD_REQUEST, "locker ID의 값은 1이상의 수입니다."), - LOCKER_NOT_FOUND(HttpStatus.NOT_FOUND, "존재하지 않는 locker ID입니다."); + LOCKER_NOT_FOUND(HttpStatus.NOT_FOUND, "존재하지 않는 locker ID입니다."), + TOTAL_COUNT_UNDER_PRODUCT_COUNT(HttpStatus.BAD_REQUEST, "올바르지 않은 물품 개수 입력입니다."); private final HttpStatus httpStatus; private final String message; diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/LockerValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/LockerValidator.java index cded88f..5a98e1f 100644 --- a/BE/o2o/src/main/java/com/one/o2o/validator/LockerValidator.java +++ b/BE/o2o/src/main/java/com/one/o2o/validator/LockerValidator.java @@ -39,4 +39,10 @@ public void validateLockerId(Integer lockerId) { log.info("유효한 lockerId 확인됨: {}", lockerId); } + + public void validateTotalProductCnt(Integer productCnt, Integer totalCnt) { + if (totalCnt < productCnt) { + throw new LockerException(LockerErrorCode.TOTAL_COUNT_UNDER_PRODUCT_COUNT); + } + } } diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/ProductReportValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/ProductReportValidator.java index 60150e3..fe9a3b3 100644 --- a/BE/o2o/src/main/java/com/one/o2o/validator/ProductReportValidator.java +++ b/BE/o2o/src/main/java/com/one/o2o/validator/ProductReportValidator.java @@ -20,7 +20,7 @@ public class ProductReportValidator { /** * 이상 신고의 처리 아이디 검증 * 존재하지 않는 ID인 경우 오류를 반환 - * + * * @param id 검증할 내용 */ public void validateProductReportId(Integer id) { @@ -36,7 +36,7 @@ public void validateProductReportId(Integer id) { * * @param statusId 검증할 내용 */ - public void validateStatusId(Integer statusId) { + public void validateProductStatusId(Integer statusId) { if (ProductStatus.MISSING.getStatusId() != statusId && ProductStatus.BROKEN.getStatusId() != statusId) { throw new ProductReportException(ProductReportErrorCode.INVALID_PRODUCT_STATUS_ID); } From 967c738ecfee41ecfa6d5513af524887360cd50c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=B0=AC=EB=AF=BC?= Date: Wed, 14 Aug 2024 12:02:23 +0900 Subject: [PATCH 4/8] =?UTF-8?q?feat:=20Reserve=20Validator=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/reserve/ReserveErrorCode.java | 21 +++++++++++++++++++ .../one/o2o/validator/ReserveValidator.java | 12 +++++++++++ 2 files changed, 33 insertions(+) create mode 100644 BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveErrorCode.java create mode 100644 BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java diff --git a/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveErrorCode.java b/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveErrorCode.java new file mode 100644 index 0000000..8b0b44d --- /dev/null +++ b/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveErrorCode.java @@ -0,0 +1,21 @@ +package com.one.o2o.exception.reserve; + +import com.one.o2o.exception.ErrorCode; +import lombok.Getter; +import org.springframework.http.HttpStatus; + +@Getter +public enum ReserveErrorCode implements ErrorCode { + RESERVE_ERROR_CODE(HttpStatus.BAD_REQUEST, "에러"); + + + private final HttpStatus httpStatus; + private final Integer status; + private final String message; + + ReserveErrorCode(final HttpStatus httpStatus, final String message) { + this.httpStatus = httpStatus; + this.status = httpStatus.value(); + this.message = message; + } +} diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java new file mode 100644 index 0000000..03626f3 --- /dev/null +++ b/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java @@ -0,0 +1,12 @@ +package com.one.o2o.validator; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +@RequiredArgsConstructor +public class ReserveValidator { + +} From ab99e18d9de2ac90f14578c250e01507319f8c97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=B0=AC=EB=AF=BC?= Date: Wed, 14 Aug 2024 12:22:44 +0900 Subject: [PATCH 5/8] =?UTF-8?q?feat:=20=EC=98=88=EC=95=BD=20validator=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../o2o/exception/locker/LockerErrorCode.java | 3 +- .../exception/reserve/ReserveErrorCode.java | 3 +- .../exception/reserve/ReserveException.java | 12 +++++++- .../one/o2o/validator/LockerValidator.java | 10 ++++++- .../one/o2o/validator/ReserveValidator.java | 30 +++++++++++++++++++ 5 files changed, 54 insertions(+), 4 deletions(-) diff --git a/BE/o2o/src/main/java/com/one/o2o/exception/locker/LockerErrorCode.java b/BE/o2o/src/main/java/com/one/o2o/exception/locker/LockerErrorCode.java index ec45170..2b08468 100644 --- a/BE/o2o/src/main/java/com/one/o2o/exception/locker/LockerErrorCode.java +++ b/BE/o2o/src/main/java/com/one/o2o/exception/locker/LockerErrorCode.java @@ -9,7 +9,8 @@ public enum LockerErrorCode implements ErrorCode { LOCKER_ID_INVALID(HttpStatus.BAD_REQUEST, "잘못된 locker ID입니다."), LOCKER_ID_NEGATIVE(HttpStatus.BAD_REQUEST, "locker ID의 값은 1이상의 수입니다."), LOCKER_NOT_FOUND(HttpStatus.NOT_FOUND, "존재하지 않는 locker ID입니다."), - TOTAL_COUNT_UNDER_PRODUCT_COUNT(HttpStatus.BAD_REQUEST, "올바르지 않은 물품 개수 입력입니다."); + TOTAL_COUNT_UNDER_PRODUCT_COUNT(HttpStatus.BAD_REQUEST, "올바르지 않은 물품 개수 입력입니다."), + PRODUCT_NOT_USABLE(HttpStatus.BAD_REQUEST, "제품을 대여 및 예약할 수 없습니다."); private final HttpStatus httpStatus; private final String message; diff --git a/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveErrorCode.java b/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveErrorCode.java index 8b0b44d..2121fe1 100644 --- a/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveErrorCode.java +++ b/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveErrorCode.java @@ -6,7 +6,8 @@ @Getter public enum ReserveErrorCode implements ErrorCode { - RESERVE_ERROR_CODE(HttpStatus.BAD_REQUEST, "에러"); + RESERVE_ID_NOT_FOUND(HttpStatus.BAD_REQUEST, "예약 기록을 찾을 수 없습니다."), + RESERVE_TIME_INVALID(HttpStatus.BAD_REQUEST, "예약 시간이 유효하지 않습니다."); private final HttpStatus httpStatus; diff --git a/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveException.java b/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveException.java index 6ead06a..5671aa1 100644 --- a/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveException.java +++ b/BE/o2o/src/main/java/com/one/o2o/exception/reserve/ReserveException.java @@ -1,8 +1,18 @@ package com.one.o2o.exception.reserve; import com.one.o2o.exception.GeneralException; +import lombok.Getter; + +@Getter +public class ReserveException extends RuntimeException { + + private final ReserveErrorCode errorCode; + + public ReserveException(ReserveErrorCode errorCode) { + super(errorCode.getMessage()); + this.errorCode = errorCode; + } -public class ReserveException { public static class ReserveNotFoundException extends GeneralException { public ReserveNotFoundException(){ super("예약 내역을 찾을 수 없습니다."); diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/LockerValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/LockerValidator.java index 5a98e1f..d5e3f46 100644 --- a/BE/o2o/src/main/java/com/one/o2o/validator/LockerValidator.java +++ b/BE/o2o/src/main/java/com/one/o2o/validator/LockerValidator.java @@ -36,11 +36,19 @@ public void validateLockerId(Integer lockerId) { log.error("존재하지 않는 lockerId: {}", lockerId); throw new LockerException(LockerErrorCode.LOCKER_NOT_FOUND); } - log.info("유효한 lockerId 확인됨: {}", lockerId); } + /** + * locker 물품 등록 시, 물품의 개수를 검증 + * 총 개수가 보다 물품 개수가 많은 경우 오류를 반환 + * + * @param productCnt + * @param totalCnt + */ public void validateTotalProductCnt(Integer productCnt, Integer totalCnt) { + log.info("productCnt = {}", productCnt); + log.info("totalCnt = {}", totalCnt); if (totalCnt < productCnt) { throw new LockerException(LockerErrorCode.TOTAL_COUNT_UNDER_PRODUCT_COUNT); } diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java index 03626f3..b9aae17 100644 --- a/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java +++ b/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java @@ -1,12 +1,42 @@ package com.one.o2o.validator; +import com.one.o2o.exception.reserve.ReserveErrorCode; +import com.one.o2o.exception.reserve.ReserveException; +import com.one.o2o.repository.ReserveRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import java.time.LocalDateTime; + @Slf4j @Component @RequiredArgsConstructor public class ReserveValidator { + private final ReserveRepository reserveRepository; + + /** + * 예약 기록이 존재하는지 검증 + * 예약 기록이 DB에 없는 경웅 오류를 반환 + * + * @param reserveId 검증할 예약 ID + */ + public void validateReserveId(Integer reserveId) { + if (!reserveRepository.existsById(reserveId)) { + throw new ReserveException(ReserveErrorCode.RESERVE_ID_NOT_FOUND); + } + } + + /** + * 예약한 수령 시간이 유효한지 검증 + * 예약한 수령 시간이 현재 시간보다 작은 경우 오류를 반환 + * + * @param reserveTime 검증할 예약 수령 시간 + */ + public void validateReserveDate(LocalDateTime reserveTime) { + if (reserveTime.isBefore(LocalDateTime.now())) { + throw new ReserveException(ReserveErrorCode.RESERVE_TIME_INVALID); + } + } } From 8db07058cecd9d04a6c01573540c136fefe93891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=B0=AC=EB=AF=BC?= Date: Wed, 14 Aug 2024 12:29:30 +0900 Subject: [PATCH 6/8] =?UTF-8?q?fix:=20ReserveValidator=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/one/o2o/validator/ReserveValidator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java index b9aae17..b489338 100644 --- a/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java +++ b/BE/o2o/src/main/java/com/one/o2o/validator/ReserveValidator.java @@ -18,7 +18,7 @@ public class ReserveValidator { /** * 예약 기록이 존재하는지 검증 - * 예약 기록이 DB에 없는 경웅 오류를 반환 + * 예약 기록이 DB에 없는 경우 오류를 반환 * * @param reserveId 검증할 예약 ID */ From 2661c2ab585ac40870626e82f76b53f94bfe9601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=B0=AC=EB=AF=BC?= Date: Wed, 14 Aug 2024 12:46:53 +0900 Subject: [PATCH 7/8] =?UTF-8?q?fix:=20RentValidator=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../one/o2o/exception/rent/RentErrorCode.java | 20 +++++++++++++++++++ .../com/one/o2o/validator/RentValidator.java | 5 +++++ 2 files changed, 25 insertions(+) create mode 100644 BE/o2o/src/main/java/com/one/o2o/exception/rent/RentErrorCode.java create mode 100644 BE/o2o/src/main/java/com/one/o2o/validator/RentValidator.java diff --git a/BE/o2o/src/main/java/com/one/o2o/exception/rent/RentErrorCode.java b/BE/o2o/src/main/java/com/one/o2o/exception/rent/RentErrorCode.java new file mode 100644 index 0000000..3fcf957 --- /dev/null +++ b/BE/o2o/src/main/java/com/one/o2o/exception/rent/RentErrorCode.java @@ -0,0 +1,20 @@ +package com.one.o2o.exception.rent; + +import com.one.o2o.exception.ErrorCode; +import lombok.Getter; +import org.springframework.http.HttpStatus; + +@Getter +public enum RentErrorCode implements ErrorCode { + RENT_ERROR_CODE(HttpStatus.BAD_REQUEST, "얼"); + + private final HttpStatus httpStatus; + private final String message; + private final Integer status; + + RentErrorCode(final HttpStatus httpStatus, final String message) { + this.httpStatus = httpStatus; + this.status = httpStatus.value(); + this.message = message; + } +} diff --git a/BE/o2o/src/main/java/com/one/o2o/validator/RentValidator.java b/BE/o2o/src/main/java/com/one/o2o/validator/RentValidator.java new file mode 100644 index 0000000..805b839 --- /dev/null +++ b/BE/o2o/src/main/java/com/one/o2o/validator/RentValidator.java @@ -0,0 +1,5 @@ +package com.one.o2o.validator; + +public class RentValidator { + +} From 3bc4c17f367a93a7376d8fa28a608aba810124b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=B0=AC=EB=AF=BC?= Date: Wed, 14 Aug 2024 12:57:13 +0900 Subject: [PATCH 8/8] =?UTF-8?q?fix:=20handler=20rent,=20reserve=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../o2o/exception/GlobalExceptionHandler.java | 20 +++++++++++++++++++ .../one/o2o/exception/rent/RentException.java | 13 +++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/BE/o2o/src/main/java/com/one/o2o/exception/GlobalExceptionHandler.java b/BE/o2o/src/main/java/com/one/o2o/exception/GlobalExceptionHandler.java index 347ee2a..9a06d1b 100644 --- a/BE/o2o/src/main/java/com/one/o2o/exception/GlobalExceptionHandler.java +++ b/BE/o2o/src/main/java/com/one/o2o/exception/GlobalExceptionHandler.java @@ -5,6 +5,8 @@ import com.one.o2o.exception.products.ProductException; import com.one.o2o.exception.products.report.ProductReportException; import com.one.o2o.exception.products.request.ProductRequestException; +import com.one.o2o.exception.rent.RentException; +import com.one.o2o.exception.reserve.ReserveException; import com.one.o2o.exception.user.UserException; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ControllerAdvice; @@ -66,4 +68,22 @@ public ResponseEntity handleProductRequestExceptionException(Prod ); return new ResponseEntity<>(errorResponse, e.getErrorCode().getHttpStatus()); } + + @ExceptionHandler(RentException.class) + public ResponseEntity handleRentException(RentException e) { + ErrorResponse errorResponse = ErrorResponse.of( + e.getErrorCode(), + e.getMessage() + ); + return new ResponseEntity<>(errorResponse, e.getErrorCode().getHttpStatus()); + } + + @ExceptionHandler(ReserveException.class) + public ResponseEntity handleReserveException(ReserveException e) { + ErrorResponse errorResponse = ErrorResponse.of( + e.getErrorCode(), + e.getMessage() + ); + return new ResponseEntity<>(errorResponse, e.getErrorCode().getHttpStatus()); + } } diff --git a/BE/o2o/src/main/java/com/one/o2o/exception/rent/RentException.java b/BE/o2o/src/main/java/com/one/o2o/exception/rent/RentException.java index 56944b9..abea902 100644 --- a/BE/o2o/src/main/java/com/one/o2o/exception/rent/RentException.java +++ b/BE/o2o/src/main/java/com/one/o2o/exception/rent/RentException.java @@ -1,8 +1,19 @@ package com.one.o2o.exception.rent; import com.one.o2o.exception.GeneralException; +import lombok.Getter; + +@Getter +public class RentException extends RuntimeException { + + private final RentErrorCode errorCode; + + public RentException(RentErrorCode errorCode) { + super(errorCode.getMessage()); + this.errorCode = errorCode; + } + -public class RentException { public static class RentNotFoundException extends GeneralException { public RentNotFoundException(){ super("대여 내역을 찾을 수 없습니다.");