Skip to content

Commit 727ebc3

Browse files
committed
refactor: long id를 받도록 UniversityController 수정
1 parent cf65d48 commit 727ebc3

File tree

5 files changed

+35
-38
lines changed

5 files changed

+35
-38
lines changed

src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.example.solidconnection.university.controller;
22

33
import com.example.solidconnection.common.resolver.AuthorizedUser;
4-
import com.example.solidconnection.siteuser.domain.SiteUser;
54
import com.example.solidconnection.university.domain.LanguageTestType;
65
import com.example.solidconnection.university.dto.IsLikeResponse;
76
import com.example.solidconnection.university.dto.UnivApplyInfoDetailResponse;
@@ -32,48 +31,48 @@ public class UnivApplyInfoController {
3231

3332
@GetMapping("/recommend")
3433
public ResponseEntity<UnivApplyInfoRecommendsResponse> getUnivApplyInfoRecommends(
35-
@AuthorizedUser(required = false) SiteUser siteUser
34+
@AuthorizedUser(required = false) Long siteUserId
3635
) {
37-
if (siteUser == null) {
36+
if (siteUserId == null) {
3837
return ResponseEntity.ok(univApplyInfoRecommendService.getGeneralRecommends());
3938
} else {
40-
return ResponseEntity.ok(univApplyInfoRecommendService.getPersonalRecommends(siteUser));
39+
return ResponseEntity.ok(univApplyInfoRecommendService.getPersonalRecommends(siteUserId));
4140
}
4241
}
4342

4443
// todo: return 타입 UnivApplyInfoPreviewResponses 같이 객체로 묶어서 반환하는 것으로 변경 필요
4544
@GetMapping("/like")
4645
public ResponseEntity<List<UnivApplyInfoPreviewResponse>> getLikedUnivApplyInfos(
47-
@AuthorizedUser SiteUser siteUser
46+
@AuthorizedUser long siteUserId
4847
) {
49-
List<UnivApplyInfoPreviewResponse> likedUnivApplyInfos = likedUnivApplyInfoService.getLikedUnivApplyInfos(siteUser);
48+
List<UnivApplyInfoPreviewResponse> likedUnivApplyInfos = likedUnivApplyInfoService.getLikedUnivApplyInfos(siteUserId);
5049
return ResponseEntity.ok(likedUnivApplyInfos);
5150
}
5251

5352
@GetMapping("/{univ-apply-info-id}/like")
5453
public ResponseEntity<IsLikeResponse> isUnivApplyInfoLiked(
55-
@AuthorizedUser SiteUser siteUser,
54+
@AuthorizedUser long siteUserId,
5655
@PathVariable("univ-apply-info-id") Long univApplyInfoId
5756
) {
58-
IsLikeResponse isLiked = likedUnivApplyInfoService.isUnivApplyInfoLiked(siteUser, univApplyInfoId);
57+
IsLikeResponse isLiked = likedUnivApplyInfoService.isUnivApplyInfoLiked(siteUserId, univApplyInfoId);
5958
return ResponseEntity.ok(isLiked);
6059
}
6160

6261
@PostMapping("/{univ-apply-info-id}/like")
6362
public ResponseEntity<Void> addUnivApplyInfoLike(
64-
@AuthorizedUser SiteUser siteUser,
63+
@AuthorizedUser long siteUserId,
6564
@PathVariable("univ-apply-info-id") Long univApplyInfoId
6665
) {
67-
likedUnivApplyInfoService.addUnivApplyInfoLike(siteUser, univApplyInfoId);
66+
likedUnivApplyInfoService.addUnivApplyInfoLike(siteUserId, univApplyInfoId);
6867
return ResponseEntity.ok().build();
6968
}
7069

7170
@DeleteMapping("/{univ-apply-info-id}/like")
7271
public ResponseEntity<Void> cancelUnivApplyInfoLike(
73-
@AuthorizedUser SiteUser siteUser,
72+
@AuthorizedUser long siteUserId,
7473
@PathVariable("univ-apply-info-id") Long univApplyInfoId
7574
) {
76-
likedUnivApplyInfoService.cancelUnivApplyInfoLike(siteUser, univApplyInfoId);
75+
likedUnivApplyInfoService.cancelUnivApplyInfoLike(siteUserId, univApplyInfoId);
7776
return ResponseEntity.ok().build();
7877
}
7978

src/main/java/com/example/solidconnection/university/service/LikedUnivApplyInfoService.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import static com.example.solidconnection.common.exception.ErrorCode.NOT_LIKED_UNIV_APPLY_INFO;
55

66
import com.example.solidconnection.common.exception.CustomException;
7-
import com.example.solidconnection.siteuser.domain.SiteUser;
87
import com.example.solidconnection.university.domain.LikedUnivApplyInfo;
98
import com.example.solidconnection.university.domain.UnivApplyInfo;
109
import com.example.solidconnection.university.dto.IsLikeResponse;
@@ -32,8 +31,8 @@ public class LikedUnivApplyInfoService {
3231
* '좋아요'한 대학교 목록을 조회한다.
3332
* */
3433
@Transactional(readOnly = true)
35-
public List<UnivApplyInfoPreviewResponse> getLikedUnivApplyInfos(SiteUser siteUser) {
36-
List<UnivApplyInfo> univApplyInfos = likedUnivApplyInfoRepository.findUnivApplyInfosBySiteUserId(siteUser.getId());
34+
public List<UnivApplyInfoPreviewResponse> getLikedUnivApplyInfos(long siteUserId) {
35+
List<UnivApplyInfo> univApplyInfos = likedUnivApplyInfoRepository.findUnivApplyInfosBySiteUserId(siteUserId);
3736
return univApplyInfos.stream()
3837
.map(UnivApplyInfoPreviewResponse::from)
3938
.toList();
@@ -43,17 +42,17 @@ public List<UnivApplyInfoPreviewResponse> getLikedUnivApplyInfos(SiteUser siteUs
4342
* 대학교를 '좋아요' 한다.
4443
* */
4544
@Transactional
46-
public void addUnivApplyInfoLike(SiteUser siteUser, Long univApplyInfoId) {
45+
public void addUnivApplyInfoLike(long siteUserId, Long univApplyInfoId) {
4746
UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId);
4847

49-
Optional<LikedUnivApplyInfo> optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId());
48+
Optional<LikedUnivApplyInfo> optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUserId, univApplyInfo.getId());
5049
if (optionalLikedUnivApplyInfo.isPresent()) {
5150
throw new CustomException(ALREADY_LIKED_UNIV_APPLY_INFO);
5251
}
5352

5453
LikedUnivApplyInfo likedUnivApplyInfo = LikedUnivApplyInfo.builder()
5554
.univApplyInfoId(univApplyInfo.getId())
56-
.siteUserId(siteUser.getId())
55+
.siteUserId(siteUserId)
5756
.build();
5857
likedUnivApplyInfoRepository.save(likedUnivApplyInfo);
5958
}
@@ -62,10 +61,10 @@ public void addUnivApplyInfoLike(SiteUser siteUser, Long univApplyInfoId) {
6261
* 대학교 '좋아요'를 취소한다.
6362
* */
6463
@Transactional
65-
public void cancelUnivApplyInfoLike(SiteUser siteUser, long univApplyInfoId) {
64+
public void cancelUnivApplyInfoLike(long siteUserId, long univApplyInfoId) {
6665
UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId);
6766

68-
Optional<LikedUnivApplyInfo> optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId());
67+
Optional<LikedUnivApplyInfo> optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUserId, univApplyInfo.getId());
6968
if (optionalLikedUnivApplyInfo.isEmpty()) {
7069
throw new CustomException(NOT_LIKED_UNIV_APPLY_INFO);
7170
}
@@ -77,9 +76,9 @@ public void cancelUnivApplyInfoLike(SiteUser siteUser, long univApplyInfoId) {
7776
* '좋아요'한 대학교인지 확인한다.
7877
* */
7978
@Transactional(readOnly = true)
80-
public IsLikeResponse isUnivApplyInfoLiked(SiteUser siteUser, Long univApplyInfoId) {
79+
public IsLikeResponse isUnivApplyInfoLiked(long siteUserId, Long univApplyInfoId) {
8180
UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId);
82-
boolean isLike = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId()).isPresent();
81+
boolean isLike = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUserId, univApplyInfo.getId()).isPresent();
8382
return new IsLikeResponse(isLike);
8483
}
8584
}

src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.example.solidconnection.university.service;
22

33
import com.example.solidconnection.cache.annotation.ThunderingHerdCaching;
4-
import com.example.solidconnection.siteuser.domain.SiteUser;
54
import com.example.solidconnection.university.domain.UnivApplyInfo;
65
import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse;
76
import com.example.solidconnection.university.dto.UnivApplyInfoRecommendsResponse;
@@ -33,10 +32,10 @@ public class UnivApplyInfoRecommendService {
3332
* - 맞춤 추천 대학교의 수가 6개보다 적다면, 공통 추천 대학교 후보에서 이번 term 에 열리는 학교들을 부족한 수 만큼 불러온다.
3433
* */
3534
@Transactional(readOnly = true)
36-
public UnivApplyInfoRecommendsResponse getPersonalRecommends(SiteUser siteUser) {
35+
public UnivApplyInfoRecommendsResponse getPersonalRecommends(long siteUserId) {
3736
// 맞춤 추천 대학교를 불러온다.
3837
List<UnivApplyInfo> personalRecommends = univApplyInfoRepository
39-
.findAllBySiteUsersInterestedCountryOrRegionAndTerm(siteUser.getId(), term);
38+
.findAllBySiteUsersInterestedCountryOrRegionAndTerm(siteUserId, term);
4039
List<UnivApplyInfo> trimmedRecommends
4140
= personalRecommends.subList(0, Math.min(RECOMMEND_UNIV_APPLY_INFO_NUM, personalRecommends.size()));
4241
Collections.shuffle(trimmedRecommends);

src/test/java/com/example/solidconnection/university/service/LikedUnivApplyInfoServiceTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void setUp() {
5757
saveLikedUnivApplyInfo(user, 그라츠대학_지원_정보);
5858

5959
// when
60-
List<UnivApplyInfoPreviewResponse> response = likedUnivApplyInfoService.getLikedUnivApplyInfos(user);
60+
List<UnivApplyInfoPreviewResponse> response = likedUnivApplyInfoService.getLikedUnivApplyInfos(user.getId());
6161

6262
// then
6363
assertThat(response).extracting(UnivApplyInfoPreviewResponse::id)
@@ -70,7 +70,7 @@ class 대학_지원_정보_좋아요를_등록한다 {
7070
@Test
7171
void 성공적으로_좋아요를_등록한다() {
7272
// when
73-
likedUnivApplyInfoService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId());
73+
likedUnivApplyInfoService.addUnivApplyInfoLike(user.getId(), 괌대학_A_지원_정보.getId());
7474

7575
// then
7676
assertThat(
@@ -84,7 +84,7 @@ class 대학_지원_정보_좋아요를_등록한다 {
8484
saveLikedUnivApplyInfo(user, 괌대학_A_지원_정보);
8585

8686
// when & then
87-
assertThatCode(() -> likedUnivApplyInfoService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()))
87+
assertThatCode(() -> likedUnivApplyInfoService.addUnivApplyInfoLike(user.getId(), 괌대학_A_지원_정보.getId()))
8888
.isInstanceOf(CustomException.class)
8989
.hasMessage(ALREADY_LIKED_UNIV_APPLY_INFO.getMessage());
9090
}
@@ -99,7 +99,7 @@ class 대학_지원_정보_좋아요를_취소한다 {
9999
saveLikedUnivApplyInfo(user, 괌대학_A_지원_정보);
100100

101101
// when
102-
likedUnivApplyInfoService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId());
102+
likedUnivApplyInfoService.cancelUnivApplyInfoLike(user.getId(), 괌대학_A_지원_정보.getId());
103103

104104
// then
105105
assertThat(
@@ -110,7 +110,7 @@ class 대학_지원_정보_좋아요를_취소한다 {
110110
@Test
111111
void 좋아요하지_않았으면_예외가_발생한다() {
112112
// when & then
113-
assertThatCode(() -> likedUnivApplyInfoService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()))
113+
assertThatCode(() -> likedUnivApplyInfoService.cancelUnivApplyInfoLike(user.getId(), 괌대학_A_지원_정보.getId()))
114114
.isInstanceOf(CustomException.class)
115115
.hasMessage(NOT_LIKED_UNIV_APPLY_INFO.getMessage());
116116
}
@@ -122,7 +122,7 @@ class 대학_지원_정보_좋아요를_취소한다 {
122122
Long invalidUnivApplyInfoId = 9999L;
123123

124124
// when & then
125-
assertThatCode(() -> likedUnivApplyInfoService.addUnivApplyInfoLike(user, invalidUnivApplyInfoId))
125+
assertThatCode(() -> likedUnivApplyInfoService.addUnivApplyInfoLike(user.getId(), invalidUnivApplyInfoId))
126126
.isInstanceOf(CustomException.class)
127127
.hasMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage());
128128
}
@@ -133,7 +133,7 @@ class 대학_지원_정보_좋아요를_취소한다 {
133133
saveLikedUnivApplyInfo(user, 괌대학_A_지원_정보);
134134

135135
// when
136-
IsLikeResponse response = likedUnivApplyInfoService.isUnivApplyInfoLiked(user, 괌대학_A_지원_정보.getId());
136+
IsLikeResponse response = likedUnivApplyInfoService.isUnivApplyInfoLiked(user.getId(), 괌대학_A_지원_정보.getId());
137137

138138
// then
139139
assertThat(response.isLike()).isTrue();
@@ -142,7 +142,7 @@ class 대학_지원_정보_좋아요를_취소한다 {
142142
@Test
143143
void 좋아요하지_않은_대학_지원_정보인지_확인한다() {
144144
// when
145-
IsLikeResponse response = likedUnivApplyInfoService.isUnivApplyInfoLiked(user, 괌대학_A_지원_정보.getId());
145+
IsLikeResponse response = likedUnivApplyInfoService.isUnivApplyInfoLiked(user.getId(), 괌대학_A_지원_정보.getId());
146146

147147
// then
148148
assertThat(response.isLike()).isFalse();
@@ -154,7 +154,7 @@ class 대학_지원_정보_좋아요를_취소한다 {
154154
Long invalidUnivApplyInfoId = 9999L;
155155

156156
// when & then
157-
assertThatCode(() -> likedUnivApplyInfoService.isUnivApplyInfoLiked(user, invalidUnivApplyInfoId))
157+
assertThatCode(() -> likedUnivApplyInfoService.isUnivApplyInfoLiked(user.getId(), invalidUnivApplyInfoId))
158158
.isInstanceOf(CustomException.class)
159159
.hasMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage());
160160
}

src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ void setUp() {
8080
interestedRegionRepository.save(new InterestedRegion(user, regionFixture.영미권()));
8181

8282
// when
83-
UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user);
83+
UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user.getId());
8484

8585
// then
8686
assertThat(response.recommendedUniversities())
@@ -99,7 +99,7 @@ void setUp() {
9999
interestedCountryRepository.save(new InterestedCountry(user, countryFixture.덴마크()));
100100

101101
// when
102-
UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user);
102+
UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user.getId());
103103

104104
// then
105105
assertThat(response.recommendedUniversities())
@@ -117,7 +117,7 @@ void setUp() {
117117
interestedCountryRepository.save(new InterestedCountry(user, countryFixture.덴마크()));
118118

119119
// when
120-
UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user);
120+
UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user.getId());
121121

122122
// then
123123
assertThat(response.recommendedUniversities())
@@ -135,7 +135,7 @@ void setUp() {
135135
@Test
136136
void 관심사_미설정_사용자는_일반_추천_대학_지원_정보를_조회한다() {
137137
// when
138-
UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user);
138+
UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user.getId());
139139

140140
// then
141141
assertThat(response.recommendedUniversities())

0 commit comments

Comments
 (0)