From 77cc9617502f60511e460a5f87a182a676f6b47f Mon Sep 17 00:00:00 2001 From: SeokGeunHo Date: Tue, 23 Sep 2025 16:17:00 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=8C=93=EA=B8=80=20=EB=8B=A8=EA=B1=B4?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../post/comment/controller/CommentController.java | 10 ++++++++++ .../domain/post/comment/service/CommentService.java | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/main/java/com/back/domain/post/comment/controller/CommentController.java b/src/main/java/com/back/domain/post/comment/controller/CommentController.java index 7fb2c3e0..2e641904 100644 --- a/src/main/java/com/back/domain/post/comment/controller/CommentController.java +++ b/src/main/java/com/back/domain/post/comment/controller/CommentController.java @@ -3,6 +3,7 @@ import com.back.domain.post.comment.dto.request.CommentCreateRequestDto; import com.back.domain.post.comment.dto.response.CommentResponseDto; import com.back.domain.post.comment.service.CommentService; +import com.back.domain.post.post.dto.response.PostResponseDto; import com.back.global.rsData.RsData; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -48,4 +49,13 @@ public RsData> getComments( ) { return RsData.successOf(commentService.getComments(postId, lastId)); // code=200, message="success" } + + @GetMapping("/{commentId}") + @Operation(summary = "댓글 단건 조회") + public RsData getComment( + @PathVariable Long postId, + @PathVariable Long commentId + ) { + return RsData.successOf(commentService.getComment(postId, commentId)); // code=200, message="success" + } } diff --git a/src/main/java/com/back/domain/post/comment/service/CommentService.java b/src/main/java/com/back/domain/post/comment/service/CommentService.java index 6d9977ac..d995b18b 100644 --- a/src/main/java/com/back/domain/post/comment/service/CommentService.java +++ b/src/main/java/com/back/domain/post/comment/service/CommentService.java @@ -53,4 +53,17 @@ public List getComments(Long postId, Long lastId) { .toList(); } } + + // 댓글 단건 조회 로직 + @Transactional(readOnly = true) + public CommentResponseDto getComment(Long postId, Long commentId) { + Comment comment = commentRepository.findById(commentId) + .orElseThrow(() -> new IllegalArgumentException("댓글이 존재하지 않습니다. id=" + commentId)); + + if (!comment.getPost().getId().equals(postId)) { + throw new IllegalStateException("댓글이 해당 게시글에 속하지 않습니다."); + } + + return new CommentResponseDto(comment); + } }