Skip to content

Commit 8a06812

Browse files
committed
refactor: long id를 받도록 MentorController 수정
1 parent 405e4f5 commit 8a06812

7 files changed

Lines changed: 44 additions & 42 deletions

File tree

src/main/java/com/example/solidconnection/mentor/controller/MentorController.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import com.example.solidconnection.mentor.dto.MentorDetailResponse;
88
import com.example.solidconnection.mentor.dto.MentorPreviewResponse;
99
import com.example.solidconnection.mentor.service.MentorQueryService;
10-
import com.example.solidconnection.siteuser.domain.SiteUser;
1110
import lombok.RequiredArgsConstructor;
1211
import org.springframework.data.domain.Pageable;
1312
import org.springframework.data.domain.Sort;
@@ -30,26 +29,26 @@ public class MentorController {
3029

3130
@GetMapping("/{mentor-id}")
3231
public ResponseEntity<MentorDetailResponse> getMentorDetails(
33-
@AuthorizedUser SiteUser siteUser,
32+
@AuthorizedUser long siteUserId,
3433
@PathVariable("mentor-id") Long mentorId
3534
) {
36-
MentorDetailResponse response = mentorQueryService.getMentorDetails(mentorId, siteUser);
35+
MentorDetailResponse response = mentorQueryService.getMentorDetails(mentorId, siteUserId);
3736
return ResponseEntity.ok(response);
3837
}
3938

4039
@GetMapping
4140
public ResponseEntity<SliceResponse<MentorPreviewResponse>> getMentorPreviews(
42-
@AuthorizedUser SiteUser siteUser,
41+
@AuthorizedUser long siteUserId,
4342
@RequestParam("region") String region,
44-
43+
4544
@PageableDefault(size = 3, sort = "menteeCount", direction = DESC)
4645
@SortDefaults({
4746
@SortDefault(sort = "menteeCount", direction = Sort.Direction.DESC),
4847
@SortDefault(sort = "id", direction = Sort.Direction.ASC)
4948
})
5049
Pageable pageable
5150
) {
52-
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, siteUser, pageable);
51+
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, siteUserId, pageable);
5352
return ResponseEntity.ok(response);
5453
}
5554
}

src/main/java/com/example/solidconnection/mentor/controller/MentorMyPageController.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.example.solidconnection.mentor.service.MentorMyPageService;
77
import com.example.solidconnection.security.annotation.RequireRoleAccess;
88
import com.example.solidconnection.siteuser.domain.Role;
9-
import com.example.solidconnection.siteuser.domain.SiteUser;
109
import jakarta.validation.Valid;
1110
import lombok.RequiredArgsConstructor;
1211
import org.springframework.http.ResponseEntity;
@@ -26,19 +25,19 @@ public class MentorMyPageController {
2625
@RequireRoleAccess(roles = Role.MENTOR)
2726
@GetMapping
2827
public ResponseEntity<MentorMyPageResponse> getMentorMyPage(
29-
@AuthorizedUser SiteUser siteUser
28+
@AuthorizedUser long siteUserId
3029
) {
31-
MentorMyPageResponse mentorMyPageResponse = mentorMyPageService.getMentorMyPage(siteUser);
30+
MentorMyPageResponse mentorMyPageResponse = mentorMyPageService.getMentorMyPage(siteUserId);
3231
return ResponseEntity.ok(mentorMyPageResponse);
3332
}
3433

3534
@RequireRoleAccess(roles = Role.MENTOR)
3635
@PutMapping
3736
public ResponseEntity<Void> updateMentorMyPage(
38-
@AuthorizedUser SiteUser siteUser,
37+
@AuthorizedUser long siteUserId,
3938
@Valid @RequestBody MentorMyPageUpdateRequest mentorMyPageUpdateRequest
4039
) {
41-
mentorMyPageService.updateMentorMyPage(siteUser, mentorMyPageUpdateRequest);
40+
mentorMyPageService.updateMentorMyPage(siteUserId, mentorMyPageUpdateRequest);
4241
return ResponseEntity.ok().build();
4342
}
4443
}

