diff --git a/src/main/java/com/on/server/domain/post/application/PostService.java b/src/main/java/com/on/server/domain/post/application/PostService.java index 6f4010ba..8bd24723 100644 --- a/src/main/java/com/on/server/domain/post/application/PostService.java +++ b/src/main/java/com/on/server/domain/post/application/PostService.java @@ -104,14 +104,11 @@ public Page searchPosts(String keyword, Pageable pageable) { } // 국가 필터링 메서드 - public List getPostsByCountryAndBoardType(BoardType boardType, String country) { + public Page getPostsByCountryAndBoardType(BoardType boardType, String country, Pageable pageable) { Board board = boardRepository.findByType(boardType) .orElseThrow(() -> new BadRequestException(ResponseCode.ROW_DOES_NOT_EXIST, "게시판을 찾을 수 없습니다.")); + Page posts = postRepository.findByBoardAndUserCountry(board, country, pageable); - List posts = postRepository.findByBoardAndUserCountry(board, country); - - return posts.stream() - .map(post -> PostResponseDTO.from(post, true)) - .collect(Collectors.toList()); + return posts.map(post -> PostResponseDTO.from(post, true)); } } diff --git a/src/main/java/com/on/server/domain/post/domain/repository/PostRepository.java b/src/main/java/com/on/server/domain/post/domain/repository/PostRepository.java index fe398fab..fa403616 100644 --- a/src/main/java/com/on/server/domain/post/domain/repository/PostRepository.java +++ b/src/main/java/com/on/server/domain/post/domain/repository/PostRepository.java @@ -26,7 +26,7 @@ public interface PostRepository extends JpaRepository { // 작성자의 국가를 기준으로 게시글 필터링 @Query("SELECT p FROM Post p WHERE p.board = :board AND p.user.country = :country ORDER BY p.createdAt DESC") - List findByBoardAndUserCountry(@Param("board") Board board, @Param("country") String country); + Page findByBoardAndUserCountry(@Param("board") Board board, @Param("country") String country, Pageable pageable); // 특정 게시판에서 최신 게시글 4개 조회 diff --git a/src/main/java/com/on/server/domain/post/presentation/PostController.java b/src/main/java/com/on/server/domain/post/presentation/PostController.java index b9394fa9..6cece44e 100644 --- a/src/main/java/com/on/server/domain/post/presentation/PostController.java +++ b/src/main/java/com/on/server/domain/post/presentation/PostController.java @@ -81,11 +81,12 @@ public ResponseEntity deletePost( @Operation(summary = "국가 필터링된 게시글 조회") @PreAuthorize("@securityService.isNotTemporaryUser()") @GetMapping("/filter/{boardType}") - public ResponseEntity> searchPostsByCountry( + public ResponseEntity> searchPostsByCountry( @PathVariable("boardType") BoardType boardType, - @RequestParam(name = "country") String country + @RequestParam(name = "country") String country, + @ParameterObject Pageable pageable ) { - List filteredPosts = postService.getPostsByCountryAndBoardType(boardType, country); + Page filteredPosts = postService.getPostsByCountryAndBoardType(boardType, country, pageable); return ResponseEntity.ok(filteredPosts); }