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 + ) { + + } }