From c9fa3596cae9cdc71d7ea4826560c4f7a3f76364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9A=B0=EC=B0=BD?= Date: Sun, 13 Aug 2023 02:21:38 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=EA=B8=80=20=EC=A0=84?= =?UTF-8?q?=EC=B2=B4=20=EC=A1=B0=ED=9A=8C=20=EC=8B=9C=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EA=B2=BD=EB=A1=9C=20=ED=8F=AC=ED=95=A8=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=20(#364)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: (#346) 코드 컨벤션 수정 * refactor: (#346) 게시글 응답 imageUrl 포함시키도록 수정 * fix: (#346) 빈 이미지 처리 수정 --- .../post/dto/response/PostOptionResponse.java | 7 ++++++ .../post/dto/response/PostResponse.java | 22 +++++++++++++++++++ .../response/detail/PostDetailResponse.java | 6 +---- .../detail/PostOptionDetailResponse.java | 6 +---- .../domain/post/service/PostService.java | 2 +- 5 files changed, 32 insertions(+), 11 deletions(-) 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..56668ff41 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; + } + 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..8899318e2 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; + } + 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(), diff --git a/backend/src/main/java/com/votogether/domain/post/dto/response/detail/PostDetailResponse.java b/backend/src/main/java/com/votogether/domain/post/dto/response/detail/PostDetailResponse.java index 11d1c9e80..1134e2890 100644 --- a/backend/src/main/java/com/votogether/domain/post/dto/response/detail/PostDetailResponse.java +++ b/backend/src/main/java/com/votogether/domain/post/dto/response/detail/PostDetailResponse.java @@ -42,7 +42,7 @@ public static PostDetailResponse of(final Post post, final Member loginMember) { WriterResponse.of(writer.getId(), writer.getNickname()), postBody.getTitle(), postBody.getContent(), - convertImageUrl(contentImageUrl.toString()), + contentImageUrl.toString(), getCategories(postCategories.getPostCategories()), post.getCreatedAt(), post.getDeadline(), @@ -54,10 +54,6 @@ public static PostDetailResponse of(final Post post, final Member loginMember) { ); } - private static String convertImageUrl(final String imageUrl) { - return imageUrl.contains("없는사진") ? "" : imageUrl; - } - private static List getCategories(final List postCategories) { return postCategories.stream() .map(PostCategory::getCategory) diff --git a/backend/src/main/java/com/votogether/domain/post/dto/response/detail/PostOptionDetailResponse.java b/backend/src/main/java/com/votogether/domain/post/dto/response/detail/PostOptionDetailResponse.java index 89105e6f0..01adac12c 100644 --- a/backend/src/main/java/com/votogether/domain/post/dto/response/detail/PostOptionDetailResponse.java +++ b/backend/src/main/java/com/votogether/domain/post/dto/response/detail/PostOptionDetailResponse.java @@ -18,14 +18,10 @@ public static PostOptionDetailResponse of( return new PostOptionDetailResponse( postOption.getId(), postOption.getContent(), - convertImageUrl(postOption.getImageUrl()), + postOption.getImageUrl(), postOption.getVoteCount(isVisibleVoteResult), postOption.getVotePercent(totalVoteCount) ); } - private static String convertImageUrl(final String imageUrl) { - return imageUrl.contains("없는사진") ? "" : imageUrl; - } - } diff --git a/backend/src/main/java/com/votogether/domain/post/service/PostService.java b/backend/src/main/java/com/votogether/domain/post/service/PostService.java index ad4b4ff0b..6da4207d6 100644 --- a/backend/src/main/java/com/votogether/domain/post/service/PostService.java +++ b/backend/src/main/java/com/votogether/domain/post/service/PostService.java @@ -307,7 +307,7 @@ public List searchPostsWithKeywordForGuest( final PostClosingType postClosingType, final PostSortType postSortType, final Long categoryId - ) { + ) { final Pageable pageable = PageRequest.of(page, BASIC_PAGING_SIZE); final List posts = postRepository.findAllWithKeyword(keyword, postClosingType, postSortType, categoryId, pageable);