Skip to content

Commit 0c74146

Browse files
authored
feat: 현재 로그인한 사용자 정보 조회 api (#110)
1 parent 7bf4f0f commit 0c74146

File tree

4 files changed

+33
-0
lines changed

4 files changed

+33
-0
lines changed

src/main/java/com/threestar/trainus/domain/user/controller/UserController.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.springframework.http.HttpStatus;
44
import org.springframework.http.ResponseEntity;
5+
import org.springframework.web.bind.annotation.GetMapping;
56
import org.springframework.web.bind.annotation.PatchMapping;
67
import org.springframework.web.bind.annotation.PostMapping;
78
import org.springframework.web.bind.annotation.RequestBody;
@@ -17,6 +18,7 @@
1718
import com.threestar.trainus.domain.user.dto.PasswordUpdateDto;
1819
import com.threestar.trainus.domain.user.dto.SignupRequestDto;
1920
import com.threestar.trainus.domain.user.dto.SignupResponseDto;
21+
import com.threestar.trainus.domain.user.dto.UserInfoResponseDto;
2022
import com.threestar.trainus.domain.user.service.EmailVerificationService;
2123
import com.threestar.trainus.domain.user.service.UserService;
2224
import com.threestar.trainus.global.annotation.LoginUser;
@@ -100,4 +102,13 @@ public ResponseEntity<BaseResponse<Void>> updatePassword(
100102
userService.updatePassword(request, loginUserId);
101103
return BaseResponse.ok("비밀번호 변경이 완료되었습니다.", null, HttpStatus.OK);
102104
}
105+
106+
@GetMapping("/me")
107+
@Operation(summary = "현재 로그인한 사용자 정보 조회 api")
108+
public ResponseEntity<BaseResponse<UserInfoResponseDto>> getCurrentUser(
109+
@LoginUser Long loginUserId
110+
) {
111+
UserInfoResponseDto response = userService.getCurrentUserInfo(loginUserId);
112+
return BaseResponse.ok("사용자 정보 조회가 완료되었습니다.", response, HttpStatus.OK);
113+
}
103114
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.threestar.trainus.domain.user.dto;
2+
3+
public record UserInfoResponseDto(
4+
Long userId,
5+
String nickname
6+
) {
7+
}

src/main/java/com/threestar/trainus/domain/user/mapper/UserMapper.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.threestar.trainus.domain.user.dto.LoginResponseDto;
44
import com.threestar.trainus.domain.user.dto.SignupRequestDto;
55
import com.threestar.trainus.domain.user.dto.SignupResponseDto;
6+
import com.threestar.trainus.domain.user.dto.UserInfoResponseDto;
67
import com.threestar.trainus.domain.user.entity.User;
78
import com.threestar.trainus.domain.user.entity.UserRole;
89

@@ -38,4 +39,11 @@ public static LoginResponseDto toLoginResponseDto(User user) {
3839
user.getNickname()
3940
);
4041
}
42+
43+
public static UserInfoResponseDto toUserInfoResponseDto(User user) {
44+
return new UserInfoResponseDto(
45+
user.getId(),
46+
user.getNickname()
47+
);
48+
}
4149
}

src/main/java/com/threestar/trainus/domain/user/service/UserService.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.threestar.trainus.domain.user.dto.PasswordUpdateDto;
1515
import com.threestar.trainus.domain.user.dto.SignupRequestDto;
1616
import com.threestar.trainus.domain.user.dto.SignupResponseDto;
17+
import com.threestar.trainus.domain.user.dto.UserInfoResponseDto;
1718
import com.threestar.trainus.domain.user.entity.User;
1819
import com.threestar.trainus.domain.user.entity.UserRole;
1920
import com.threestar.trainus.domain.user.mapper.UserMapper;
@@ -138,4 +139,10 @@ public void updatePassword(PasswordUpdateDto request, Long userId) {
138139

139140
userRepository.save(user);
140141
}
142+
143+
@Transactional(readOnly = true)
144+
public UserInfoResponseDto getCurrentUserInfo(Long userId) {
145+
User user = getUserById(userId);
146+
return UserMapper.toUserInfoResponseDto(user);
147+
}
141148
}

0 commit comments

Comments
 (0)