From 816d9ebc14d8be2f49de1f8755d4049cf200fe39 Mon Sep 17 00:00:00 2001 From: koreanair777 Date: Thu, 15 Feb 2024 23:01:48 +0900 Subject: [PATCH] =?UTF-8?q?:sparkles:=20[Feat]:=20=EB=82=98=EC=9D=B4=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../beyondB/beyondB/controller/UserController.java | 11 +++++++++++ .../beyondB/beyondB/dto/request/UserRequestDTO.java | 13 +++++++++++++ src/main/java/com/beyondB/beyondB/entity/User.java | 4 ++++ .../com/beyondB/beyondB/service/UserService.java | 3 +++ .../beyondB/service/impl/UserServiceImpl.java | 6 ++++++ 5 files changed, 37 insertions(+) create mode 100644 src/main/java/com/beyondB/beyondB/dto/request/UserRequestDTO.java diff --git a/src/main/java/com/beyondB/beyondB/controller/UserController.java b/src/main/java/com/beyondB/beyondB/controller/UserController.java index ab3c6df..07c1e91 100644 --- a/src/main/java/com/beyondB/beyondB/controller/UserController.java +++ b/src/main/java/com/beyondB/beyondB/controller/UserController.java @@ -3,6 +3,7 @@ import com.beyondB.beyondB.apiPayload.BaseResponse; import com.beyondB.beyondB.converter.UserConverter; import com.beyondB.beyondB.dto.UserSignupDTO; +import com.beyondB.beyondB.dto.request.UserRequestDTO.PatchAgeDTO; import com.beyondB.beyondB.dto.response.UserResponseDTO.UserDetailDTO; import com.beyondB.beyondB.entity.User; import com.beyondB.beyondB.security.handler.annotation.AuthUser; @@ -13,6 +14,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @@ -46,4 +48,13 @@ public String test() { public BaseResponse myPage(@AuthUser User user) { return BaseResponse.onSuccess(UserConverter.toUserDetailDTO(user)); } + + @ApiResponses({@ApiResponse(responseCode = "COMMON200", description = "조회 성공")}) + @Operation(summary = "나이 수정 API", description = "나이 수정 API입니다.") + @PatchMapping("/age") + @Parameter(name = "user", hidden = true) + public BaseResponse patchAge(@AuthUser User user, @RequestBody PatchAgeDTO patchAgeDTO) { + User newUser = userService.patchAge(user, patchAgeDTO); + return BaseResponse.onSuccess(UserConverter.toUserDetailDTO(newUser)); + } } diff --git a/src/main/java/com/beyondB/beyondB/dto/request/UserRequestDTO.java b/src/main/java/com/beyondB/beyondB/dto/request/UserRequestDTO.java new file mode 100644 index 0000000..259a115 --- /dev/null +++ b/src/main/java/com/beyondB/beyondB/dto/request/UserRequestDTO.java @@ -0,0 +1,13 @@ +package com.beyondB.beyondB.dto.request; + +import lombok.Getter; +import lombok.Setter; + +public class UserRequestDTO { + + @Getter + @Setter + public static class PatchAgeDTO{ + private String age; + } +} diff --git a/src/main/java/com/beyondB/beyondB/entity/User.java b/src/main/java/com/beyondB/beyondB/entity/User.java index 254db75..7e0cdf5 100644 --- a/src/main/java/com/beyondB/beyondB/entity/User.java +++ b/src/main/java/com/beyondB/beyondB/entity/User.java @@ -78,4 +78,8 @@ public void passwordEncode(PasswordEncoder passwordEncoder) { public void updateRefreshToken(String updateRefreshToken) { this.refreshToken = updateRefreshToken; } + + public void updateUserAge(String age) { + this.age = age; + } } diff --git a/src/main/java/com/beyondB/beyondB/service/UserService.java b/src/main/java/com/beyondB/beyondB/service/UserService.java index 4ab8bdd..d228a31 100644 --- a/src/main/java/com/beyondB/beyondB/service/UserService.java +++ b/src/main/java/com/beyondB/beyondB/service/UserService.java @@ -1,6 +1,7 @@ package com.beyondB.beyondB.service; import com.beyondB.beyondB.dto.UserSignupDTO; +import com.beyondB.beyondB.dto.request.UserRequestDTO.PatchAgeDTO; import com.beyondB.beyondB.entity.User; import java.util.concurrent.Flow; import org.springframework.data.domain.Page; @@ -10,4 +11,6 @@ public interface UserService { User findUserById(Long userId); void signUp(UserSignupDTO userSignUpDto) throws Exception; + + User patchAge(User user, PatchAgeDTO patchAgeDTO); } diff --git a/src/main/java/com/beyondB/beyondB/service/impl/UserServiceImpl.java b/src/main/java/com/beyondB/beyondB/service/impl/UserServiceImpl.java index d48b78c..58a17e5 100644 --- a/src/main/java/com/beyondB/beyondB/service/impl/UserServiceImpl.java +++ b/src/main/java/com/beyondB/beyondB/service/impl/UserServiceImpl.java @@ -3,6 +3,7 @@ import com.beyondB.beyondB.apiPayload.code.status.ErrorStatus; import com.beyondB.beyondB.apiPayload.exception.UserException; import com.beyondB.beyondB.dto.UserSignupDTO; +import com.beyondB.beyondB.dto.request.UserRequestDTO.PatchAgeDTO; import com.beyondB.beyondB.entity.User; import com.beyondB.beyondB.entity.enums.Role; import com.beyondB.beyondB.repository.UserRepository; @@ -48,4 +49,9 @@ public void signUp(UserSignupDTO userSignUpDto) throws Exception { userRepository.save(user); } + + public User patchAge(User user, PatchAgeDTO patchAgeDTO) { + user.updateUserAge(patchAgeDTO.getAge()); + return user; + } }