diff --git a/src/main/java/Devroup/hidaddy/controller/UserController.java b/src/main/java/Devroup/hidaddy/controller/UserController.java index 210b59b..82aa4b7 100644 --- a/src/main/java/Devroup/hidaddy/controller/UserController.java +++ b/src/main/java/Devroup/hidaddy/controller/UserController.java @@ -109,4 +109,18 @@ public ResponseEntity changeName( userService.changeUserName(userDetails.getUser(), requestDto.getUserName()); return ResponseEntity.ok("유저 이름 변경 완료"); } + + @GetMapping("/me") + @Operation( + summary = "현재 로그인된 유저 정보 조회", + description = "유저의 이름, 전화번호, 배우자 전화번호, 선택된 아기의 이름을 반환합니다." + ) + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "유저 정보 조회 성공"), + @ApiResponse(responseCode = "404", description = "해당 유저를 찾을 수 없음") + }) + public ResponseEntity getMyInfo(@RequestParam Long userId) { + UserResponse userInfo = userService.getUserInfo(userId); + return ResponseEntity.ok(userInfo); + } } diff --git a/src/main/java/Devroup/hidaddy/dto/user/UserResponse.java b/src/main/java/Devroup/hidaddy/dto/user/UserResponse.java new file mode 100644 index 0000000..6452be6 --- /dev/null +++ b/src/main/java/Devroup/hidaddy/dto/user/UserResponse.java @@ -0,0 +1,19 @@ +package Devroup.hidaddy.dto.user; + +import Devroup.hidaddy.entity.User; +import lombok.Getter; + +@Getter +public class UserResponse { + private String userName; + private String phone; + private String partnerPhone; + private String selectedBabyName; + + public UserResponse(User user, String selectedBabyName) { + this.userName = user.getName(); + this.partnerPhone = user.getPartnerPhone(); + this.phone = user.getPhone(); + this.selectedBabyName = selectedBabyName; // BabyRepository로 가져온 이름 + } +} \ No newline at end of file diff --git a/src/main/java/Devroup/hidaddy/service/UserService.java b/src/main/java/Devroup/hidaddy/service/UserService.java index ed8f16e..91a23a4 100644 --- a/src/main/java/Devroup/hidaddy/service/UserService.java +++ b/src/main/java/Devroup/hidaddy/service/UserService.java @@ -116,4 +116,18 @@ public void deleteUser(User user) { // 사용자 삭제 userRepository.delete(user); } + + public UserResponse getUserInfo(Long userId) { + User user = userRepository.findById(userId) + .orElseThrow(() -> new RuntimeException("User not found")); + + String babyName = null; + if (user.getSelectedBabyId() != null) { + babyName = babyRepository.findById(user.getSelectedBabyId()) + .map(Baby::getName) + .orElse(null); + } + + return new UserResponse(user, babyName); + } }