Skip to content

Commit ea3961c

Browse files
Merge pull request #259 from prgrms-web-devcourse-final-project/feat/#257
[User] 유저 id로 유저 정보 조회 API 추가
2 parents da525e2 + 619f87b commit ea3961c

3 files changed

Lines changed: 40 additions & 0 deletions

File tree

src/main/java/com/back/web7_9_codecrete_be/domain/users/controller/UserController.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.back.web7_9_codecrete_be.domain.users.dto.request.UserUpdateBirthRequest;
66
import com.back.web7_9_codecrete_be.domain.users.dto.request.UserUpdateNicknameRequest;
77
import com.back.web7_9_codecrete_be.domain.users.dto.request.UserUpdatePasswordRequest;
8+
import com.back.web7_9_codecrete_be.domain.users.dto.response.UserPublicResponse;
89
import com.back.web7_9_codecrete_be.domain.users.dto.response.UserResponse;
910
import com.back.web7_9_codecrete_be.domain.users.dto.response.UserSettingResponse;
1011
import com.back.web7_9_codecrete_be.domain.users.entity.User;
@@ -118,4 +119,13 @@ public RsData<?> updateMySettings(
118119
userService.updateMySettings(user, req);
119120
return RsData.success("유저 설정 수정 성공");
120121
}
122+
123+
@Operation(summary = "유저 ID로 사용자 정보 조회", description = "유저 ID를 기반으로 공개 가능한 사용자 정보를 조회합니다.")
124+
@GetMapping("/{userId}")
125+
public RsData<?> getUserById(
126+
@PathVariable Long userId
127+
) {
128+
UserPublicResponse response = userService.getUserById(userId);
129+
return RsData.success("사용자 정보 조회 성공", response);
130+
}
121131
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.back.web7_9_codecrete_be.domain.users.dto.response;
2+
3+
4+
import com.back.web7_9_codecrete_be.domain.users.entity.User;
5+
import lombok.Builder;
6+
import lombok.Getter;
7+
8+
@Getter
9+
@Builder
10+
public class UserPublicResponse {
11+
private Long id;
12+
private String nickname;
13+
private String profileImageUrl;
14+
15+
public static UserPublicResponse from(User user) {
16+
return UserPublicResponse.builder()
17+
.id(user.getId())
18+
.nickname(user.getNickname())
19+
.profileImageUrl(user.getProfileImage())
20+
.build();
21+
}
22+
}

src/main/java/com/back/web7_9_codecrete_be/domain/users/service/UserService.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.back.web7_9_codecrete_be.domain.users.dto.request.UserUpdateBirthRequest;
99
import com.back.web7_9_codecrete_be.domain.users.dto.request.UserUpdateNicknameRequest;
1010
import com.back.web7_9_codecrete_be.domain.users.dto.request.UserUpdatePasswordRequest;
11+
import com.back.web7_9_codecrete_be.domain.users.dto.response.UserPublicResponse;
1112
import com.back.web7_9_codecrete_be.domain.users.dto.response.UserResponse;
1213
import com.back.web7_9_codecrete_be.domain.users.dto.response.UserSettingResponse;
1314
import com.back.web7_9_codecrete_be.domain.users.entity.SocialType;
@@ -260,4 +261,11 @@ public void updateMySettings(User user, UserSettingUpdateRequest req) {
260261
setting.changeDarkMode(req.getDarkMode());
261262
}
262263
}
264+
265+
public UserPublicResponse getUserById(Long userId) {
266+
User user = userRepository.findById(userId)
267+
.orElseThrow(() -> new BusinessException(UserErrorCode.USER_NOT_FOUND));
268+
269+
return UserPublicResponse.from(user);
270+
}
263271
}

0 commit comments

Comments
 (0)