From d4b7e9d2cd0516a5d87cb5463a1a4a0105b0142f Mon Sep 17 00:00:00 2001 From: jsy3831 Date: Mon, 27 Sep 2021 14:39:41 +0900 Subject: [PATCH] =?UTF-8?q?#2=20=EC=BD=94=EB=93=9C=EB=A6=AC=EB=B7=B0?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../photobook/controller/UserController.java | 12 +++--- .../controller/response/Response.java | 25 +++-------- src/main/java/com/photobook/dto/UserDto.java | 14 +++--- .../exception/ExceptionController.java | 43 +++++++------------ .../photobook/utils/PasswordEncoderTest.java | 33 -------------- 5 files changed, 35 insertions(+), 92 deletions(-) delete mode 100644 src/test/java/com/photobook/utils/PasswordEncoderTest.java diff --git a/src/main/java/com/photobook/controller/UserController.java b/src/main/java/com/photobook/controller/UserController.java index 57162ed..0055a52 100644 --- a/src/main/java/com/photobook/controller/UserController.java +++ b/src/main/java/com/photobook/controller/UserController.java @@ -49,7 +49,7 @@ public Response login(@RequestParam @NotBlank String id, @RequestParam loginService.setLoginUserInfo(userInfo); - return Response.toResponse(200, "로그인 하였습니다.", userInfo); + return new Response("로그인 하였습니다.", userInfo); } @PostMapping("/logout") @@ -58,7 +58,7 @@ public Response logout() { loginService.removeLoginUserInfo(); - return Response.toResponse(200, "로그아웃 하였습니다."); + return new Response("로그아웃 하였습니다."); } @GetMapping("/my-info") @@ -67,7 +67,7 @@ public Response getUserInfoById(@LoginUser UserDto loginUser) { UserDto userInfo = userService.getUserInfoById(loginUser.getId()); - return Response.toResponse(200, "회원정보 조회", userInfo); + return new Response("회원정보 조회", userInfo); } @PostMapping("/signup") @@ -76,7 +76,7 @@ public Response signup(@RequestBody @Valid UserDto userInfo) { userService.createUser(userInfo); - return Response.toResponse(201, "회원가입 하였습니다."); + return new Response("회원가입 하였습니다."); } @GetMapping("/{id}") @@ -84,7 +84,7 @@ public Response checkUserId(@PathVariable @NotBlank String id) { userService.validateUserId(id); - return Response.toResponse(200, "사용가능한 아이디입니다."); + return new Response("사용가능한 아이디입니다."); } @DeleteMapping("/my-info") @@ -95,7 +95,7 @@ public Response deleteUser(@LoginUser UserDto loginUser) { loginService.removeLoginUserInfo(); - return Response.toResponse(200, "회원탈퇴 하였습니다."); + return new Response("회원탈퇴 하였습니다."); } } \ No newline at end of file diff --git a/src/main/java/com/photobook/controller/response/Response.java b/src/main/java/com/photobook/controller/response/Response.java index f907597..ea3b6ef 100644 --- a/src/main/java/com/photobook/controller/response/Response.java +++ b/src/main/java/com/photobook/controller/response/Response.java @@ -2,7 +2,6 @@ import java.time.LocalDateTime; -import lombok.Builder; import lombok.Getter; @Getter @@ -10,28 +9,16 @@ public class Response { private final LocalDateTime timestamp = LocalDateTime.now(); - private final int code; + private String message; - private final String message; + private T body; - private final T body; - - @Builder - Response(final int code, final String message, final T body) { - this.code = code; + public Response(String message) { this.message = message; - this.body = body; - } - - public static Response toResponse(int code, String message) { - return toResponse(code, message, null); } - public static Response toResponse(int code, String message, T body) { - return Response.builder() - .code(code) - .message(message) - .body(body) - .build(); + public Response(String message, T body) { + this.message = message; + this.body = body; } } diff --git a/src/main/java/com/photobook/dto/UserDto.java b/src/main/java/com/photobook/dto/UserDto.java index 3e3a5d8..8156ce9 100644 --- a/src/main/java/com/photobook/dto/UserDto.java +++ b/src/main/java/com/photobook/dto/UserDto.java @@ -19,21 +19,21 @@ public class UserDto implements Serializable { private int userId; - @NotBlank + @NotBlank(message = "아이디를 입력하세요.") private String id; - @NotBlank + @NotBlank(message = "비밀번호를 입력하세요.") private String password; - @NotBlank + @NotBlank(message = "이름을 입력하세요.") private String name; - @NotBlank - @Email + @NotBlank(message = "이메일을 입력하세요.") + @Email(message = "이메일 형식이 올바르지 않습니다.") private String email; - @NotNull - @Past + @NotNull(message = "생년월일을 입력하세요.") + @Past(message = "날짜가 올바르지 않습니다.") private LocalDate birth; private String profileImageName; diff --git a/src/main/java/com/photobook/exception/ExceptionController.java b/src/main/java/com/photobook/exception/ExceptionController.java index 1838be5..192ed21 100644 --- a/src/main/java/com/photobook/exception/ExceptionController.java +++ b/src/main/java/com/photobook/exception/ExceptionController.java @@ -24,67 +24,56 @@ @RestControllerAdvice public class ExceptionController { - private static ExceptionType exceptionType(Exception e) { - return new ExceptionType(e.getClass().getSimpleName()); - } - @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.BAD_REQUEST) - public Response handleException(Exception e) { + public Response handleException(Exception e) { log.error("handleException throw Exception : {}", e.getMessage()); - return Response.toResponse(400, e.getMessage(), exceptionType(e)); + return new Response(e.getMessage()); } @ExceptionHandler(ConstraintViolationException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) - public Response handleConstraintViolationException(ConstraintViolationException e) { + public Response handleConstraintViolationException(ConstraintViolationException e) { log.error("handleConstraintViolationException throw ConstraintViolationException : {}", e.getMessage()); - return Response.toResponse(400, e.getMessage(), exceptionType(e)); + return new Response(e.getMessage()); } @ExceptionHandler(IllegalArgumentException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) - public Response handleIllegalArgumentException(IllegalArgumentException e) { + public Response handleIllegalArgumentException(IllegalArgumentException e) { log.error("handleIllegalArgumentException throw IllegalArgumentException : {}", e.getMessage()); - return Response.toResponse(400, e.getMessage(), exceptionType(e)); + return new Response(e.getMessage()); } @ExceptionHandler(UnauthorizedException.class) @ResponseStatus(HttpStatus.UNAUTHORIZED) - public Response handleUnauthorizedException(UnauthorizedException e) { - return Response.toResponse(401, e.getMessage(), exceptionType(e)); + public Response handleUnauthorizedException(UnauthorizedException e) { + return new Response(e.getMessage()); } @ExceptionHandler(DuplicatedException.class) @ResponseStatus(HttpStatus.CONFLICT) - public Response handleDuplicatedException(DuplicatedException e) { - return Response.toResponse(409, e.getMessage(), exceptionType(e)); + public Response handleDuplicatedException(DuplicatedException e) { + return new Response(e.getMessage()); } @ExceptionHandler(MethodArgumentNotValidException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) - public Response handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { + public Response handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { BindingResult bindingResult = e.getBindingResult(); - List message = new ArrayList<>(); + List message = new ArrayList<>(); for (FieldError fieldError : bindingResult.getFieldErrors()) { - StringBuilder builder = new StringBuilder(); - - builder.append(fieldError.getField()); - builder.append(" : "); - builder.append(fieldError.getDefaultMessage()); - - message.add(builder); + message.add(fieldError.getDefaultMessage()); } - return Response.toResponse(400, message.toString(), exceptionType(e)); + return new Response(message.toString()); } @ExceptionHandler(AuthenticationException.class) @ResponseStatus(HttpStatus.FORBIDDEN) - public Response handleAuthenticationException(AuthenticationException e) { - return Response.toResponse(403, e.getMessage(), exceptionType(e)); + public Response handleAuthenticationException(AuthenticationException e) { + return new Response(e.getMessage()); } - } diff --git a/src/test/java/com/photobook/utils/PasswordEncoderTest.java b/src/test/java/com/photobook/utils/PasswordEncoderTest.java deleted file mode 100644 index d54ebcc..0000000 --- a/src/test/java/com/photobook/utils/PasswordEncoderTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.photobook.utils; - -import static org.junit.jupiter.api.Assertions.*; - -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.security.crypto.password.PasswordEncoder; - -@SpringBootTest -class PasswordEncoderTest { - - @Autowired - private PasswordEncoder passwordEncoder; - - @Test - @DisplayName("패스워드 암호화 테스트") - void passwordEncode() { - //given - String rawPwd = "1234"; - - //when - String encodedPwd = passwordEncoder.encode(rawPwd); - - //then - assertAll( - () -> assertNotEquals(rawPwd, encodedPwd), - () -> assertTrue(passwordEncoder.matches(rawPwd, encodedPwd)) - ); - } - -}