Skip to content

Commit 1ca6126

Browse files
authored
refactor: '좋아요'용어 통일 및 회의에서 논의된 내용 적용 (#383)
* refactor: 함수명 통일 wish -> liked * refactor: 대학지원정보 좋아요 시, 200만 반환하도록 - 회의에서 논의된 내용대로 통일 * refactor: 누락된 용어 통일 수정 * refactor: 좋아요한 대학지원정보 목록 조회 함수 이동 - MyPageService에서 UnivApplyInfoLikeService 로 * refactor: 대학 지원 정보 좋아요 서비스 이름 변경
1 parent cda7a68 commit 1ca6126

File tree

5 files changed

+73
-89
lines changed

5 files changed

+73
-89
lines changed

src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,15 @@
66
import com.example.solidconnection.s3.service.S3Service;
77
import com.example.solidconnection.siteuser.domain.SiteUser;
88
import com.example.solidconnection.siteuser.dto.MyPageResponse;
9-
import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository;
109
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
11-
import com.example.solidconnection.university.domain.UnivApplyInfo;
12-
import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse;
10+
import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository;
1311
import lombok.RequiredArgsConstructor;
1412
import org.springframework.stereotype.Service;
1513
import org.springframework.transaction.annotation.Transactional;
1614
import org.springframework.web.multipart.MultipartFile;
1715

1816
import java.time.LocalDateTime;
1917
import java.time.format.DateTimeFormatter;
20-
import java.util.List;
2118

2219
import static com.example.solidconnection.common.exception.ErrorCode.CAN_NOT_CHANGE_NICKNAME_YET;
2320
import static com.example.solidconnection.common.exception.ErrorCode.NICKNAME_ALREADY_EXISTED;
@@ -89,16 +86,4 @@ private boolean isDefaultProfileImage(String profileImageUrl) {
8986
String prefix = "profile/";
9087
return profileImageUrl == null || !profileImageUrl.startsWith(prefix);
9188
}
92-
93-
/*
94-
* 관심 대학교 목록을 조회한다.
95-
* */
96-
@Transactional(readOnly = true)
97-
public List<UnivApplyInfoPreviewResponse> getWishUnivApplyInfo(SiteUser siteUser) {
98-
List<UnivApplyInfo> univApplyInfos = likedUnivApplyInfoRepository.findUnivApplyInfosBySiteUserId(siteUser.getId());
99-
100-
return univApplyInfos.stream()
101-
.map(UnivApplyInfoPreviewResponse::from)
102-
.toList();
103-
}
10489
}

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

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@
22

