diff --git a/docker-test-server/src/main/java/com/example/server/Response/BaseResponse.java b/docker-test-server/src/main/java/com/example/server/Response/BaseResponse.java new file mode 100644 index 0000000..b5cd312 --- /dev/null +++ b/docker-test-server/src/main/java/com/example/server/Response/BaseResponse.java @@ -0,0 +1,33 @@ +package com.example.server.Response; + +import com.fasterxml.jackson.annotation.JsonInclude; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class BaseResponse { + private final int status; + private final String message; + + @JsonInclude(JsonInclude.Include.NON_NULL) + private final T data; + + + public static BaseResponse success(SuccessBase success, T data) { + return new BaseResponse<>(success.getStatus(), success.getMessage(), data); + } + + public static BaseResponse error(ErrorBase error) { + return new BaseResponse<>(error.getStatus(), error.getMessage(), null); + } + + public static BaseResponse error(ErrorBase error, T data) { + return new BaseResponse<>(error.getStatus(), error.getMessage(), data); + } + + public static BaseResponse error(ErrorBase error, Exception exception) { + return new BaseResponse<>(error.getStatus(), error.getMessage(), exception); + } +} diff --git a/docker-test-server/src/main/java/com/example/server/Response/CException.java b/docker-test-server/src/main/java/com/example/server/Response/CException.java new file mode 100644 index 0000000..6af8752 --- /dev/null +++ b/docker-test-server/src/main/java/com/example/server/Response/CException.java @@ -0,0 +1,13 @@ +package com.example.server.Response; + +import lombok.Getter; + +@Getter +public class CException extends RuntimeException { + private final ErrorBase errorBase; + + public CException(ErrorBase errorBase) { + super(errorBase.getMessage()); + this.errorBase = errorBase; + } +} diff --git a/docker-test-server/src/main/java/com/example/server/Response/CExceptionHandler.java b/docker-test-server/src/main/java/com/example/server/Response/CExceptionHandler.java new file mode 100644 index 0000000..8b66b57 --- /dev/null +++ b/docker-test-server/src/main/java/com/example/server/Response/CExceptionHandler.java @@ -0,0 +1,37 @@ +package com.example.server.Response; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@RestControllerAdvice +public class CExceptionHandler { + @ExceptionHandler(CException.class) + protected ResponseEntity handleCustomException(CException error) { + return ResponseEntity + .status(error.getErrorBase().getStatus()) + .body(error.getErrorBase()); + } + + // Null 값 처리 + @ExceptionHandler(NullPointerException.class) + public ResponseEntity> handleNullPointerException() { + BaseResponse response = BaseResponse.error(ErrorBase.NULL_VALUE); + + return ResponseEntity + .status(ErrorBase.NULL_VALUE.getStatus()) + .body(response); + } + + @ExceptionHandler(Exception.class) + protected ResponseEntity> handleException(Exception exception) { + BaseResponse response = BaseResponse.error(ErrorBase.INTERNAL_SERVER_ERROR, exception); + + return ResponseEntity + .status(ErrorBase.INTERNAL_SERVER_ERROR.getStatus()) + .body(response); + } +} diff --git a/docker-test-server/src/main/java/com/example/server/error/ErrorCode.java b/docker-test-server/src/main/java/com/example/server/Response/ErrorBase.java similarity index 85% rename from docker-test-server/src/main/java/com/example/server/error/ErrorCode.java rename to docker-test-server/src/main/java/com/example/server/Response/ErrorBase.java index c89f3a8..686760a 100644 --- a/docker-test-server/src/main/java/com/example/server/error/ErrorCode.java +++ b/docker-test-server/src/main/java/com/example/server/Response/ErrorBase.java @@ -1,14 +1,11 @@ -package com.example.server.error; +package com.example.server.Response; import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor -public enum ErrorCode { - // 200 - SUCCESS(200, "."), - +public enum ErrorBase { // 400 에러 REGISTERED_USER(400, "이미 존재하는 유저"), NULL_VALUE(400, "필수 변수에 NULL값 존재"), diff --git a/docker-test-server/src/main/java/com/example/server/Response/SuccessBase.java b/docker-test-server/src/main/java/com/example/server/Response/SuccessBase.java new file mode 100644 index 0000000..688f275 --- /dev/null +++ b/docker-test-server/src/main/java/com/example/server/Response/SuccessBase.java @@ -0,0 +1,13 @@ +package com.example.server.Response; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum SuccessBase { + SUCCESS(200, "."); + + private final int status; + private final String message; +} diff --git a/docker-test-server/src/main/java/com/example/server/controller/HomeController.java b/docker-test-server/src/main/java/com/example/server/controller/HomeController.java index ef79abc..99855aa 100644 --- a/docker-test-server/src/main/java/com/example/server/controller/HomeController.java +++ b/docker-test-server/src/main/java/com/example/server/controller/HomeController.java @@ -8,9 +8,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.example.server.error.CErrorResponse; -import com.example.server.error.CException; -import com.example.server.error.ErrorCode; +import com.example.server.Response.BaseResponse; +import com.example.server.Response.CException; +import com.example.server.Response.ErrorBase; +import com.example.server.Response.SuccessBase; import com.example.server.jwt.JwtTokenService; import com.example.server.model.User; import com.example.server.model.UserPet; @@ -37,11 +38,11 @@ public ResponseEntity home(@RequestHeader("AccessToken") String AccessToken) // 1. RefreshToken Valid? try { if(jwtTokenService.validateAccessToken(AccessToken) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } // 2. Check userId @@ -49,10 +50,10 @@ public ResponseEntity home(@RequestHeader("AccessToken") String AccessToken) try { userId = jwtTokenService.extractIdFromAccessToken(AccessToken); if(invalidTokenService.existsById(userId) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } // 3. Get Pet Information By UserId @@ -60,20 +61,16 @@ public ResponseEntity home(@RequestHeader("AccessToken") String AccessToken) try { user = homeService.getPetInformation(userId); } catch (Exception e) { - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); } if(Objects.isNull(user)) - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); UserPet userPet = new UserPet(user.getPetName(), user.getPetWeight()); return ResponseEntity - .status(ErrorCode.SUCCESS.getStatus()) - .body(CErrorResponse.builder() - .status(ErrorCode.SUCCESS.getStatus()) - .message(userPet) - .build() - ); + .status(SuccessBase.SUCCESS.getStatus()) + .body(BaseResponse.success(SuccessBase.SUCCESS, userPet)); } } \ No newline at end of file diff --git a/docker-test-server/src/main/java/com/example/server/controller/LoginController.java b/docker-test-server/src/main/java/com/example/server/controller/LoginController.java index 30d551d..dbb822c 100644 --- a/docker-test-server/src/main/java/com/example/server/controller/LoginController.java +++ b/docker-test-server/src/main/java/com/example/server/controller/LoginController.java @@ -6,9 +6,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.example.server.error.CErrorResponse; -import com.example.server.error.CException; -import com.example.server.error.ErrorCode; +import com.example.server.Response.BaseResponse; +import com.example.server.Response.CException; +import com.example.server.Response.ErrorBase; +import com.example.server.Response.SuccessBase; import com.example.server.jwt.JwtTokenService; import com.example.server.model.Token; import com.example.server.service.LoginService; @@ -35,18 +36,18 @@ public ResponseEntity login (@RequestHeader("AccessToken") String AccessToken try { userId = loginService.getUserIdByKakaoOpenApi(AccessToken); } catch(Exception e) { - throw new CException(ErrorCode.KAKAO_INVALID_TOKEN); + throw new CException(ErrorBase.KAKAO_INVALID_TOKEN); } // 2. userId로 데이터베이스 확인 // => 데이터베이스 false : 존재하지 않는 유저(회원가입) try { System.out.println(loginService.getUserIdByDatabase(userId)); if(loginService.getUserIdByDatabase(userId) == false) { - throw new CException(ErrorCode.GHOST_USER); + throw new CException(ErrorBase.GHOST_USER); } } catch(Exception e) { System.out.println("Here"); - throw new CException(ErrorCode.GHOST_USER); + throw new CException(ErrorBase.GHOST_USER); } // 3. JWT AccessToken, RefreshToken 토큰 발급 @@ -58,22 +59,18 @@ public ResponseEntity login (@RequestHeader("AccessToken") String AccessToken token.setAccessToken(accessToken); token.setRefreshToken(refreshToken); } catch(Exception e) { - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); } // 4. RefreshToken RandomID Database에 저장 try { loginService.updateRandomIdByUserId(userId, randomId); } catch(Exception e) { - throw new CException(ErrorCode.KAKAO_INVALID_TOKEN); + throw new CException(ErrorBase.KAKAO_INVALID_TOKEN); } return ResponseEntity - .status(ErrorCode.SUCCESS.getStatus()) - .body(CErrorResponse.builder() - .status(ErrorCode.SUCCESS.getStatus()) - .message(token) - .build() - ); + .status(SuccessBase.SUCCESS.getStatus()) + .body(BaseResponse.success(SuccessBase.SUCCESS, token)); } } diff --git a/docker-test-server/src/main/java/com/example/server/controller/RefreshTokenController.java b/docker-test-server/src/main/java/com/example/server/controller/RefreshTokenController.java index 19fe0ae..a171fec 100644 --- a/docker-test-server/src/main/java/com/example/server/controller/RefreshTokenController.java +++ b/docker-test-server/src/main/java/com/example/server/controller/RefreshTokenController.java @@ -6,9 +6,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.example.server.error.CErrorResponse; -import com.example.server.error.CException; -import com.example.server.error.ErrorCode; +import com.example.server.Response.BaseResponse; +import com.example.server.Response.CException; +import com.example.server.Response.ErrorBase; +import com.example.server.Response.SuccessBase; import com.example.server.jwt.JwtTokenService; import com.example.server.model.Token; import com.example.server.service.RefreshTokenService; @@ -28,10 +29,10 @@ public ResponseEntity refreshAccessToken (@RequestHeader("RefreshToken") Stri // 1. RefreshToken Valid? try { if(jwtTokenService.validateRefreshToken(RefreshToken) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } // 2. Get userId & radomId from RefreshToken @@ -41,19 +42,19 @@ public ResponseEntity refreshAccessToken (@RequestHeader("RefreshToken") Stri userId = jwtTokenService.extractIdFromRefreshToken(RefreshToken); randomId = jwtTokenService.extractRandomIdFromRefreshToken(RefreshToken); } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } if(userId == null || randomId == null) - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); // 3. Check userId & radomId try { if(refreshTokenService.checkIdAndRandomId(userId, randomId) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } // 4. JWT AccessToken, RefreshToken 토큰 발급 @@ -65,22 +66,18 @@ public ResponseEntity refreshAccessToken (@RequestHeader("RefreshToken") Stri token.setAccessToken(accessToken); token.setRefreshToken(refreshToken); } catch(Exception e) { - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); } // 5. RefreshToken RandomID Database에 수정 try { refreshTokenService.updateRandomIdByUserId(userId, new_randomId); } catch(Exception e) { - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); } return ResponseEntity - .status(ErrorCode.SUCCESS.getStatus()) - .body(CErrorResponse.builder() - .status(ErrorCode.SUCCESS.getStatus()) - .message(token) - .build() - ); + .status(SuccessBase.SUCCESS.getStatus()) + .body(BaseResponse.success(SuccessBase.SUCCESS, token)); } } diff --git a/docker-test-server/src/main/java/com/example/server/controller/RegisterController.java b/docker-test-server/src/main/java/com/example/server/controller/RegisterController.java index 6863f6c..35fdb55 100644 --- a/docker-test-server/src/main/java/com/example/server/controller/RegisterController.java +++ b/docker-test-server/src/main/java/com/example/server/controller/RegisterController.java @@ -10,9 +10,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.example.server.error.CErrorResponse; -import com.example.server.error.CException; -import com.example.server.error.ErrorCode; +import com.example.server.Response.BaseResponse; +import com.example.server.Response.CException; +import com.example.server.Response.ErrorBase; +import com.example.server.Response.SuccessBase; import com.example.server.jwt.JwtTokenService; import com.example.server.model.Token; import com.example.server.model.UserPet; @@ -41,17 +42,17 @@ public ResponseEntity register( try { userId = registerService.getUserIdByKakaoOpenApi(AccessToken); } catch(Exception e) { - throw new CException(ErrorCode.KAKAO_INVALID_TOKEN); + throw new CException(ErrorBase.KAKAO_INVALID_TOKEN); } // 2. userId로 데이터베이스 확인 // => 데이터베이스 true : 이미 존재하는 유저(Bad Request 400) try { if(registerService.getUserIdByDatabase(userId) == true) { - throw new CException(ErrorCode.REGISTERED_USER); + throw new CException(ErrorBase.REGISTERED_USER); } } catch(Exception e) { - throw new CException(ErrorCode.REGISTERED_USER); + throw new CException(ErrorBase.REGISTERED_USER); } // 3. JWT AccessToken, RefreshToken 토큰 발급 @@ -63,22 +64,18 @@ public ResponseEntity register( token.setAccessToken(accessToken); token.setRefreshToken(refreshToken); } catch(Exception e) { - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); } // 4. 모든 정보 저장. try { registerService.createUserInfo(userId, randomId, userPet.getPetName(), userPet.getPetWeight());; } catch(Exception e) { - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); } return ResponseEntity - .status(ErrorCode.SUCCESS.getStatus()) - .body(CErrorResponse.builder() - .status(ErrorCode.SUCCESS.getStatus()) - .message(token) - .build() - ); + .status(SuccessBase.SUCCESS.getStatus()) + .body(BaseResponse.success(SuccessBase.SUCCESS, token)); } } diff --git a/docker-test-server/src/main/java/com/example/server/controller/ToothController.java b/docker-test-server/src/main/java/com/example/server/controller/ToothController.java index 088c67f..e25f8fd 100644 --- a/docker-test-server/src/main/java/com/example/server/controller/ToothController.java +++ b/docker-test-server/src/main/java/com/example/server/controller/ToothController.java @@ -6,9 +6,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.example.server.error.CErrorResponse; -import com.example.server.error.CException; -import com.example.server.error.ErrorCode; +import com.example.server.Response.BaseResponse; +import com.example.server.Response.CException; +import com.example.server.Response.ErrorBase; +import com.example.server.Response.SuccessBase; import com.example.server.jwt.JwtTokenService; import com.example.server.service.InvalidTokenService; @@ -26,10 +27,10 @@ public ResponseEntity mypageGetinfo(@RequestHeader("AccessToken") String Acce // 1. RefreshToken Valid? try { if(jwtTokenService.validateAccessToken(AccessToken) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } // 2. Check userId @@ -37,21 +38,17 @@ public ResponseEntity mypageGetinfo(@RequestHeader("AccessToken") String Acce try { userId = jwtTokenService.extractIdFromAccessToken(AccessToken); if(invalidTokenService.existsById(userId) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } // 3. Create New Data return ResponseEntity - .status(ErrorCode.SUCCESS.getStatus()) - .body(CErrorResponse.builder() - .status(ErrorCode.SUCCESS.getStatus()) - .message(".") - .build() - ); + .status(SuccessBase.SUCCESS.getStatus()) + .body(BaseResponse.success(SuccessBase.SUCCESS, ".")); } } diff --git a/docker-test-server/src/main/java/com/example/server/controller/UserController.java b/docker-test-server/src/main/java/com/example/server/controller/UserController.java index 810ec08..9f89c42 100644 --- a/docker-test-server/src/main/java/com/example/server/controller/UserController.java +++ b/docker-test-server/src/main/java/com/example/server/controller/UserController.java @@ -12,9 +12,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.example.server.error.CErrorResponse; -import com.example.server.error.CException; -import com.example.server.error.ErrorCode; +import com.example.server.Response.BaseResponse; +import com.example.server.Response.CException; +import com.example.server.Response.ErrorBase; +import com.example.server.Response.SuccessBase; import com.example.server.jwt.JwtTokenService; import com.example.server.model.User; import com.example.server.model.UserPet; @@ -45,10 +46,10 @@ public ResponseEntity mypageGetinfo(@RequestHeader("AccessToken") String Acce // 1. RefreshToken Valid? try { if(jwtTokenService.validateAccessToken(AccessToken) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } // 2. Check userId @@ -56,10 +57,10 @@ public ResponseEntity mypageGetinfo(@RequestHeader("AccessToken") String Acce try { userId = jwtTokenService.extractIdFromAccessToken(AccessToken); if(invalidTokenService.existsById(userId) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } // 3. Get Pet Information By UserId @@ -67,21 +68,17 @@ public ResponseEntity mypageGetinfo(@RequestHeader("AccessToken") String Acce try { user = userService.getPetInformation(userId); } catch (Exception e) { - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); } if(Objects.isNull(user)) - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); UserPet userPet = new UserPet(user.getPetName(), user.getPetWeight()); return ResponseEntity - .status(ErrorCode.SUCCESS.getStatus()) - .body(CErrorResponse.builder() - .status(ErrorCode.SUCCESS.getStatus()) - .message(userPet) - .build() - ); + .status(SuccessBase.SUCCESS.getStatus()) + .body(BaseResponse.success(SuccessBase.SUCCESS, userPet)); } // 마이페이지 수정 @@ -96,10 +93,10 @@ public ResponseEntity mypageGetinfo( // 1. RefreshToken Valid? try { if(jwtTokenService.validateAccessToken(AccessToken) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } // 2. Check userId @@ -107,24 +104,20 @@ public ResponseEntity mypageGetinfo( try { userId = jwtTokenService.extractIdFromAccessToken(AccessToken); if(invalidTokenService.existsById(userId) == false) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } } catch (Exception e) { - throw new CException(ErrorCode.INVALID_TOKEN); + throw new CException(ErrorBase.INVALID_TOKEN); } try { userService.setPetInformation(userId, userPet.getPetName(), userPet.getPetWeight()); } catch (Exception e) { - throw new CException(ErrorCode.INTERNAL_SERVER_ERROR); + throw new CException(ErrorBase.INTERNAL_SERVER_ERROR); } return ResponseEntity - .status(ErrorCode.SUCCESS.getStatus()) - .body(CErrorResponse.builder() - .status(ErrorCode.SUCCESS.getStatus()) - .message(".") - .build() - ); + .status(SuccessBase.SUCCESS.getStatus()) + .body(BaseResponse.success(SuccessBase.SUCCESS, ".")); } } \ No newline at end of file diff --git a/docker-test-server/src/main/java/com/example/server/error/CErrorResponse.java b/docker-test-server/src/main/java/com/example/server/error/CErrorResponse.java deleted file mode 100644 index c1fbb84..0000000 --- a/docker-test-server/src/main/java/com/example/server/error/CErrorResponse.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.example.server.error; - -import org.springframework.http.ResponseEntity; - -import lombok.Builder; -import lombok.Getter; - -@Getter -@Builder -public class CErrorResponse { - private final int status; - private final Object message; - - public static ResponseEntity toResponseEntity(ErrorCode errorCode) { - return ResponseEntity - .status(errorCode.getStatus()) - .body(CErrorResponse.builder() - .status(errorCode.getStatus()) - .message(errorCode.getMessage()) - .build() - ); - } -} diff --git a/docker-test-server/src/main/java/com/example/server/error/CException.java b/docker-test-server/src/main/java/com/example/server/error/CException.java deleted file mode 100644 index 479e4ef..0000000 --- a/docker-test-server/src/main/java/com/example/server/error/CException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.server.error; - -import lombok.Getter; - -@Getter -public class CException extends RuntimeException { - private final ErrorCode errorCode; - - public CException(ErrorCode errorCode) { - super(errorCode.getMessage()); - this.errorCode = errorCode; - } -} diff --git a/docker-test-server/src/main/java/com/example/server/error/CExceptionHandler.java b/docker-test-server/src/main/java/com/example/server/error/CExceptionHandler.java deleted file mode 100644 index a883f2b..0000000 --- a/docker-test-server/src/main/java/com/example/server/error/CExceptionHandler.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.example.server.error; - -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RestControllerAdvice; - -import lombok.extern.slf4j.Slf4j; - -@Slf4j -@RestControllerAdvice -public class CExceptionHandler { - @ExceptionHandler(CException.class) - protected ResponseEntity handleCustomException(CException e) { - log.error("CustomException: {}", e.getErrorCode()); - return CErrorResponse.toResponseEntity(e.getErrorCode()); - } - - // Null 값 처리 - @ExceptionHandler(NullPointerException.class) - public ResponseEntity handleNullPointerException( - NullPointerException ex) { - - CErrorResponse response = CErrorResponse.builder() - .status(HttpStatus.BAD_REQUEST.value()) - .message("Required value is null") - .build(); - - return ResponseEntity - .status(HttpStatus.BAD_REQUEST) - .body(response); - } - - @ExceptionHandler(Exception.class) - protected ResponseEntity handleException(Exception e) { - log.error("HandleException: {}", e.getMessage()); - return CErrorResponse.toResponseEntity(ErrorCode.INTERNAL_SERVER_ERROR); - } -}