diff --git a/back/src/main/java/com/back/domain/post/comment/controller/PostCommentController.java b/back/src/main/java/com/back/domain/post/comment/controller/PostCommentController.java index c6f8adca..fe15ae4b 100644 --- a/back/src/main/java/com/back/domain/post/comment/controller/PostCommentController.java +++ b/back/src/main/java/com/back/domain/post/comment/controller/PostCommentController.java @@ -5,6 +5,7 @@ import com.back.domain.post.comment.dto.CommentCreateRequest; import com.back.domain.post.comment.dto.CommentDeleteRequest; import com.back.domain.post.comment.dto.CommentModifyRequest; +import com.back.domain.post.comment.entity.PostComment; import com.back.domain.post.comment.service.PostCommentService; import com.back.global.rq.Rq; import com.back.global.rsData.RsData; @@ -75,4 +76,12 @@ public RsData adoptComment(@PathVariable Long commentId) { return new RsData<>("200", "댓글 채택 성공", null); } + @Operation(summary = "채택된 댓글 가져오기 ") + @GetMapping("isAdopted/{post_id}") + public RsData getAdoptComment(@PathVariable Long post_id) { + CommentAllResponse commentAllResponse = postCommentService.getAdoptedComment(post_id); + + return new RsData<>("200", "채택된 댓글 조회 성공", commentAllResponse); + } + } diff --git a/back/src/main/java/com/back/domain/post/comment/repository/PostCommentRepository.java b/back/src/main/java/com/back/domain/post/comment/repository/PostCommentRepository.java index 24b05542..bdfde2dc 100644 --- a/back/src/main/java/com/back/domain/post/comment/repository/PostCommentRepository.java +++ b/back/src/main/java/com/back/domain/post/comment/repository/PostCommentRepository.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Optional; @Repository public interface PostCommentRepository extends JpaRepository { @@ -17,4 +18,6 @@ public interface PostCommentRepository extends JpaRepository boolean existsByPostAndIsAdoptedTrue(Post post); + + Optional findByPostAndIsAdoptedTrue(Post post); } diff --git a/back/src/main/java/com/back/domain/post/comment/service/PostCommentService.java b/back/src/main/java/com/back/domain/post/comment/service/PostCommentService.java index 9664240b..aec768a2 100644 --- a/back/src/main/java/com/back/domain/post/comment/service/PostCommentService.java +++ b/back/src/main/java/com/back/domain/post/comment/service/PostCommentService.java @@ -137,4 +137,19 @@ public void adoptComment(Long commentId, Member member) { post.updateResolveStatus(true); } + + @Transactional + public CommentAllResponse getAdoptedComment(Long postId) { + Post post = postRepository.findById(postId) + .orElseThrow(() -> new ServiceException("400", "해당 Id의 게시글이 없습니다.")); + + if (post.getPostType() != Post.PostType.QUESTIONPOST) { + throw new ServiceException("400", "질문 게시글만 채택된 댓글을 가질 수 있습니다."); + } + + PostComment postComment = postCommentRepository.findByPostAndIsAdoptedTrue(post) + .orElseThrow(() -> new ServiceException("400", "채택된 댓글이 없습니다.")); + + return CommentAllResponse.from(postComment); + } }