33
import com.example.solidconnection.common.resolver.AuthorizedUser;
44
import com.example.solidconnection.siteuser.domain.SiteUser;
5-
import com.example.solidconnection.siteuser.service.MyPageService;
65
import com.example.solidconnection.university.domain.LanguageTestType;
76
import com.example.solidconnection.university.dto.IsLikeResponse;
8-
import com.example.solidconnection.university.dto.LikeResultResponse;
97
import com.example.solidconnection.university.dto.UnivApplyInfoDetailResponse;
108
import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse;
119
import com.example.solidconnection.university.dto.UnivApplyInfoRecommendsResponse;
12-
import com.example.solidconnection.university.service.UnivApplyInfoLikeService;
10+
import com.example.solidconnection.university.service.LikedUnivApplyInfoService;
1311
import com.example.solidconnection.university.service.UnivApplyInfoQueryService;
1412
import com.example.solidconnection.university.service.UnivApplyInfoRecommendService;
1513
import lombok.RequiredArgsConstructor;
@@ -30,9 +28,8 @@
3028
public class UnivApplyInfoController {
3129

3230
private final UnivApplyInfoQueryService univApplyInfoQueryService;
33-
private final UnivApplyInfoLikeService univApplyInfoLikeService;
31+
private final LikedUnivApplyInfoService likedUnivApplyInfoService;
3432
private final UnivApplyInfoRecommendService univApplyInfoRecommendService;
35-
private final MyPageService myPageService;
3633

3734
@GetMapping("/recommend")
3835
public ResponseEntity<UnivApplyInfoRecommendsResponse> getUnivApplyInfoRecommends(
@@ -47,38 +44,38 @@ public ResponseEntity<UnivApplyInfoRecommendsResponse> getUnivApplyInfoRecommend
4744

4845
// todo: return 타입 UnivApplyInfoPreviewResponses 같이 객체로 묶어서 반환하는 것으로 변경 필요
4946
@GetMapping("/like")
50-
public ResponseEntity<List<UnivApplyInfoPreviewResponse>> getMyWishUnivApplyInfo( /* todo: wish 가 아니라 liked 로 변경 필요 - 코드 용어 통일 */
47+
public ResponseEntity<List<UnivApplyInfoPreviewResponse>> getLikedUnivApplyInfos(
5148
@AuthorizedUser SiteUser siteUser
5249
) {
53-
List<UnivApplyInfoPreviewResponse> wishUniversities = myPageService.getWishUnivApplyInfo(siteUser);
54-
return ResponseEntity.ok(wishUniversities);
50+
List<UnivApplyInfoPreviewResponse> likedUnivApplyInfos = likedUnivApplyInfoService.getLikedUnivApplyInfos(siteUser);
51+
return ResponseEntity.ok(likedUnivApplyInfos);
5552
}
5653

5754
@GetMapping("/{univ-apply-info-id}/like")
58-
public ResponseEntity<IsLikeResponse> getIsLiked(
55+
public ResponseEntity<IsLikeResponse> isUnivApplyInfoLiked(
5956
@AuthorizedUser SiteUser siteUser,
6057
@PathVariable("univ-apply-info-id") Long univApplyInfoId
6158
) {
62-
IsLikeResponse isLiked = univApplyInfoLikeService.getIsLiked(siteUser, univApplyInfoId);
59+
IsLikeResponse isLiked = likedUnivApplyInfoService.isUnivApplyInfoLiked(siteUser, univApplyInfoId);
6360
return ResponseEntity.ok(isLiked);
6461
}
6562

6663
@PostMapping("/{univ-apply-info-id}/like")
67-
public ResponseEntity<LikeResultResponse> addWishUnivApplyInfo(
64+
public ResponseEntity<Void> addUnivApplyInfoLike(
6865
@AuthorizedUser SiteUser siteUser,
6966
@PathVariable("univ-apply-info-id") Long univApplyInfoId
7067
) {
71-
LikeResultResponse likeResultResponse = univApplyInfoLikeService.likeUnivApplyInfo(siteUser, univApplyInfoId);
72-
return ResponseEntity.ok(likeResultResponse);
68+
likedUnivApplyInfoService.addUnivApplyInfoLike(siteUser, univApplyInfoId);
69+
return ResponseEntity.ok().build();
7370
}
7471

7572
@DeleteMapping("/{univ-apply-info-id}/like")
76-
public ResponseEntity<LikeResultResponse> cancelWishUnivApplyInfo(
73+
public ResponseEntity<Void> cancelUnivApplyInfoLike(
7774
@AuthorizedUser SiteUser siteUser,
7875
@PathVariable("univ-apply-info-id") Long univApplyInfoId
7976
) {
80-
LikeResultResponse likeResultResponse = univApplyInfoLikeService.cancelLikeUnivApplyInfo(siteUser, univApplyInfoId);
81-
return ResponseEntity.ok(likeResultResponse);
77+
likedUnivApplyInfoService.cancelUnivApplyInfoLike(siteUser, univApplyInfoId);
78+
return ResponseEntity.ok().build();
8279
}
8380

8481
@GetMapping("/{univ-apply-info-id}")

src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java renamed to src/main/java/com/example/solidconnection/university/service/LikedUnivApplyInfoService.java

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,49 @@
22

33
import com.example.solidconnection.common.exception.CustomException;
44
import com.example.solidconnection.siteuser.domain.SiteUser;
5-
import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository;
65
import com.example.solidconnection.university.domain.LikedUnivApplyInfo;
76
import com.example.solidconnection.university.domain.UnivApplyInfo;
87
import com.example.solidconnection.university.dto.IsLikeResponse;
9-
import com.example.solidconnection.university.dto.LikeResultResponse;
8+
import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse;
9+
import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository;
1010
import com.example.solidconnection.university.repository.UnivApplyInfoRepository;
1111
import lombok.RequiredArgsConstructor;
1212
import org.springframework.beans.factory.annotation.Value;
1313
import org.springframework.stereotype.Service;
1414
import org.springframework.transaction.annotation.Transactional;
1515

16+
import java.util.List;
1617
import java.util.Optional;
1718

1819
import static com.example.solidconnection.common.exception.ErrorCode.ALREADY_LIKED_UNIV_APPLY_INFO;
1920
import static com.example.solidconnection.common.exception.ErrorCode.NOT_LIKED_UNIV_APPLY_INFO;
2021

2122
@RequiredArgsConstructor
2223
@Service
23-
public class UnivApplyInfoLikeService {
24-
25-
public static final String LIKE_SUCCESS_MESSAGE = "LIKE_SUCCESS";
26-
public static final String LIKE_CANCELED_MESSAGE = "LIKE_CANCELED";
24+
public class LikedUnivApplyInfoService {
2725

2826
private final UnivApplyInfoRepository univApplyInfoRepository;
2927
private final LikedUnivApplyInfoRepository likedUnivApplyInfoRepository;
3028

3129
@Value("${university.term}")
3230
public String term;
3331

32+
/*
33+
* '좋아요'한 대학교 목록을 조회한다.
34+
* */
35+
@Transactional(readOnly = true)
36+
public List<UnivApplyInfoPreviewResponse> getLikedUnivApplyInfos(SiteUser siteUser) {
37+
List<UnivApplyInfo> univApplyInfos = likedUnivApplyInfoRepository.findUnivApplyInfosBySiteUserId(siteUser.getId());
38+
return univApplyInfos.stream()
39+
.map(UnivApplyInfoPreviewResponse::from)
40+
.toList();
41+
}
42+
3443
/*
3544
* 대학교를 '좋아요' 한다.
3645
* */
3746
@Transactional
38-
public LikeResultResponse likeUnivApplyInfo(SiteUser siteUser, Long univApplyInfoId) {
47+
public void addUnivApplyInfoLike(SiteUser siteUser, Long univApplyInfoId) {
3948
UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId);
4049

4150
Optional<LikedUnivApplyInfo> optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId());
@@ -48,14 +57,13 @@ public LikeResultResponse likeUnivApplyInfo(SiteUser siteUser, Long univApplyInf
4857
.siteUserId(siteUser.getId())
4958
.build();
5059
likedUnivApplyInfoRepository.save(likedUnivApplyInfo);
51-
return new LikeResultResponse(LIKE_SUCCESS_MESSAGE);
5260
}
5361

5462
/*
5563
* 대학교 '좋아요'를 취소한다.
5664
* */
5765
@Transactional
58-
public LikeResultResponse cancelLikeUnivApplyInfo(SiteUser siteUser, long univApplyInfoId) {
66+
public void cancelUnivApplyInfoLike(SiteUser siteUser, long univApplyInfoId) {
5967
UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId);
6068

6169
Optional<LikedUnivApplyInfo> optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId());
@@ -64,14 +72,13 @@ public LikeResultResponse cancelLikeUnivApplyInfo(SiteUser siteUser, long univAp
6472
}
6573

6674
likedUnivApplyInfoRepository.delete(optionalLikedUnivApplyInfo.get());
67-
return new LikeResultResponse(LIKE_CANCELED_MESSAGE);
6875
}
6976

7077
/*
7178
* '좋아요'한 대학교인지 확인한다.
7279
* */
7380
@Transactional(readOnly = true)
74-
public IsLikeResponse getIsLiked(SiteUser siteUser, Long univApplyInfoId) {
81+
public IsLikeResponse isUnivApplyInfoLiked(SiteUser siteUser, Long univApplyInfoId) {
7582
UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId);
7683
boolean isLike = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId()).isPresent();
7784
return new IsLikeResponse(isLike);

src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@
1010
import com.example.solidconnection.siteuser.dto.MyPageResponse;
1111
import com.example.solidconnection.siteuser.fixture.SiteUserFixture;
1212
import com.example.solidconnection.siteuser.fixture.SiteUserFixtureBuilder;
13-
import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository;
1413
import com.example.solidconnection.siteuser.repository.SiteUserRepository;
1514
import com.example.solidconnection.support.TestContainerSpringBootTest;
1615
import com.example.solidconnection.university.domain.LikedUnivApplyInfo;
17-
import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse;
1816
import com.example.solidconnection.university.fixture.UnivApplyInfoFixture;
17+
import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository;
1918
import org.junit.jupiter.api.Assertions;
2019
import org.junit.jupiter.api.BeforeEach;
2120
import org.junit.jupiter.api.DisplayName;
@@ -26,7 +25,6 @@
2625
import org.springframework.mock.web.MockMultipartFile;
2726

2827
import java.time.LocalDateTime;
29-
import java.util.List;
3028

3129
import static com.example.solidconnection.common.exception.ErrorCode.CAN_NOT_CHANGE_NICKNAME_YET;
3230
import static com.example.solidconnection.siteuser.service.MyPageService.MIN_DAYS_BETWEEN_NICKNAME_CHANGES;
@@ -93,18 +91,6 @@ void setUp() {
9391
);
9492
}
9593

96-
@Test
97-
void 관심_대학_지원_정보_목록을_조회한다() {
98-
// given
99-
int likedUnivApplyInfo = createLikedUnivApplyInfos(user);
100-
101-
// when
102-
List<UnivApplyInfoPreviewResponse> response = myPageService.getWishUnivApplyInfo(user);
103-
104-
// then
105-
assertThat(response).hasSize(likedUnivApplyInfo);
106-
}
107-
10894
@Nested
10995
class 프로필_이미지_수정_테스트 {
11096

0 commit comments

Comments
 (0)