From df4abbed33119bebbe615fdea72c1d1b51230091 Mon Sep 17 00:00:00 2001 From: lemone Date: Wed, 30 Oct 2024 11:32:03 +0900 Subject: [PATCH 1/3] =?UTF-8?q?refactor:=20=EC=A4=84=EB=B0=94=EA=BF=88=20?= =?UTF-8?q?=EC=BB=A8=EB=B2=A4=EC=85=98=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coduo/retrospect/controller/RetrospectController.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/site/coduo/retrospect/controller/RetrospectController.java b/backend/src/main/java/site/coduo/retrospect/controller/RetrospectController.java index 008339f26..7cebcbf33 100644 --- a/backend/src/main/java/site/coduo/retrospect/controller/RetrospectController.java +++ b/backend/src/main/java/site/coduo/retrospect/controller/RetrospectController.java @@ -39,7 +39,8 @@ public ResponseEntity createRetrospect( @GetMapping("/retrospects") public ResponseEntity findRetrospects( - @CookieValue(SIGN_IN_COOKIE_NAME) final String credentialToken) { + @CookieValue(SIGN_IN_COOKIE_NAME) final String credentialToken + ) { final FindRetrospectsResponse response = retrospectService.findAllRetrospectsByMember(credentialToken); return ResponseEntity.ok(response); } @@ -47,7 +48,8 @@ public ResponseEntity findRetrospects( @GetMapping("/retrospects/{accessCode}") public ResponseEntity getRetrospect( @CookieValue(SIGN_IN_COOKIE_NAME) final String credentialToken, - @PathVariable("accessCode") final String accessCode) { + @PathVariable("accessCode") final String accessCode + ) { final Retrospect retrospect = retrospectService.findRetrospectByAccessCode(credentialToken, accessCode); final FindRetrospectByIdResponse response = FindRetrospectByIdResponse.from(retrospect); return ResponseEntity.ok(response); From 73d2959294e527a634b1639be5d637c939dd162c Mon Sep 17 00:00:00 2001 From: lemone Date: Wed, 30 Oct 2024 11:33:30 +0900 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20=EC=BB=A4=EC=8A=A4=ED=85=80=20e?= =?UTF-8?q?xception=20=EC=9D=B4=EB=A6=84=20=EB=B0=8F=20=EC=98=88=EC=99=B8?= =?UTF-8?q?=20=EB=A9=94=EC=84=B8=EC=A7=80=20=EA=B5=AC=EC=B2=B4=EC=A0=81?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RetrospectExceptionHandler.java | 18 ++++++++++++++++++ .../controller/error/RetrospectApiError.java | 3 ++- .../DuplicateRetrospectException.java | 8 ++++++++ .../exception/MaxRetrospectLimitException.java | 12 ------------ .../retrospect/service/RetrospectService.java | 4 ++-- .../service/RetrospectServiceTest.java | 4 ++-- 6 files changed, 32 insertions(+), 17 deletions(-) create mode 100644 backend/src/main/java/site/coduo/retrospect/exception/DuplicateRetrospectException.java delete mode 100644 backend/src/main/java/site/coduo/retrospect/exception/MaxRetrospectLimitException.java diff --git a/backend/src/main/java/site/coduo/retrospect/controller/RetrospectExceptionHandler.java b/backend/src/main/java/site/coduo/retrospect/controller/RetrospectExceptionHandler.java index d9c9d58d9..3d1fa0898 100644 --- a/backend/src/main/java/site/coduo/retrospect/controller/RetrospectExceptionHandler.java +++ b/backend/src/main/java/site/coduo/retrospect/controller/RetrospectExceptionHandler.java @@ -9,10 +9,12 @@ import lombok.extern.slf4j.Slf4j; import site.coduo.common.controller.response.ApiErrorResponse; import site.coduo.retrospect.controller.error.RetrospectApiError; +import site.coduo.retrospect.exception.DuplicateRetrospectException; import site.coduo.retrospect.exception.InvalidRetrospectContentException; import site.coduo.retrospect.exception.InvalidRetrospectInputValueException; import site.coduo.retrospect.exception.InvalidRetrospectQuestionTypeException; import site.coduo.retrospect.exception.NotRetrospectOwnerAccessException; +import site.coduo.retrospect.exception.RetrospectException; import site.coduo.retrospect.exception.RetrospectNotFoundException; @Slf4j @@ -47,6 +49,14 @@ public ResponseEntity handleInvalidRetrospectQuestionTypeExcep .body(new ApiErrorResponse(RetrospectApiError.INVALID_RETROSPECT_QUESTION_TYPE_ERROR.getMessage())); } + @ExceptionHandler(DuplicateRetrospectException.class) + public ResponseEntity handleMaxRetrospectLimitException(final DuplicateRetrospectException e) { + log.warn(e.getMessage()); + + return ResponseEntity.status(RetrospectApiError.DUPLICATE_RETROSPECT_ERROR.getHttpStatus()) + .body(new ApiErrorResponse(RetrospectApiError.DUPLICATE_RETROSPECT_ERROR.getMessage())); + } + @ExceptionHandler(NotRetrospectOwnerAccessException.class) public ResponseEntity handleNotRetrospectOwnerAccessException( final NotRetrospectOwnerAccessException e) { @@ -64,4 +74,12 @@ public ResponseEntity handleRetrospectNotFoundException( return ResponseEntity.status(RetrospectApiError.RETROSPECT_NOT_FOUND_ERROR.getHttpStatus()) .body(new ApiErrorResponse(RetrospectApiError.RETROSPECT_NOT_FOUND_ERROR.getMessage())); } + + @ExceptionHandler(RetrospectException.class) + public ResponseEntity handleRetrospectException(final RetrospectException e) { + log.warn(e.getMessage()); + + return ResponseEntity.status(RetrospectApiError.INVALID_RETROSPECT_REQUEST_ERROR.getHttpStatus()) + .body(new ApiErrorResponse(RetrospectApiError.INVALID_RETROSPECT_REQUEST_ERROR.getMessage())); + } } diff --git a/backend/src/main/java/site/coduo/retrospect/controller/error/RetrospectApiError.java b/backend/src/main/java/site/coduo/retrospect/controller/error/RetrospectApiError.java index 9fe24ab56..d7e070cfc 100644 --- a/backend/src/main/java/site/coduo/retrospect/controller/error/RetrospectApiError.java +++ b/backend/src/main/java/site/coduo/retrospect/controller/error/RetrospectApiError.java @@ -9,12 +9,13 @@ @RequiredArgsConstructor public enum RetrospectApiError { + INVALID_RETROSPECT_REQUEST_ERROR(HttpStatus.BAD_REQUEST, "유효하지 않은 회고 요청입니다."), INVALID_RETROSPECT_CONTENT_ERROR(HttpStatus.BAD_REQUEST, "잘못된 회고 내용입니다."), INVALID_RETROSPECT_QUESTION_TYPE_ERROR(HttpStatus.BAD_REQUEST, "잘못된 회고 질문 유형입니다."), INVALID_RETROSPECT_INPUT_ERROR(HttpStatus.BAD_REQUEST, "잘못된 회고 입력 값입니다."), NOT_RETROSPECT_OWNER_ACCESS_ERROR(HttpStatus.FORBIDDEN, "회고 소유자 외 접근할 수 없는 작업입니다."), RETROSPECT_NOT_FOUND_ERROR(HttpStatus.NOT_FOUND, "해당 요청의 회고가 존재하지 않습니다."), - MAX_RETROSPECT_LIMIT_REACHED_ERROR(HttpStatus.BAD_REQUEST, "회고는 최대 6개까지 추가할 수 있습니다."), + DUPLICATE_RETROSPECT_ERROR(HttpStatus.BAD_REQUEST, "이미 회고가 작성되었습니다."), ; private final HttpStatus httpStatus; diff --git a/backend/src/main/java/site/coduo/retrospect/exception/DuplicateRetrospectException.java b/backend/src/main/java/site/coduo/retrospect/exception/DuplicateRetrospectException.java new file mode 100644 index 000000000..f97a2dcf8 --- /dev/null +++ b/backend/src/main/java/site/coduo/retrospect/exception/DuplicateRetrospectException.java @@ -0,0 +1,8 @@ +package site.coduo.retrospect.exception; + +public class DuplicateRetrospectException extends RetrospectException { + + public DuplicateRetrospectException(final String message) { + super(message); + } +} diff --git a/backend/src/main/java/site/coduo/retrospect/exception/MaxRetrospectLimitException.java b/backend/src/main/java/site/coduo/retrospect/exception/MaxRetrospectLimitException.java deleted file mode 100644 index 581bcb1f8..000000000 --- a/backend/src/main/java/site/coduo/retrospect/exception/MaxRetrospectLimitException.java +++ /dev/null @@ -1,12 +0,0 @@ -package site.coduo.retrospect.exception; - -public class MaxRetrospectLimitException extends RetrospectException { - - public MaxRetrospectLimitException(final String message) { - super(message); - } - - public MaxRetrospectLimitException(final String message, final Throwable cause) { - super(message, cause); - } -} diff --git a/backend/src/main/java/site/coduo/retrospect/service/RetrospectService.java b/backend/src/main/java/site/coduo/retrospect/service/RetrospectService.java index 405ffb63d..dae98b2a0 100644 --- a/backend/src/main/java/site/coduo/retrospect/service/RetrospectService.java +++ b/backend/src/main/java/site/coduo/retrospect/service/RetrospectService.java @@ -18,7 +18,7 @@ import site.coduo.retrospect.domain.Retrospect; import site.coduo.retrospect.domain.RetrospectContent; import site.coduo.retrospect.domain.RetrospectContents; -import site.coduo.retrospect.exception.MaxRetrospectLimitException; +import site.coduo.retrospect.exception.DuplicateRetrospectException; import site.coduo.retrospect.exception.NotRetrospectOwnerAccessException; import site.coduo.retrospect.repository.RetrospectEntity; import site.coduo.retrospect.repository.RetrospectRepository; @@ -44,7 +44,7 @@ public void createRetrospect( final Member member = memberService.findMemberByCredential(credentialToken); final PairRoomMemberEntity pairRoomMember = pairRoomMemberRepository.fetchByPairRoomAndMember(pairRoom, member); if (retrospectRepository.existsRetrospectEntityByPairRoomMember(pairRoomMember)) { - throw new MaxRetrospectLimitException("회고가 이미 존재합니다."); + throw new DuplicateRetrospectException("해당 페어룸에 대한 사용자의 회고가 이미 존재합니다."); } final RetrospectContents retrospectContents = RetrospectContents.from(answers); final Retrospect retrospect = new Retrospect(retrospectContents); diff --git a/backend/src/test/java/site/coduo/retrospect/service/RetrospectServiceTest.java b/backend/src/test/java/site/coduo/retrospect/service/RetrospectServiceTest.java index dc05960ef..3e26ae1e2 100644 --- a/backend/src/test/java/site/coduo/retrospect/service/RetrospectServiceTest.java +++ b/backend/src/test/java/site/coduo/retrospect/service/RetrospectServiceTest.java @@ -31,7 +31,7 @@ import site.coduo.pairroom.repository.PairRoomRepository; import site.coduo.referencelink.repository.CategoryRepository; import site.coduo.retrospect.controller.response.FindRetrospectsResponse; -import site.coduo.retrospect.exception.MaxRetrospectLimitException; +import site.coduo.retrospect.exception.DuplicateRetrospectException; import site.coduo.retrospect.repository.RetrospectEntity; import site.coduo.retrospect.repository.RetrospectRepository; import site.coduo.timer.repository.TimerRepository; @@ -134,7 +134,7 @@ void createTwiceRetrospect() { // When && Then assertThatThrownBy( () -> retrospectService.createRetrospect(credentialToken, savedPairRoom.getAccessCode(), answers)) - .isInstanceOf(MaxRetrospectLimitException.class); + .isInstanceOf(DuplicateRetrospectException.class); } From 8de5a2ca67d0508aec316f832f62038940864f96 Mon Sep 17 00:00:00 2001 From: lemone Date: Wed, 30 Oct 2024 11:41:21 +0900 Subject: [PATCH 3/3] =?UTF-8?q?refactor:=20=EC=98=88=EC=99=B8=20=ED=95=B8?= =?UTF-8?q?=EB=93=A4=EB=9F=AC=20=EB=A9=94=EC=84=9C=EB=93=9C=EB=AA=85=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coduo/retrospect/controller/RetrospectExceptionHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/java/site/coduo/retrospect/controller/RetrospectExceptionHandler.java b/backend/src/main/java/site/coduo/retrospect/controller/RetrospectExceptionHandler.java index 3d1fa0898..4cd37f9ed 100644 --- a/backend/src/main/java/site/coduo/retrospect/controller/RetrospectExceptionHandler.java +++ b/backend/src/main/java/site/coduo/retrospect/controller/RetrospectExceptionHandler.java @@ -50,7 +50,7 @@ public ResponseEntity handleInvalidRetrospectQuestionTypeExcep } @ExceptionHandler(DuplicateRetrospectException.class) - public ResponseEntity handleMaxRetrospectLimitException(final DuplicateRetrospectException e) { + public ResponseEntity handleDuplicateRetrospectException(final DuplicateRetrospectException e) { log.warn(e.getMessage()); return ResponseEntity.status(RetrospectApiError.DUPLICATE_RETROSPECT_ERROR.getHttpStatus())