diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/UpdateUserBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/UpdateUserBean.java new file mode 100644 index 0000000..34f1f96 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/UpdateUserBean.java @@ -0,0 +1,39 @@ +package HalfFifty.HalfFifty_BE.user.bean; + +import HalfFifty.HalfFifty_BE.user.bean.small.GetUserDAOBean; +import HalfFifty.HalfFifty_BE.user.bean.small.SaveUserDAOBean; +import HalfFifty.HalfFifty_BE.user.domain.DTO.RequestUserUpdateDTO; +import HalfFifty.HalfFifty_BE.user.domain.UserDAO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.util.UUID; + +@Component +public class UpdateUserBean { + GetUserDAOBean getUserDAOBean; + SaveUserDAOBean saveUserDAOBean; + + @Autowired + public UpdateUserBean(GetUserDAOBean getUserDAOBean, SaveUserDAOBean saveUserDAOBean) { + this.getUserDAOBean = getUserDAOBean; + this.saveUserDAOBean = saveUserDAOBean; + } + + public UUID exec(RequestUserUpdateDTO requestUserUpdateDTO) { + // 유저 id를 통해 원하는 객체 찾기 + UserDAO userDAO = getUserDAOBean.exec(requestUserUpdateDTO.getUserId()); + if(userDAO == null) return null; + + // 객체 수정 + userDAO.setNickName(requestUserUpdateDTO.getNickname()); + userDAO.setUpdatedAt(LocalDateTime.now()); + + // 수정한 객체 저장 + saveUserDAOBean.exec(userDAO); + + // 수정한 객체 키값 반환 + return userDAO.getUserId(); + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/controller/UserController.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/controller/UserController.java index f75c8c3..fa77135 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/controller/UserController.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/controller/UserController.java @@ -1,6 +1,7 @@ package HalfFifty.HalfFifty_BE.user.controller; import HalfFifty.HalfFifty_BE.user.domain.DTO.RequestUserSaveDTO; +import HalfFifty.HalfFifty_BE.user.domain.DTO.RequestUserUpdateDTO; import HalfFifty.HalfFifty_BE.user.domain.DTO.ResponseUserGetDTO; import HalfFifty.HalfFifty_BE.user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; @@ -42,6 +43,24 @@ public ResponseEntity> getUserProfile(@PathVariable("userId" return ResponseEntity.status(HttpStatus.OK).body(requestMap); } + @PutMapping + public ResponseEntity> updateUser(@RequestBody RequestUserUpdateDTO requestUserUpdateDTO) { + // 유저 닉네임 수정 service + UUID userId = userService.updateUser(requestUserUpdateDTO); + + // 유저 닉네임 수정 여부 + boolean success = userId != null; + + // Map을 통해 메시지와 id 값 json 테이터로 변환 + Map requestMap = new HashMap<>(); + requestMap.put("success", success); + requestMap.put("message", success ? "유저 닉네임 수정 성공" : "유저 닉네임 수정 실패"); + requestMap.put("userId", userId); + + // status, body 설정해서 응답 리턴 + return ResponseEntity.status(HttpStatus.OK).body(requestMap); + } + @PostMapping public ResponseEntity> saveUser(@RequestBody RequestUserSaveDTO requestUserSaveDTO) { // 유저 회원가입 service diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/domain/DTO/RequestUserUpdateDTO.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/domain/DTO/RequestUserUpdateDTO.java new file mode 100644 index 0000000..ddeee26 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/domain/DTO/RequestUserUpdateDTO.java @@ -0,0 +1,13 @@ +package HalfFifty.HalfFifty_BE.user.domain.DTO; + +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.UUID; + +@Data +public class RequestUserUpdateDTO { + UUID userId; + String nickname; + LocalDateTime updatedAt; +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/service/UserService.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/service/UserService.java index 066298d..e845a86 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/service/UserService.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/service/UserService.java @@ -2,7 +2,9 @@ import HalfFifty.HalfFifty_BE.user.bean.GetUserBean; import HalfFifty.HalfFifty_BE.user.bean.SaveUserBean; +import HalfFifty.HalfFifty_BE.user.bean.UpdateUserBean; import HalfFifty.HalfFifty_BE.user.domain.DTO.RequestUserSaveDTO; +import HalfFifty.HalfFifty_BE.user.domain.DTO.RequestUserUpdateDTO; import HalfFifty.HalfFifty_BE.user.domain.DTO.ResponseUserGetDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -13,11 +15,13 @@ public class UserService { SaveUserBean saveUserBean; GetUserBean getUserBean; + UpdateUserBean updateUserBean; @Autowired - public UserService(SaveUserBean saveUserBean, GetUserBean getUserBean) { + public UserService(SaveUserBean saveUserBean, GetUserBean getUserBean, UpdateUserBean updateUserBean) { this.saveUserBean = saveUserBean; this.getUserBean = getUserBean; + this.updateUserBean = updateUserBean; } // 유저 프로필 조회 @@ -25,6 +29,11 @@ public ResponseUserGetDTO getUserProfile(UUID userId) { return getUserBean.exec(userId); } + // 유저 닉네임 수정 + public UUID updateUser(RequestUserUpdateDTO requestUserUpdateDTO) { + return updateUserBean.exec(requestUserUpdateDTO); + } + // 유저 회원가입(임시) public UUID exec(RequestUserSaveDTO requestUserSaveDTO) { return saveUserBean.exec(requestUserSaveDTO);