Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.server.eventee.domain.event.model.Event;
import com.server.eventee.domain.event.model.MemberEvent;
import com.server.eventee.domain.event.model.MemberEvent.MemberEventRole;
import com.server.eventee.domain.event.repository.MemberEventRepository;
import com.server.eventee.domain.group.model.Group;
import com.server.eventee.domain.member.model.Member;
import com.server.eventee.domain.post.model.Post;
Expand All @@ -15,16 +16,14 @@
import java.util.ArrayList;
import java.util.List;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

@Component
@RequiredArgsConstructor
public class EventConverter {
private final MemberEventRepository memberEventRepository;

// private static final String DEFAULT_EVENT_THUMBNAIL =
// "https://eventee-bucket.s3.ap-northeast-2.amazonaws.com/event/defaultEventImage.png";

// private static final String DEFAULT_GROUP_IMAGE =
// "https://eventee-bucket.s3.ap-northeast-2.amazonaws.com/group/defaultGroupImage.png";

public Event toEvent(String inviteCode, String title, String description,
String password, LocalDateTime startAt, LocalDateTime endAt, Integer teamCount) {
Expand Down Expand Up @@ -110,11 +109,17 @@ public EventResponse.EventWithGroupsResponse toEventWithGroupsResponse(Event eve
.build();
}

public EventResponse.GroupPostsResponse toGroupPostsResponse(Group group, List<Post> posts, Member member) {
public EventResponse.GroupPostsResponse toGroupPostsResponse(
Group group,
List<Post> posts,
Member member
) {

Long eventId = group.getEvent().getId();

List<EventResponse.GroupPostsResponse.PostInfo> postInfos =
posts.stream()
.map(post -> convertPostToDto(post, member))
.map(post -> convertPostToDto(post, member, eventId))
.toList();

return EventResponse.GroupPostsResponse.builder()
Expand All @@ -124,10 +129,24 @@ public EventResponse.GroupPostsResponse toGroupPostsResponse(Group group, List<P
.build();
}

private EventResponse.GroupPostsResponse.PostInfo convertPostToDto(Post post, Member currentUser) {

private EventResponse.GroupPostsResponse.PostInfo convertPostToDto(
Post post,
Member currentUser,
Long eventId
) {

boolean isMinePost = post.getMember().getId().equals(currentUser.getId());

String author = post.getMember().getNickname();

MemberEvent me = memberEventRepository
.findByMemberAndEventAndIsDeletedFalse(post.getMember(), post.getGroup().getEvent())
.orElse(null);

String writerNickname = me != null ? me.getNickname() : null;
String writerProfileUrl = post.getMember().getProfileImageUrl();

List<EventResponse.GroupPostsResponse.CommentInfo> comments =
convertComments(post.getComments(), currentUser);

Expand Down Expand Up @@ -182,7 +201,9 @@ private EventResponse.GroupPostsResponse.PostInfo convertPostToDto(Post post, Me

return EventResponse.GroupPostsResponse.PostInfo.builder()
.postId(post.getPostId())
.author(post.getMember().getNickname())
.author(author)
.writerNickname(writerNickname)
.writerProfileUrl(writerProfileUrl)
.content(post.getContent())
.type(post.getPostType().type.toLowerCase())
.createdAt(post.getCreatedAt())
Expand All @@ -194,6 +215,7 @@ private EventResponse.GroupPostsResponse.PostInfo convertPostToDto(Post post, Me
.build();
}


private List<EventResponse.GroupPostsResponse.CommentInfo> convertComments(
List<Comment> comments,
Member currentUser
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,15 @@ public record GroupPostsResponse(
@Schema(description = "포스트 정보 DTO")
public record PostInfo(
@Schema(description = "게시글 ID") Long postId,
@Schema(description = "작성자 닉네임") String author,
@Schema(description = "작성자 이름") String author,
@Schema(description = "내용") String content,
@Schema(description = "포스트 타입 (text / vote)") String type,
@Schema(description = "작성일") LocalDateTime createdAt,

@Schema(description = "포스트 작성자 프로필 이미지") String writerProfileUrl,
@Schema(description = "포스트 작성자 닉네임") String writerNickname,


@Schema(description = "댓글 리스트") List<CommentInfo> comments,

// 투표
Expand Down