diff --git a/backend/src/main/java/com/votogether/domain/post/dto/response/PostOptionResponse.java b/backend/src/main/java/com/votogether/domain/post/dto/response/PostOptionResponse.java index 78b3d6153..c78818946 100644 --- a/backend/src/main/java/com/votogether/domain/post/dto/response/PostOptionResponse.java +++ b/backend/src/main/java/com/votogether/domain/post/dto/response/PostOptionResponse.java @@ -6,6 +6,7 @@ public record PostOptionResponse( Long optionId, String content, + String imageUrl, Integer voteCount, Double votePercent ) { @@ -16,11 +17,16 @@ public static PostOptionResponse of(final Post post, final PostOption postOption return new PostOptionResponse( postOption.getId(), postOption.getContent(), + convertImageUrl(postOption.getImageUrl()), post.isClosed() ? postOption.getVoteCount() : HIDDEN_COUNT, post.isClosed() ? ((double) postOption.getVoteCount() / post.getTotalVoteCount()) * 100 : HIDDEN_COUNT ); } + private static String convertImageUrl(final String imageUrl) { + return imageUrl == null || imageUrl.contains("없는사진") ? "" : imageUrl; + } + public static PostOptionResponse of( final PostOption postOption, final boolean isVisibleVoteResult, @@ -29,6 +35,7 @@ public static PostOptionResponse of( return new PostOptionResponse( postOption.getId(), postOption.getContent(), + convertImageUrl(postOption.getImageUrl()), postOption.getVoteCount(isVisibleVoteResult), postOption.getVotePercent(totalVoteCount) ); diff --git a/backend/src/main/java/com/votogether/domain/post/dto/response/PostResponse.java b/backend/src/main/java/com/votogether/domain/post/dto/response/PostResponse.java index f561c3f2d..45368b1c5 100644 --- a/backend/src/main/java/com/votogether/domain/post/dto/response/PostResponse.java +++ b/backend/src/main/java/com/votogether/domain/post/dto/response/PostResponse.java @@ -6,6 +6,7 @@ import com.votogether.domain.post.entity.Post; import com.votogether.domain.post.entity.PostBody; import com.votogether.domain.post.entity.PostCategory; +import com.votogether.domain.post.entity.PostContentImage; import io.swagger.v3.oas.annotations.media.Schema; import java.time.LocalDateTime; import java.util.List; @@ -16,6 +17,7 @@ public record PostResponse( WriterResponse writer, String title, String content, + String imageUrl, List categories, @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm") @@ -30,12 +32,19 @@ public record PostResponse( public static PostResponse of(final Post post, final Member loginMember) { final Member writer = post.getWriter(); final PostBody postBody = post.getPostBody(); + final List contentImages = postBody.getPostContentImages().getContentImages(); + final StringBuilder contentImageUrl = new StringBuilder(); + + if (!contentImages.isEmpty()) { + contentImageUrl.append(contentImages.get(0).getImageUrl()); + } return new PostResponse( post.getId(), WriterResponse.of(writer.getId(), writer.getNickname()), postBody.getTitle(), postBody.getContent(), + convertImageUrl(contentImageUrl.toString()), getCategories(post), post.getCreatedAt(), post.getDeadline(), @@ -47,6 +56,10 @@ public static PostResponse of(final Post post, final Member loginMember) { ); } + private static String convertImageUrl(final String imageUrl) { + return imageUrl == null || imageUrl.contains("없는사진") ? "" : imageUrl; + } + private static List getCategories(final Post post) { return post.getPostCategories() .getPostCategories() @@ -74,11 +87,20 @@ private static List getOptions( } public static PostResponse forGuest(final Post post) { + final PostBody postBody = post.getPostBody(); + final List contentImages = postBody.getPostContentImages().getContentImages(); + final StringBuilder contentImageUrl = new StringBuilder(); + + if (!contentImages.isEmpty()) { + contentImageUrl.append(contentImages.get(0).getImageUrl()); + } + return new PostResponse( post.getId(), WriterResponse.from(post.getWriter()), post.getPostBody().getTitle(), post.getPostBody().getContent(), + convertImageUrl(contentImageUrl.toString()), getCategories(post), post.getCreatedAt(), post.getDeadline(),