diff --git a/backend/streetdrop-api/src/test/java/unit/apis/item/controller/ItemControllerTest.java b/backend/streetdrop-api/src/test/java/unit/apis/item/controller/ItemControllerTest.java index 7afabfb6..63ce13c3 100644 --- a/backend/streetdrop-api/src/test/java/unit/apis/item/controller/ItemControllerTest.java +++ b/backend/streetdrop-api/src/test/java/unit/apis/item/controller/ItemControllerTest.java @@ -425,6 +425,7 @@ void findNearItemsTestSuccess1() throws Exception { new MusicResponseDto("title", "artist", "/albumImage.jpg", List.of("genre")), "사용자 코멘트", LocalDateTime.of(2023, 5, 26, 12, 0), + false, 1 ) ) @@ -466,6 +467,7 @@ void findNearItemsTestSuccess2() throws Exception { new MusicResponseDto("title", "artist", "/albumImage.jpg", List.of("genre")), "사용자 코멘트", LocalDateTime.of(2023, 5, 26, 12, 0), + false, 1 ) ) diff --git a/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/dto/response/ItemsResponseDto.java b/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/dto/response/ItemsResponseDto.java index 70605ca8..ff06977e 100644 --- a/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/dto/response/ItemsResponseDto.java +++ b/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/dto/response/ItemsResponseDto.java @@ -34,6 +34,9 @@ public record ItemDetailDto( ) LocalDateTime createdAt, + @Schema(description = "아이템 좋아요 여부", example = "true") + boolean isLiked, + @Schema(description = "아이템 좋아요 개수", example = "100") int itemLikeCount ) { @@ -45,6 +48,7 @@ public ItemDetailDto(Item item) { new MusicResponseDto(item), item.getContent(), item.getCreatedAt(), + item.isLiked(item.getUser()), item.getItemLikeCount() ); } diff --git a/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/entity/Item.java b/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/entity/Item.java index e1df8c18..7d58a13d 100644 --- a/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/entity/Item.java +++ b/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/entity/Item.java @@ -61,4 +61,9 @@ public void setItemLocation(ItemLocation itemLocation) { public int getItemLikeCount() { return likes != null ? likes.size() : 0; } + + public boolean isLiked(User user) { + return likes != null && likes.stream().anyMatch(like -> like.isLiked(user)); + } + } diff --git a/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/entity/ItemLike.java b/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/entity/ItemLike.java index 5d65a19c..1d0ff781 100644 --- a/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/entity/ItemLike.java +++ b/backend/streetdrop-core/src/main/java/com/depromeet/domains/item/entity/ItemLike.java @@ -30,4 +30,9 @@ public ItemLike(Item item, User user) { this.item = item; this.user = user; } + + public boolean isLiked(User user) { + return user.equals(user); + } + }