From 3d0c29c5af4902c20cecb008e9c105e98669506c Mon Sep 17 00:00:00 2001 From: jihyo Date: Thu, 7 Mar 2024 23:50:18 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=8C=93=EA=B8=80=20=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comment/controller/CommentController.java | 10 +++++----- .../comment/service/CommentService.java | 18 ++++++------------ .../domain/comment/CommentRepository.java | 6 ++++-- .../infra/comment/CommentJpaRepository.java | 8 ++++---- .../repository/CommentRepositoryImpl.java | 9 +++++---- 5 files changed, 24 insertions(+), 27 deletions(-) diff --git a/kobaco/kobaco/src/main/java/core/kobaco/application/comment/controller/CommentController.java b/kobaco/kobaco/src/main/java/core/kobaco/application/comment/controller/CommentController.java index fa7f659..dcfe252 100644 --- a/kobaco/kobaco/src/main/java/core/kobaco/application/comment/controller/CommentController.java +++ b/kobaco/kobaco/src/main/java/core/kobaco/application/comment/controller/CommentController.java @@ -8,12 +8,12 @@ import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import java.util.List; - @RestController @RequiredArgsConstructor @RequestMapping("/api/comments") @@ -29,9 +29,9 @@ public ResponseEntity createComment(@RequestBody CommentCr @Operation(summary = "댓글 조회") @GetMapping("/{advertiseId}") - public ResponseEntity> getAllComments(@PathVariable Long advertiseId) { - List comments = commentService.getAllComments(advertiseId); - return ApiResponse.success(comments); + public ResponseEntity> getAllComments(@PathVariable Long advertiseId, Pageable pageable) { + Page commentsPage = commentService.getAllComments(advertiseId, pageable); + return ApiResponse.success(commentsPage); } @Operation(summary = "댓글 좋아요") diff --git a/kobaco/kobaco/src/main/java/core/kobaco/application/comment/service/CommentService.java b/kobaco/kobaco/src/main/java/core/kobaco/application/comment/service/CommentService.java index 26b34aa..31ce45a 100644 --- a/kobaco/kobaco/src/main/java/core/kobaco/application/comment/service/CommentService.java +++ b/kobaco/kobaco/src/main/java/core/kobaco/application/comment/service/CommentService.java @@ -9,13 +9,12 @@ import core.kobaco.domain.user.service.UserReader; import jakarta.transaction.Transactional; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.server.ResponseStatusException; -import java.util.*; -import java.util.stream.Collectors; - @Service @Transactional @@ -43,15 +42,10 @@ public CommentCreateRequest createComment(String content, Long advertiseId) { return CommentCreateRequest.of(savedCommentEntity.getContent()); } - public List getAllComments(Long advertiseId) { - List comments = commentRepository.findAllByAdvertiseId(advertiseId); - return comments.stream() - .map(comment -> { - String userEmail = getUserEmail(comment.getCommenterId()); - return CommentDetailResponse.of(comment.getCommentId(), comment.getContent(), userEmail); - }) - .collect(Collectors.toList()); - } + public Page getAllComments(Long advertiseId, Pageable pageable) { + Page commentsPage = commentRepository.findAllByAdvertiseId(advertiseId, pageable); + return commentsPage.map(comment -> CommentDetailResponse.of(comment.getCommentId(), comment.getContent(), getUserEmail(comment.getCommenterId()))); + } private String getUserEmail(Long userId) { return userReader.read(userId).getEmail(); diff --git a/kobaco/kobaco/src/main/java/core/kobaco/domain/comment/CommentRepository.java b/kobaco/kobaco/src/main/java/core/kobaco/domain/comment/CommentRepository.java index 750124f..c8dc26e 100644 --- a/kobaco/kobaco/src/main/java/core/kobaco/domain/comment/CommentRepository.java +++ b/kobaco/kobaco/src/main/java/core/kobaco/domain/comment/CommentRepository.java @@ -1,12 +1,14 @@ package core.kobaco.domain.comment; -import java.util.List; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + import java.util.Optional; public interface CommentRepository { Optional findById(Long commentId); Comment save(Comment comment, Long advertiseId); - List findAllByAdvertiseId(Long advertiseId); + Page findAllByAdvertiseId(Long advertiseId, Pageable pageable); } diff --git a/kobaco/kobaco/src/main/java/core/kobaco/infra/comment/CommentJpaRepository.java b/kobaco/kobaco/src/main/java/core/kobaco/infra/comment/CommentJpaRepository.java index af63451..c977569 100644 --- a/kobaco/kobaco/src/main/java/core/kobaco/infra/comment/CommentJpaRepository.java +++ b/kobaco/kobaco/src/main/java/core/kobaco/infra/comment/CommentJpaRepository.java @@ -1,12 +1,12 @@ package core.kobaco.infra.comment; import core.kobaco.infra.jpa.comment.entity.CommentEntity; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import java.util.List; - -public interface CommentJpaRepository extends JpaRepository { - List findAllByAdvertiseId(Long advertiseId); +public interface CommentJpaRepository extends JpaRepository { + Page findAllByAdvertiseId(Long advertiseId, Pageable pageable); } diff --git a/kobaco/kobaco/src/main/java/core/kobaco/infra/jpa/comment/repository/CommentRepositoryImpl.java b/kobaco/kobaco/src/main/java/core/kobaco/infra/jpa/comment/repository/CommentRepositoryImpl.java index 7b4ffcf..3c2bc52 100644 --- a/kobaco/kobaco/src/main/java/core/kobaco/infra/jpa/comment/repository/CommentRepositoryImpl.java +++ b/kobaco/kobaco/src/main/java/core/kobaco/infra/jpa/comment/repository/CommentRepositoryImpl.java @@ -6,9 +6,10 @@ import core.kobaco.infra.comment.CommentJpaRepository; import core.kobaco.infra.jpa.comment.entity.CommentEntity; import org.springframework.context.annotation.Primary; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository; -import java.util.List; import java.util.Optional; @Repository @@ -36,9 +37,9 @@ public Comment save(Comment comment, Long advertiseId) { } @Override - public List findAllByAdvertiseId(Long advertiseId) { - List commentEntities = commentJpaRepository.findAllByAdvertiseId(advertiseId); - return commentMapper.toDomainList(commentEntities); + public Page findAllByAdvertiseId(Long advertiseId, Pageable pageable) { + Page commentEntitiesPage = commentJpaRepository.findAllByAdvertiseId(advertiseId, pageable); + return commentEntitiesPage.map(commentMapper::toDomain); } }