src/main/java/com/example/solidconnection/mentor/controller/MentoringController.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import com.example.solidconnection.mentor.service.MentoringQueryService;
1313
import com.example.solidconnection.security.annotation.RequireRoleAccess;
1414
import com.example.solidconnection.siteuser.domain.Role;
15-
import com.example.solidconnection.siteuser.domain.SiteUser;
1615
import jakarta.validation.Valid;
1716
import lombok.RequiredArgsConstructor;
1817
import org.springframework.http.ResponseEntity;
@@ -35,49 +34,49 @@ public class MentoringController {
3534
@RequireRoleAccess(roles = Role.MENTEE)
3635
@PostMapping("/apply")
3736
public ResponseEntity<MentoringApplyResponse> applyMentoring(
38-
@AuthorizedUser SiteUser siteUser,
37+
@AuthorizedUser long siteUserId,
3938
@Valid @RequestBody MentoringApplyRequest mentoringApplyRequest
4039
) {
41-
MentoringApplyResponse response = mentoringCommandService.applyMentoring(siteUser.getId(), mentoringApplyRequest);
40+
MentoringApplyResponse response = mentoringCommandService.applyMentoring(siteUserId, mentoringApplyRequest);
4241
return ResponseEntity.ok(response);
4342
}
4443

4544
@RequireRoleAccess(roles = {Role.ADMIN, Role.MENTOR})
4645
@GetMapping("/apply")
4746
public ResponseEntity<MentoringListResponse> getMentorings(
48-
@AuthorizedUser SiteUser siteUser
47+
@AuthorizedUser long siteUserId
4948
) {
50-
MentoringListResponse responses = mentoringQueryService.getMentorings(siteUser.getId());
49+
MentoringListResponse responses = mentoringQueryService.getMentorings(siteUserId);
5150
return ResponseEntity.ok(responses);
5251
}
5352

5453
@RequireRoleAccess(roles = {Role.ADMIN, Role.MENTOR})
5554
@PatchMapping("/{mentoring-id}/apply")
5655
public ResponseEntity<MentoringConfirmResponse> confirmMentoring(
57-
@AuthorizedUser SiteUser siteUser,
56+
@AuthorizedUser long siteUserId,
5857
@PathVariable("mentoring-id") Long mentoringId,
5958
@Valid @RequestBody MentoringConfirmRequest mentoringConfirmRequest
6059
) {
61-
MentoringConfirmResponse response = mentoringCommandService.confirmMentoring(siteUser.getId(), mentoringId, mentoringConfirmRequest);
60+
MentoringConfirmResponse response = mentoringCommandService.confirmMentoring(siteUserId, mentoringId, mentoringConfirmRequest);
6261
return ResponseEntity.ok(response);
6362
}
6463

6564
@RequireRoleAccess(roles = {Role.ADMIN, Role.MENTOR})
6665
@PatchMapping("/{mentoring-id}/check")
6766
public ResponseEntity<MentoringCheckResponse> checkMentoring(
68-
@AuthorizedUser SiteUser siteUser,
67+
@AuthorizedUser long siteUserId,
6968
@PathVariable("mentoring-id") Long mentoringId
7069
) {
71-
MentoringCheckResponse response = mentoringCommandService.checkMentoring(siteUser.getId(), mentoringId);
70+
MentoringCheckResponse response = mentoringCommandService.checkMentoring(siteUserId, mentoringId);
7271
return ResponseEntity.ok(response);
7372
}
7473

7574
@RequireRoleAccess(roles = {Role.ADMIN, Role.MENTOR})
7675
@GetMapping("/check")
7776
public ResponseEntity<MentoringCountResponse> getUncheckedMentoringsCount(
78-
@AuthorizedUser SiteUser siteUser
77+
@AuthorizedUser long siteUserId
7978
) {
80-
MentoringCountResponse response = mentoringQueryService.getNewMentoringsCount(siteUser.getId());
79+
MentoringCountResponse response = mentoringQueryService.getNewMentoringsCount(siteUserId);
8180
return ResponseEntity.ok(response);
8281
}
8382
}

src/main/java/com/example/solidconnection/mentor/service/MentorMyPageService.java

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

33
import static com.example.solidconnection.common.exception.ErrorCode.CHANNEL_REGISTRATION_LIMIT_EXCEEDED;
44
import static com.example.solidconnection.common.exception.ErrorCode.MENTOR_NOT_FOUND;
5+
import static com.example.solidconnection.common.exception.ErrorCode.USER_NOT_FOUND;
56

