From e872705fa7122d17c9ad5bac4f3eb3aa3cfee335 Mon Sep 17 00:00:00 2001 From: Jeongmo Seo Date: Tue, 12 Aug 2025 22:14:58 +0900 Subject: [PATCH] =?UTF-8?q?:sparkles:=20feat:=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EC=9E=90=20=EC=A0=95=EB=B3=B4=20=EC=A1=B0=ED=9A=8C=20API=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/controller/MemberController.java | 13 +++++++----- .../member/converter/MemberConverter.java | 15 +++++++++++++ .../domain/member/dto/MemberResponseDTO.java | 21 +++++++++++++++++++ 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/withtime/be/withtimebe/domain/member/controller/MemberController.java b/src/main/java/org/withtime/be/withtimebe/domain/member/controller/MemberController.java index f357664..f801797 100644 --- a/src/main/java/org/withtime/be/withtimebe/domain/member/controller/MemberController.java +++ b/src/main/java/org/withtime/be/withtimebe/domain/member/controller/MemberController.java @@ -7,11 +7,7 @@ import lombok.RequiredArgsConstructor; import org.namul.api.payload.response.DefaultResponse; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PatchMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.withtime.be.withtimebe.domain.member.converter.MemberConverter; import org.withtime.be.withtimebe.domain.member.dto.MemberRequestDTO; import org.withtime.be.withtimebe.domain.member.dto.MemberResponseDTO; @@ -87,4 +83,11 @@ public DefaultResponse deleteMember(@AuthenticatedMember Member member) { memberCommandService.deleteMember(member.getId()); return DefaultResponse.noContent(); } + + @Operation(summary = "사용자 정보 가져오는 API", description = "로그인된 사용자 정보 가져오는 API") + @ApiResponse(responseCode = "200", description = "사용자 정보를 가져왔습니다.") + @GetMapping("/infos") + public DefaultResponse getMemberInfo(@AuthenticatedMember Member member) { + return DefaultResponse.ok(MemberConverter.toMemberInfo(member)); + } } diff --git a/src/main/java/org/withtime/be/withtimebe/domain/member/converter/MemberConverter.java b/src/main/java/org/withtime/be/withtimebe/domain/member/converter/MemberConverter.java index 02e018f..6e5be96 100644 --- a/src/main/java/org/withtime/be/withtimebe/domain/member/converter/MemberConverter.java +++ b/src/main/java/org/withtime/be/withtimebe/domain/member/converter/MemberConverter.java @@ -10,4 +10,19 @@ public static MemberResponseDTO.ChangeInfo toChangeInfo(Member member) { .username(member.getUsername()) .build(); } + + public static MemberResponseDTO.MemberInfo toMemberInfo(Member member) { + return MemberResponseDTO.MemberInfo.builder() + .id(member.getId()) + .email(member.getEmail()) + .username(member.getUsername()) + .userRank(member.getUserRank()) + .phoneNumber(member.getPhoneNumber()) + .isAuthPayment(member.getIsAutoPayment()) + .gender(member.getGender()) + .birth(member.getBirth()) + .role(member.getRole()) + .point(member.getPoint()) + .build(); + } } diff --git a/src/main/java/org/withtime/be/withtimebe/domain/member/dto/MemberResponseDTO.java b/src/main/java/org/withtime/be/withtimebe/domain/member/dto/MemberResponseDTO.java index 0fa1321..64207cf 100644 --- a/src/main/java/org/withtime/be/withtimebe/domain/member/dto/MemberResponseDTO.java +++ b/src/main/java/org/withtime/be/withtimebe/domain/member/dto/MemberResponseDTO.java @@ -1,10 +1,31 @@ package org.withtime.be.withtimebe.domain.member.dto; import lombok.Builder; +import org.withtime.be.withtimebe.domain.member.entity.enums.Gender; +import org.withtime.be.withtimebe.domain.member.entity.enums.Role; +import org.withtime.be.withtimebe.domain.member.entity.enums.UserRank; + +import java.time.LocalDate; public record MemberResponseDTO() { @Builder public record ChangeInfo( String username ) {} + + @Builder + public record MemberInfo( + Long id, + String email, + String username, + UserRank userRank, + String phoneNumber, + Boolean isAuthPayment, + Gender gender, + LocalDate birth, + Role role, + Integer point + ) { + + } }