From 8629435b068da2bf5316f2d488ef276b2e825d2b Mon Sep 17 00:00:00 2001 From: dh1180 Date: Wed, 30 Jul 2025 03:17:05 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9C=A0=EC=A0=80=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=20API=20=EA=B5=AC=ED=98=84=20=EB=B0=8F=20?= =?UTF-8?q?Swagger=20=EB=AC=B8=EC=84=9C=ED=99=94=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - /api/user/me GET 엔드포인트 추가 - UserResponse DTO 생성 (이름, 전화번호, 배우자 전화번호, 선택된 아기 이름 포함) - UserService에서 BabyRepository를 사용해 아기 이름 조회 - Swagger @Operation, @ApiResponse로 API 문서화 --- .../hidaddy/controller/UserController.java | 14 ++++++++++++++ .../hidaddy/dto/user/UserResponse.java | 19 +++++++++++++++++++ .../Devroup/hidaddy/service/UserService.java | 14 ++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 src/main/java/Devroup/hidaddy/dto/user/UserResponse.java 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); + } }