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 5213b327..fa28ec0e 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; @@ -21,6 +23,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; @@ -180,7 +183,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..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 @@ -1,25 +1,26 @@ 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; 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(), post.getImageUrl(), post.isAnonymous() ); } + + } \ 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 ) { 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); + } +} +