67
import com.example.solidconnection.common.exception.CustomException;
78
import com.example.solidconnection.mentor.domain.Channel;
@@ -11,6 +12,7 @@
1112
import com.example.solidconnection.mentor.dto.MentorMyPageUpdateRequest;
1213
import com.example.solidconnection.mentor.repository.MentorRepository;
1314
import com.example.solidconnection.siteuser.domain.SiteUser;
15+
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
1416
import java.util.ArrayList;
1517
import java.util.List;
1618
import lombok.RequiredArgsConstructor;
@@ -25,18 +27,21 @@ public class MentorMyPageService {
2527
private static final int CHANNEL_SEQUENCE_START_NUMBER = 1;
2628

2729
private final MentorRepository mentorRepository;
30+
private final SiteUserRepository siteUserRepository;
2831

2932
@Transactional(readOnly = true)
30-
public MentorMyPageResponse getMentorMyPage(SiteUser siteUser) {
33+
public MentorMyPageResponse getMentorMyPage(long siteUserId) {
34+
SiteUser siteUser = siteUserRepository.findById(siteUserId)
35+
.orElseThrow(() -> new CustomException(USER_NOT_FOUND));
3136
Mentor mentor = mentorRepository.findBySiteUserId(siteUser.getId())
3237
.orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND));
3338
return MentorMyPageResponse.of(mentor, siteUser);
3439
}
3540

3641
@Transactional
37-
public void updateMentorMyPage(SiteUser siteUser, MentorMyPageUpdateRequest request) {
42+
public void updateMentorMyPage(long siteUserId, MentorMyPageUpdateRequest request) {
3843
validateChannelRegistrationLimit(request.channels());
39-
Mentor mentor = mentorRepository.findBySiteUserId(siteUser.getId())
44+
Mentor mentor = mentorRepository.findBySiteUserId(siteUserId)
4045
.orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND));
4146

4247
mentor.updateIntroduction(request.introduction());

src/main/java/com/example/solidconnection/mentor/service/MentorQueryService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,28 +31,28 @@ public class MentorQueryService {
3131
private final MentorBatchQueryRepository mentorBatchQueryRepository;
3232

3333
@Transactional(readOnly = true)
34-
public MentorDetailResponse getMentorDetails(long mentorId, SiteUser currentUser) {
34+
public MentorDetailResponse getMentorDetails(long mentorId, long currentUserId) {
3535
Mentor mentor = mentorRepository.findById(mentorId)
3636
.orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND));
3737
SiteUser mentorUser = siteUserRepository.findById(mentor.getSiteUserId())
3838
.orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND));
39-
boolean isApplied = mentoringRepository.existsByMentorIdAndMenteeId(mentorId, currentUser.getId());
39+
boolean isApplied = mentoringRepository.existsByMentorIdAndMenteeId(mentorId, currentUserId);
4040

4141
return MentorDetailResponse.of(mentor, mentorUser, isApplied);
4242
}
4343

