Skip to content

Commit 228ef81

Browse files
authored
3.5차 배포 [Fix] 좋아요추가수정 (#98) (#99)
2 parents 77d7279 + 586b676 commit 228ef81

7 files changed

Lines changed: 14 additions & 4 deletions

File tree

src/main/java/umc/codeplay/apiPayLoad/code/status/ErrorStatus.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public enum ErrorStatus implements BaseErrorCode {
3434
MUSIC_NOT_FOUND(HttpStatus.BAD_REQUEST, "MUSIC400", "음원을 찾을 수 없습니다."),
3535

3636
LIKE_NOT_FOUND(HttpStatus.BAD_REQUEST, "LIKE400", "해당 좋아요를 찾을 수 없습니다."),
37+
LIKE_ALREADY_EXIST(HttpStatus.BAD_REQUEST, "LIKE401", "이미 좋아요 목록에 추가된 음원입니다."),
3738

3839
EMAIL_SEND_ERROR(HttpStatus.BAD_REQUEST, "EMAIL400", "메일 발송에 실패하였습니다."),
3940
EMAIL_CODE_ERROR(HttpStatus.BAD_REQUEST, "EMAIL401", "유효한 코드가 아닙니다.");

src/main/java/umc/codeplay/converter/MusicLikeConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static LikeResponseDTO.addLikeResponseDTO toLikeResponseDTO(MusicLike lik
1717
return LikeResponseDTO.addLikeResponseDTO
1818
.builder()
1919
.musicId(like.getMusic().getId())
20-
.like(like)
20+
.musicLikeId(like.getId())
2121
.build();
2222
}
2323

src/main/java/umc/codeplay/domain/Member.java

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

77
import lombok.*;
88

9+
import com.fasterxml.jackson.annotation.JsonIgnore;
910
import umc.codeplay.domain.common.BaseEntity;
1011
import umc.codeplay.domain.enums.Role;
1112
import umc.codeplay.domain.enums.SocialStatus;
@@ -43,5 +44,6 @@ public void encodePassword(String password) {
4344
private String profileUrl;
4445

4546
@OneToMany(mappedBy = "member", cascade = CascadeType.ALL)
47+
@JsonIgnore
4648
private List<MusicLike> likeList = new ArrayList<>();
4749
}

src/main/java/umc/codeplay/domain/Music.java

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

77
import lombok.*;
88

9+
import com.fasterxml.jackson.annotation.JsonIgnore;
910
import umc.codeplay.domain.common.BaseEntity;
1011
import umc.codeplay.domain.mapping.MusicLike;
1112

@@ -30,5 +31,6 @@ public class Music extends BaseEntity {
3031
private String musicUrl;
3132

3233
@OneToMany(mappedBy = "music", cascade = CascadeType.ALL)
34+
@JsonIgnore
3335
private List<MusicLike> likeList = new ArrayList<>();
3436
}

src/main/java/umc/codeplay/dto/LikeResponseDTO.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import lombok.Getter;
66
import lombok.NoArgsConstructor;
77

8-
import umc.codeplay.domain.mapping.MusicLike;
9-
108
public class LikeResponseDTO {
119

1210
@Getter
@@ -15,7 +13,7 @@ public class LikeResponseDTO {
1513
@NoArgsConstructor
1614
public static class addLikeResponseDTO {
1715
Long musicId;
18-
MusicLike like;
16+
Long musicLikeId;
1917
}
2018

2119
@Getter

src/main/java/umc/codeplay/repository/MusicLikeRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@
1010

1111
public interface MusicLikeRepository extends JpaRepository<MusicLike, Long> {
1212
Optional<MusicLike> findByMemberAndMusic(Member member, Music music);
13+
14+
boolean existsByMemberAndMusic(Member member, Music music);
1315
}

src/main/java/umc/codeplay/service/LikeService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ public MusicLike addLike(String username, LikeRequestDTO.addLikeRequestDTO reque
3737
.findByEmail(username)
3838
.orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND));
3939

40+
// 중복 좋아요 방지
41+
if (musicLikeRepository.existsByMemberAndMusic(member, music)) {
42+
throw new GeneralException(ErrorStatus.LIKE_ALREADY_EXIST);
43+
}
44+
4045
MusicLike newLike = MusicLikeConverter.toMusicLike(member, music);
4146
return musicLikeRepository.save(newLike);
4247
}

0 commit comments

Comments
 (0)