diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/GetUserBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/GetUserBean.java new file mode 100644 index 0000000..f4d4fe8 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/GetUserBean.java @@ -0,0 +1,31 @@ +package HalfFifty.HalfFifty_BE.user.bean; + +import HalfFifty.HalfFifty_BE.user.bean.small.CreateUserDTOBean; +import HalfFifty.HalfFifty_BE.user.bean.small.GetUserDAOBean; +import HalfFifty.HalfFifty_BE.user.domain.DTO.ResponseUserGetDTO; +import HalfFifty.HalfFifty_BE.user.domain.UserDAO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +public class GetUserBean { + CreateUserDTOBean createUserDTOBean; + GetUserDAOBean getUserDAOBean; + + @Autowired + public GetUserBean(CreateUserDTOBean createUserDTOBean, GetUserDAOBean getUserDAOBean) { + this.createUserDTOBean = createUserDTOBean; + this.getUserDAOBean = getUserDAOBean; + } + + public ResponseUserGetDTO exec(UUID userId) { + // 유저 id를 통해 원하는 객체 찾기 + UserDAO userDAO = getUserDAOBean.exec(userId); + if(userDAO == null) return null; + + // 객체를 DTO로 변환해서 반환 + return createUserDTOBean.exec(userDAO); + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/small/CreateUserDTOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/small/CreateUserDTOBean.java new file mode 100644 index 0000000..0c87793 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/small/CreateUserDTOBean.java @@ -0,0 +1,18 @@ +package HalfFifty.HalfFifty_BE.user.bean.small; + +import HalfFifty.HalfFifty_BE.user.domain.DTO.ResponseUserGetDTO; +import HalfFifty.HalfFifty_BE.user.domain.UserDAO; +import org.springframework.stereotype.Component; + +@Component +public class CreateUserDTOBean { + // 객체를 DTO로 변환해서 반환 + public ResponseUserGetDTO exec(UserDAO userDAO) { + return ResponseUserGetDTO.builder() + .userId(userDAO.getUserId()) + .nickname(userDAO.getNickName()) + .phoneNumber(userDAO.getPhoneNumber()) + .createdAt(userDAO.getCreatedAt()) + .build(); + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/small/GetUserDAOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/small/GetUserDAOBean.java new file mode 100644 index 0000000..7424001 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/bean/small/GetUserDAOBean.java @@ -0,0 +1,23 @@ +package HalfFifty.HalfFifty_BE.user.bean.small; + +import HalfFifty.HalfFifty_BE.user.domain.UserDAO; +import HalfFifty.HalfFifty_BE.user.repository.UserRepositoryJPA; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +public class GetUserDAOBean { + UserRepositoryJPA userRepositoryJPA; + + @Autowired + public GetUserDAOBean(UserRepositoryJPA userRepositoryJPA) { + this.userRepositoryJPA = userRepositoryJPA; + } + + // 유저 id를 통해 원하는 객체 찾기 + public UserDAO exec(UUID userId) { + return userRepositoryJPA.findById(userId).orElse(null); + } +} 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 c8958ac..f75c8c3 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.ResponseUserGetDTO; import HalfFifty.HalfFifty_BE.user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -23,6 +24,24 @@ public UserController(UserService userService) { this.userService = userService; } + @GetMapping("/{userId}") + public ResponseEntity> getUserProfile(@PathVariable("userId") UUID userId) { + // 유저 프로필 조회 service + ResponseUserGetDTO responseUserGetDTO = userService.getUserProfile(userId); + + // 유저 프로필 조회 성공 여부 + boolean success = responseUserGetDTO != null; + + // Map을 통해 메시지 id 값 json 데이터로 변환 + Map requestMap = new HashMap<>(); + requestMap.put("success", success); + requestMap.put("message", success ? "유저 프로필 조회 성공" : "유저 프로필 조회 실패"); + requestMap.put("userInfo", responseUserGetDTO); + + // 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/ResponseUserGetDTO.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/domain/DTO/ResponseUserGetDTO.java new file mode 100644 index 0000000..8694a77 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/user/domain/DTO/ResponseUserGetDTO.java @@ -0,0 +1,16 @@ +package HalfFifty.HalfFifty_BE.user.domain.DTO; + +import lombok.Builder; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.UUID; + +@Data +@Builder +public class ResponseUserGetDTO { + UUID userId; + String nickname; + String phoneNumber; + LocalDateTime createdAt; +} 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 bef7bd6..066298d 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 @@ -1,7 +1,9 @@ package HalfFifty.HalfFifty_BE.user.service; +import HalfFifty.HalfFifty_BE.user.bean.GetUserBean; import HalfFifty.HalfFifty_BE.user.bean.SaveUserBean; import HalfFifty.HalfFifty_BE.user.domain.DTO.RequestUserSaveDTO; +import HalfFifty.HalfFifty_BE.user.domain.DTO.ResponseUserGetDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -10,10 +12,17 @@ @Service public class UserService { SaveUserBean saveUserBean; + GetUserBean getUserBean; @Autowired - public UserService(SaveUserBean saveUserBean) { + public UserService(SaveUserBean saveUserBean, GetUserBean getUserBean) { this.saveUserBean = saveUserBean; + this.getUserBean = getUserBean; + } + + // 유저 프로필 조회 + public ResponseUserGetDTO getUserProfile(UUID userId) { + return getUserBean.exec(userId); } // 유저 회원가입(임시)