Skip to content

Commit

Permalink
[refactor] 댓글 생성 시 OFFICIAL 댓글 생성 로직 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
chahyunsoo committed Aug 13, 2024
1 parent 03159a1 commit e65cb28
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import ussum.homepage.domain.group.Group;
import ussum.homepage.domain.group.service.GroupReader;
import ussum.homepage.domain.member.Member;
import ussum.homepage.domain.member.service.MemberManager;
import ussum.homepage.domain.member.service.MemberReader;
import ussum.homepage.infra.jpa.comment.entity.CommentType;

Expand All @@ -29,8 +30,8 @@ public class CommentService {
private final PostCommentFormatter postCommentFormatter;
private final PostCommentAppender postCommentAppender;
private final PostCommentModifier postCommentModifier;
private final GroupReader groupReader;
private final MemberReader memberReader;
private final MemberManager memberManager;

public PostCommentListResponse getCommentList(Long postId, int page, int take, String type){
Page<PostComment> commentList = postCommentReader.getPostCommentList(setPageable(page, take), postId);
Expand All @@ -39,13 +40,7 @@ public PostCommentListResponse getCommentList(Long postId, int page, int take, S

@Transactional
public PostCommentResponse createComment(Long userId, Long postId, PostCommentCreateRequest postCommentCreateRequest) {
String commentType = CommentType.GENERAL.getStringCommentType();
Member member = memberReader.getMemberWithUserId(userId);
Group group = groupReader.getGroupByGroupId(member.getGroupId());
if (group.getGroupCode().equals("중앙운영위원회")) {
commentType = CommentType.OFFICIAL.getStringCommentType();
}

String commentType = memberManager.getCommentType(userId);
PostComment postComment = postCommentAppender.createPostComment(postCommentCreateRequest.toDomain(userId, postId, commentType));
return postCommentFormatter.format(postComment, userId);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@

public interface MemberRepository {
Optional<Member> findByUserId(Long userId);
Optional<Member> findCentralOperationCommitteeMember(Long userId);

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import ussum.homepage.domain.member.MemberRepository;
import ussum.homepage.infra.jpa.comment.entity.CommentType;


@Service
Expand All @@ -16,4 +17,10 @@ public Boolean validMemberWithUserId(Long userId) {
.orElse(false);
}

public String getCommentType(Long userId) {
return memberRepository.findCentralOperationCommitteeMember(userId)
.map(member -> CommentType.OFFICIAL.getStringCommentType())
.orElse(CommentType.GENERAL.getStringCommentType());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import ussum.homepage.domain.member.MemberRepository;
import ussum.homepage.domain.member.exception.MemberNotFoundException;

import java.util.Optional;

import static ussum.homepage.global.error.status.ErrorStatus.MEMBER_NOT_FOUND;

@Service
Expand All @@ -16,4 +18,5 @@ public class MemberReader {
public Member getMemberWithUserId(Long userId) {
return memberRepository.findByUserId(userId).orElseThrow(() -> new MemberNotFoundException(MEMBER_NOT_FOUND));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,15 @@ public class MemberRepositoryImpl implements MemberRepository {
private final MemberJpaRepository memberJpaRepository;
private final MemberMapper memberMapper;


@Override
public Optional<Member> findByUserId(Long userId) {
return memberJpaRepository.findByUserId(userId).map(memberMapper::toDomain);
}

// MemberCode가 CENTRAL_OPERATION_COMMITTEE인 경우의 Member를 반환
public Optional<Member> findCentralOperationCommitteeMember(Long userId) {
return memberJpaRepository.findByUserId(userId)
.map(memberMapper::toDomain)
.filter(member -> "CENTRAL_OPERATION_COMMITTEE".equals(member.getMemberCode()));
}
}

0 comments on commit e65cb28

Please sign in to comment.