From a127e302ac213e548f4da46c9bbfb8e6b2d989b5 Mon Sep 17 00:00:00 2001 From: kseysh Date: Sat, 16 Mar 2024 16:01:54 +0900 Subject: [PATCH] =?UTF-8?q?refactor=20-=20#111=20=20UserError,=20UserExcep?= =?UTF-8?q?tion,=20UserSuccess=20=EB=B6=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmh/domain/auth/exception/AuthError.java | 4 +-- .../domain/auth/exception/AuthSuccess.java | 4 --- .../users/controller/UserController.java | 18 +++++----- .../users/domain/exception/UserError.java | 31 +++++++++++++++++ .../users/domain/exception/UserException.java | 10 ++++++ .../users/domain/exception/UserSuccess.java | 34 +++++++++++++++++++ .../users/repository/UserRepository.java | 6 ++-- .../org/hmh/global/auth/jwt/TokenService.java | 6 ++-- 8 files changed, 92 insertions(+), 21 deletions(-) create mode 100644 src/main/java/sopt/org/hmh/domain/users/domain/exception/UserError.java create mode 100644 src/main/java/sopt/org/hmh/domain/users/domain/exception/UserException.java create mode 100644 src/main/java/sopt/org/hmh/domain/users/domain/exception/UserSuccess.java diff --git a/src/main/java/sopt/org/hmh/domain/auth/exception/AuthError.java b/src/main/java/sopt/org/hmh/domain/auth/exception/AuthError.java index 2c8fe362..2b80ff6b 100644 --- a/src/main/java/sopt/org/hmh/domain/auth/exception/AuthError.java +++ b/src/main/java/sopt/org/hmh/domain/auth/exception/AuthError.java @@ -13,9 +13,7 @@ public enum AuthError implements ErrorBase { // 403 FORBIDDEN NOT_SIGNUP_USER(HttpStatus.FORBIDDEN, "회원가입된 유저가 아닙니다. 회원가입을 진행해주세요."), - - // 404 NOT FOUND - NOT_FOUND_USER(HttpStatus.NOT_FOUND, "유저를 찾을 수 없습니다."); + ; private final HttpStatus status; private final String errorMessage; diff --git a/src/main/java/sopt/org/hmh/domain/auth/exception/AuthSuccess.java b/src/main/java/sopt/org/hmh/domain/auth/exception/AuthSuccess.java index 91514b65..e382ef95 100644 --- a/src/main/java/sopt/org/hmh/domain/auth/exception/AuthSuccess.java +++ b/src/main/java/sopt/org/hmh/domain/auth/exception/AuthSuccess.java @@ -10,10 +10,6 @@ public enum AuthSuccess implements SuccessBase { // 200 OK LOGIN_SUCCESS(HttpStatus.OK, "로그인에 성공했습니다."), REISSUE_SUCCESS(HttpStatus.OK, "토큰 재발급에 성공했습니다."), - LOGOUT_SUCCESS(HttpStatus.OK, "로그아웃에 성공했습니다."), - GET_USER_INFO_SUCCESS(HttpStatus.OK, "유저의 정보를 불러오는데에 성공했습니다."), - GET_USER_POINT_SUCCESS(HttpStatus.OK, "유저의 포인트 정보를 불러오는데에 성공했습니다."), - WITHDRAW_SUCCESS(HttpStatus.OK, "회원 탈퇴를 성공하였습니다."), GET_SOCIAL_ACCESS_TOKEN_SUCCESS(HttpStatus.OK, "소셜 액세스 토큰 발급을 성공했습니다."), // 201 CREATED diff --git a/src/main/java/sopt/org/hmh/domain/users/controller/UserController.java b/src/main/java/sopt/org/hmh/domain/users/controller/UserController.java index 95081da2..478f267c 100644 --- a/src/main/java/sopt/org/hmh/domain/users/controller/UserController.java +++ b/src/main/java/sopt/org/hmh/domain/users/controller/UserController.java @@ -7,7 +7,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import sopt.org.hmh.domain.auth.exception.AuthSuccess; +import sopt.org.hmh.domain.users.domain.exception.UserSuccess; import sopt.org.hmh.domain.users.service.UserService; import sopt.org.hmh.global.auth.UserId; import sopt.org.hmh.global.common.response.BaseResponse; @@ -25,32 +25,32 @@ public class UserController implements UserApi{ public ResponseEntity> orderLogout(@UserId final Long userId) { userService.logout(userId); return ResponseEntity - .status(AuthSuccess.LOGOUT_SUCCESS.getHttpStatus()) - .body(BaseResponse.success(AuthSuccess.LOGOUT_SUCCESS, new EmptyJsonResponse())); + .status(UserSuccess.LOGOUT_SUCCESS.getHttpStatus()) + .body(BaseResponse.success(UserSuccess.LOGOUT_SUCCESS, new EmptyJsonResponse())); } @GetMapping @Override public ResponseEntity> orderGetUserInfo(@UserId final Long userId) { return ResponseEntity - .status(AuthSuccess.GET_USER_INFO_SUCCESS.getHttpStatus()) - .body(BaseResponse.success(AuthSuccess.GET_USER_INFO_SUCCESS, userService.getUserInfo(userId))); + .status(UserSuccess.GET_USER_INFO_SUCCESS.getHttpStatus()) + .body(BaseResponse.success(UserSuccess.GET_USER_INFO_SUCCESS, userService.getUserInfo(userId))); } @GetMapping("/point") @Override public ResponseEntity> orderGetUserPoint(@UserId final Long userId) { return ResponseEntity - .status(AuthSuccess.GET_USER_POINT_SUCCESS.getHttpStatus()) - .body(BaseResponse.success(AuthSuccess.GET_USER_POINT_SUCCESS, userService.getUserInfo(userId).point())); + .status(UserSuccess.GET_USER_POINT_SUCCESS.getHttpStatus()) + .body(BaseResponse.success(UserSuccess.GET_USER_POINT_SUCCESS, userService.getUserInfo(userId).point())); } @DeleteMapping public ResponseEntity> orderWithdraw(@UserId final Long userId) { userService.withdraw(userId); return ResponseEntity - .status(AuthSuccess.WITHDRAW_SUCCESS.getHttpStatus()) - .body(BaseResponse.success(AuthSuccess.WITHDRAW_SUCCESS, new EmptyJsonResponse())); + .status(UserSuccess.WITHDRAW_SUCCESS.getHttpStatus()) + .body(BaseResponse.success(UserSuccess.WITHDRAW_SUCCESS, new EmptyJsonResponse())); } } diff --git a/src/main/java/sopt/org/hmh/domain/users/domain/exception/UserError.java b/src/main/java/sopt/org/hmh/domain/users/domain/exception/UserError.java new file mode 100644 index 00000000..5978b116 --- /dev/null +++ b/src/main/java/sopt/org/hmh/domain/users/domain/exception/UserError.java @@ -0,0 +1,31 @@ +package sopt.org.hmh.domain.users.domain.exception; + +import lombok.AllArgsConstructor; +import org.springframework.http.HttpStatus; +import sopt.org.hmh.global.common.exception.base.ErrorBase; + +@AllArgsConstructor +public enum UserError implements ErrorBase { + + // 404 NOT FOUND + NOT_FOUND_USER(HttpStatus.NOT_FOUND, "유저를 찾을 수 없습니다."), + ; + + private final HttpStatus status; + private final String errorMessage; + + @Override + public int getHttpStatusCode() { + return this.status.value(); + } + + @Override + public HttpStatus getHttpStatus() { + return this.status; + } + + @Override + public String getErrorMessage() { + return this.errorMessage; + } +} \ No newline at end of file diff --git a/src/main/java/sopt/org/hmh/domain/users/domain/exception/UserException.java b/src/main/java/sopt/org/hmh/domain/users/domain/exception/UserException.java new file mode 100644 index 00000000..176f0832 --- /dev/null +++ b/src/main/java/sopt/org/hmh/domain/users/domain/exception/UserException.java @@ -0,0 +1,10 @@ +package sopt.org.hmh.domain.users.domain.exception; + +import sopt.org.hmh.global.common.exception.base.ExceptionBase; + +public class UserException extends ExceptionBase { + + public UserException(UserError errorBase) { + super(errorBase); + } +} diff --git a/src/main/java/sopt/org/hmh/domain/users/domain/exception/UserSuccess.java b/src/main/java/sopt/org/hmh/domain/users/domain/exception/UserSuccess.java new file mode 100644 index 00000000..a8cf03bb --- /dev/null +++ b/src/main/java/sopt/org/hmh/domain/users/domain/exception/UserSuccess.java @@ -0,0 +1,34 @@ +package sopt.org.hmh.domain.users.domain.exception; + +import lombok.AllArgsConstructor; +import org.springframework.http.HttpStatus; +import sopt.org.hmh.global.common.exception.base.SuccessBase; + +@AllArgsConstructor +public enum UserSuccess implements SuccessBase { + + // 200 OK + GET_USER_INFO_SUCCESS(HttpStatus.OK, "유저의 정보를 불러오는데에 성공했습니다."), + GET_USER_POINT_SUCCESS(HttpStatus.OK, "유저의 포인트 정보를 불러오는데에 성공했습니다."), + LOGOUT_SUCCESS(HttpStatus.OK, "로그아웃에 성공했습니다."), + WITHDRAW_SUCCESS(HttpStatus.OK, "회원 탈퇴를 성공하였습니다."), + ; + + private final HttpStatus status; + private final String successMessage; + + @Override + public int getHttpStatusCode() { + return this.status.value(); + } + + @Override + public HttpStatus getHttpStatus() { + return this.status; + } + + @Override + public String getSuccessMessage() { + return this.successMessage; + } +} diff --git a/src/main/java/sopt/org/hmh/domain/users/repository/UserRepository.java b/src/main/java/sopt/org/hmh/domain/users/repository/UserRepository.java index 6be12b18..64db18da 100644 --- a/src/main/java/sopt/org/hmh/domain/users/repository/UserRepository.java +++ b/src/main/java/sopt/org/hmh/domain/users/repository/UserRepository.java @@ -9,6 +9,8 @@ import sopt.org.hmh.domain.users.domain.User; import sopt.org.hmh.domain.auth.exception.AuthError; import sopt.org.hmh.domain.auth.exception.AuthException; +import sopt.org.hmh.domain.users.domain.exception.UserError; +import sopt.org.hmh.domain.users.domain.exception.UserException; import sopt.org.hmh.global.auth.social.SocialPlatform; public interface UserRepository extends JpaRepository { @@ -19,8 +21,8 @@ default User findBySocialPlatformAndSocialIdOrThrowException(SocialPlatform soci } default User findByIdOrThrowException(Long userId) { - return findById(userId).orElseThrow(() -> new AuthException( - AuthError.NOT_FOUND_USER)); + return findById(userId).orElseThrow(() -> new UserException( + UserError.NOT_FOUND_USER)); } @Query("SELECT u.id FROM User u WHERE u.deletedAt < :now AND u.isDeleted = true") diff --git a/src/main/java/sopt/org/hmh/global/auth/jwt/TokenService.java b/src/main/java/sopt/org/hmh/global/auth/jwt/TokenService.java index a2a86644..66292c1e 100644 --- a/src/main/java/sopt/org/hmh/global/auth/jwt/TokenService.java +++ b/src/main/java/sopt/org/hmh/global/auth/jwt/TokenService.java @@ -18,9 +18,9 @@ public class TokenService { @Transactional public ReissueResponse reissueToken(String refreshToken) { - refreshToken = parseTokenString(refreshToken); - Long userId = jwtProvider.getSubject(refreshToken); - jwtValidator.validateRefreshToken(refreshToken); + String parsedRefreshToken = parseTokenString(refreshToken); + Long userId = jwtProvider.getSubject(parsedRefreshToken); + jwtValidator.validateRefreshToken(parsedRefreshToken); redisManagerService.deleteRefreshToken(userId); return ReissueResponse.of(jwtProvider.issueToken(userId)); }