From 209b197d8122579d6feb2cceaac48ad600df78d7 Mon Sep 17 00:00:00 2001 From: parkheeddong Date: Sat, 13 Jan 2024 05:16:25 +0900 Subject: [PATCH 1/3] =?UTF-8?q?#92=20[feat]=20=EA=B8=80=EA=B0=90=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=EC=99=80=20=ED=95=B4=EB=8B=B9=20?= =?UTF-8?q?=EA=B8=80=EA=B0=90=EC=9D=84=20=EC=84=A0=ED=83=9D=ED=96=88?= =?UTF-8?q?=EB=8A=94=EC=A7=80=20=EC=97=AC=EB=B6=80=EC=97=90=20=EB=8C=80?= =?UTF-8?q?=ED=95=9C=20DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/ContentWithIsSelectedResponse.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 module-domain/src/main/java/com/mile/topic/service/dto/ContentWithIsSelectedResponse.java diff --git a/module-domain/src/main/java/com/mile/topic/service/dto/ContentWithIsSelectedResponse.java b/module-domain/src/main/java/com/mile/topic/service/dto/ContentWithIsSelectedResponse.java new file mode 100644 index 00000000..233ecd06 --- /dev/null +++ b/module-domain/src/main/java/com/mile/topic/service/dto/ContentWithIsSelectedResponse.java @@ -0,0 +1,17 @@ +package com.mile.topic.service.dto; + +import com.mile.topic.domain.Topic; + +public record ContentWithIsSelectedResponse( + Long topicid, + String topicName, + boolean isSelected +) { + public static ContentWithIsSelectedResponse of( + final Topic topic, + final boolean isSelected + ) { + return new ContentWithIsSelectedResponse(topic.getId(), topic.getContent(), isSelected); + } +} + From c7e29102c9b94013827ef3bef83f7a9fd8f2ac5b Mon Sep 17 00:00:00 2001 From: parkheeddong Date: Sat, 13 Jan 2024 05:18:32 +0900 Subject: [PATCH 2/3] =?UTF-8?q?#92=20[feat]=20=EA=B8=80=EA=B0=90=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=EC=99=80=20=EC=84=A0=ED=83=9D=EC=97=AC?= =?UTF-8?q?=EB=B6=80=EB=A5=BC=20=EC=B0=BE=EC=95=84=20=EB=B0=98=ED=99=98?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EB=A1=9C=EC=A7=81=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mile/post/service/PostService.java | 7 +++++- .../service/dto/TemporaryPostGetResponse.java | 22 +++++++++++++------ .../com/mile/topic/service/TopicService.java | 15 +++++++++++++ 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/module-domain/src/main/java/com/mile/post/service/PostService.java b/module-domain/src/main/java/com/mile/post/service/PostService.java index 580cf0fd..e693be20 100644 --- a/module-domain/src/main/java/com/mile/post/service/PostService.java +++ b/module-domain/src/main/java/com/mile/post/service/PostService.java @@ -8,6 +8,8 @@ import com.mile.exception.model.BadRequestException; import com.mile.exception.model.NotFoundException; import com.mile.moim.domain.Moim; +import com.mile.moim.service.MoimService; +import com.mile.moim.service.dto.ContentListResponse; import com.mile.post.domain.Post; import com.mile.post.repository.PostRepository; import com.mile.post.service.dto.CommentCreateRequest; @@ -20,6 +22,7 @@ import com.mile.post.service.dto.WriterAuthenticateResponse; import com.mile.topic.domain.Topic; import com.mile.topic.service.TopicService; +import com.mile.topic.service.dto.ContentWithIsSelectedResponse; import com.mile.user.service.UserService; import com.mile.writerName.domain.WriterName; import com.mile.writerName.service.WriterNameService; @@ -175,7 +178,9 @@ public TemporaryPostGetResponse getTemporaryPost( Post post = findById(postId); postAuthenticateService.authenticateUserWithPost(post, userId); isPostTemporary(post); - return TemporaryPostGetResponse.of(post); + + List contentResponse = topicService.getContentsWithIsSelectedFromMoim(post.getTopic().getMoim().getId(), post.getTopic().getId()); + return TemporaryPostGetResponse.of(post, contentResponse); } private void isPostTemporary( diff --git a/module-domain/src/main/java/com/mile/post/service/dto/TemporaryPostGetResponse.java b/module-domain/src/main/java/com/mile/post/service/dto/TemporaryPostGetResponse.java index e6502253..36dc72d1 100644 --- a/module-domain/src/main/java/com/mile/post/service/dto/TemporaryPostGetResponse.java +++ b/module-domain/src/main/java/com/mile/post/service/dto/TemporaryPostGetResponse.java @@ -1,25 +1,33 @@ package com.mile.post.service.dto; -import com.mile.moim.domain.Moim; import com.mile.post.domain.Post; -import com.mile.utils.DateUtil; +import com.mile.topic.service.dto.ContentWithIsSelectedResponse; +import java.util.List; +import org.jsoup.Jsoup; +import org.jsoup.safety.Whitelist; public record TemporaryPostGetResponse( - TemporaryPostTopicGetResponse topic, + List topicList, String title, String content, String imageUrl, boolean anonymous ) { - public static TemporaryPostGetResponse of(Post post) { - + public static TemporaryPostGetResponse of(Post post, List contentResponse) { return new TemporaryPostGetResponse( - TemporaryPostTopicGetResponse.of(post.getTopic()), + contentResponse, post.getTitle(), - post.getContent(), + getCleanContent(post.getContent()), post.getImageUrl(), post.isAnonymous() ); } + + private static String getCleanContent( + String content + ) { + return Jsoup.clean(content, Whitelist.none()); + } + } \ No newline at end of file diff --git a/module-domain/src/main/java/com/mile/topic/service/TopicService.java b/module-domain/src/main/java/com/mile/topic/service/TopicService.java index ebc6183d..2e1c1123 100644 --- a/module-domain/src/main/java/com/mile/topic/service/TopicService.java +++ b/module-domain/src/main/java/com/mile/topic/service/TopicService.java @@ -9,6 +9,7 @@ import com.mile.topic.domain.Topic; import com.mile.topic.repository.TopicRepository; import com.mile.topic.service.dto.ContentResponse; +import com.mile.topic.service.dto.ContentWithIsSelectedResponse; import com.mile.topic.service.dto.PostListInTopicResponse; import com.mile.topic.service.dto.TopicOfMoimResponse; import com.mile.topic.service.dto.TopicResponse; @@ -37,6 +38,20 @@ public List getContentsFromMoim( .collect(Collectors.toList()); } + public List getContentsWithIsSelectedFromMoim( + final Long moimId, + final Long selectedTopicId + ) { + List topicList = sortByCreatedAt(findByMoimId(moimId)); + isContentsEmpty(topicList); + + return topicList.stream() + .map(topic -> ContentWithIsSelectedResponse.of(topic, topic.getId().equals(selectedTopicId))) + .collect(Collectors.toList()); + } + + + private void isContentsEmpty( final List topicList ) { From fd04d011f1825bedd305fa865c17c7a0ae3e952b Mon Sep 17 00:00:00 2001 From: parkheeddong Date: Sat, 13 Jan 2024 15:36:27 +0900 Subject: [PATCH 3/3] =?UTF-8?q?#92=20[refactor]=20html=20=ED=83=9C?= =?UTF-8?q?=EA=B7=B8=20=EA=B7=B8=EB=8C=80=EB=A1=9C=20=EC=A0=81=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mile/post/service/dto/TemporaryPostGetResponse.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/module-domain/src/main/java/com/mile/post/service/dto/TemporaryPostGetResponse.java b/module-domain/src/main/java/com/mile/post/service/dto/TemporaryPostGetResponse.java index 36dc72d1..d6b09867 100644 --- a/module-domain/src/main/java/com/mile/post/service/dto/TemporaryPostGetResponse.java +++ b/module-domain/src/main/java/com/mile/post/service/dto/TemporaryPostGetResponse.java @@ -3,8 +3,6 @@ import com.mile.post.domain.Post; import com.mile.topic.service.dto.ContentWithIsSelectedResponse; import java.util.List; -import org.jsoup.Jsoup; -import org.jsoup.safety.Whitelist; public record TemporaryPostGetResponse( @@ -18,16 +16,11 @@ public static TemporaryPostGetResponse of(Post post, List