4444
@Transactional(readOnly = true)
45-
public SliceResponse<MentorPreviewResponse> getMentorPreviews(String region, SiteUser siteUser, Pageable pageable) { // todo: 멘토의 '인증' 작업 후 region 필터링 추가
45+
public SliceResponse<MentorPreviewResponse> getMentorPreviews(String region, long currentUserId, Pageable pageable) { // todo: 멘토의 '인증' 작업 후 region 필터링 추가
4646
Slice<Mentor> mentorSlice = mentorRepository.findAllBy(pageable);
4747
List<Mentor> mentors = mentorSlice.toList();
48-
List<MentorPreviewResponse> content = getMentorPreviewResponses(mentors, siteUser);
48+
List<MentorPreviewResponse> content = getMentorPreviewResponses(mentors, currentUserId);
4949

5050
return SliceResponse.of(content, mentorSlice);
5151
}
5252

53-
private List<MentorPreviewResponse> getMentorPreviewResponses(List<Mentor> mentors, SiteUser siteUser) {
53+
private List<MentorPreviewResponse> getMentorPreviewResponses(List<Mentor> mentors, long currentUserId) {
5454
Map<Long, SiteUser> mentorIdToSiteUser = mentorBatchQueryRepository.getMentorIdToSiteUserMap(mentors);
55-
Map<Long, Boolean> mentorIdToIsApplied = mentorBatchQueryRepository.getMentorIdToIsApplied(mentors, siteUser.getId());
55+
Map<Long, Boolean> mentorIdToIsApplied = mentorBatchQueryRepository.getMentorIdToIsApplied(mentors, currentUserId);
5656

5757
List<MentorPreviewResponse> mentorPreviews = new ArrayList<>();
5858
for (Mentor mentor : mentors) {

src/test/java/com/example/solidconnection/mentor/service/MentorMyPageServiceTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class 멘토의_마이_페이지를_조회한다 {
6767
Channel channel2 = channelFixture.채널(2, mentor);
6868

6969
// when
70-
MentorMyPageResponse response = mentorMyPageService.getMentorMyPage(mentorUser);
70+
MentorMyPageResponse response = mentorMyPageService.getMentorMyPage(mentorUser.getId());
7171

7272
// then
7373
assertAll(
@@ -90,7 +90,7 @@ class 멘토의_마이_페이지를_수정한다 {
9090
MentorMyPageUpdateRequest request = new MentorMyPageUpdateRequest(newIntroduction, newPassTip, List.of());
9191

9292
// when
93-
mentorMyPageService.updateMentorMyPage(mentorUser, request);
93+
mentorMyPageService.updateMentorMyPage(mentorUser.getId(), request);
9494

9595
// then
9696
Mentor updatedMentor = mentorRepository.findById(mentor.getId()).get();
@@ -110,7 +110,7 @@ class 멘토의_마이_페이지를_수정한다 {
110110
MentorMyPageUpdateRequest request = new MentorMyPageUpdateRequest("introduction", "passTip", newChannels);
111111

112112
// when
113-
mentorMyPageService.updateMentorMyPage(mentorUser, request);
113+
mentorMyPageService.updateMentorMyPage(mentorUser.getId(), request);
114114

115115
// then
116116
List<Channel> updatedChannels = channelRepositoryForTest.findAllByMentorId(mentor.getId());

src/test/java/com/example/solidconnection/mentor/service/MentorQueryServiceTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class 멘토_단일_조회_성공 {
6363
Channel channel2 = channelFixture.채널(2, mentor);
6464

6565
// when
66-
MentorDetailResponse response = mentorQueryService.getMentorDetails(mentor.getId(), siteUser);
66+
MentorDetailResponse response = mentorQueryService.getMentorDetails(mentor.getId(), siteUser.getId());
6767

6868
// then
6969
assertAll(
@@ -85,8 +85,8 @@ class 멘토_단일_조회_성공 {
8585
mentoringFixture.대기중_멘토링(mentor.getId(), appliedUser.getId());
8686

8787
// when
88-
MentorDetailResponse notAppliedResponse = mentorQueryService.getMentorDetails(mentor.getId(), notAppliedUser);
89-
MentorDetailResponse appliedResponse = mentorQueryService.getMentorDetails(mentor.getId(), appliedUser);
88+
MentorDetailResponse notAppliedResponse = mentorQueryService.getMentorDetails(mentor.getId(), notAppliedUser.getId());
89+
MentorDetailResponse appliedResponse = mentorQueryService.getMentorDetails(mentor.getId(), appliedUser.getId());
9090

9191
// then
9292
assertAll(
@@ -105,7 +105,7 @@ class 멘토_단일_조회_실패 {
105105
long notExistingMentorId = 999L;
106106

107107
// when & then
108-
assertThatCode(() -> mentorQueryService.getMentorDetails(notExistingMentorId, siteUserFixture.사용자()))
108+
assertThatCode(() -> mentorQueryService.getMentorDetails(notExistingMentorId, siteUserFixture.사용자().getId()))
109109
.isInstanceOf(CustomException.class)
110110
.hasMessageContaining(ErrorCode.MENTOR_NOT_FOUND.getMessage());
111111
}
@@ -135,7 +135,7 @@ void setUp() {
135135
Channel channel2 = channelFixture.채널(2, mentor2);
136136

137137
// when
138-
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, currentUser, PageRequest.of(0, 10));
138+
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, currentUser.getId(), PageRequest.of(0, 10));
139139

140140
// then
141141
Map<Long, MentorPreviewResponse> mentorPreviewMap = response.content().stream()
@@ -159,7 +159,7 @@ void setUp() {
159159
mentoringFixture.대기중_멘토링(mentor1.getId(), currentUser.getId());
160160

161161
// when
162-
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, currentUser, PageRequest.of(0, 10));
162+
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, currentUser.getId(), PageRequest.of(0, 10));
163163

164164
// then
165165
Map<Long, MentorPreviewResponse> mentorPreviewMap = response.content().stream()
@@ -173,7 +173,7 @@ void setUp() {
173173
@Test
174174
void 다음_페이지_번호를_응답한다() {
175175
// given
176-
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, currentUser, PageRequest.of(0, 1));
176+
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, currentUser.getId(), PageRequest.of(0, 1));
177177

178178
// then
179179
assertThat(response.nextPageNumber()).isEqualTo(2);
@@ -182,7 +182,7 @@ void setUp() {
182182
@Test
183183
void 다음_페이지가_없으면_페이지_없음을_의미하는_값을_응답한다() {
184184
// given
185-
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, currentUser, PageRequest.of(0, 10));
185+
SliceResponse<MentorPreviewResponse> response = mentorQueryService.getMentorPreviews(region, currentUser.getId(), PageRequest.of(0, 10));
186186

187187
// then
188188
assertThat(response.nextPageNumber()).isEqualTo(NO_NEXT_PAGE_NUMBER);

0 commit comments

Comments
 (0)