diff --git a/src/main/java/HeyPorori/transaction/controller/TransactionController.java b/src/main/java/HeyPorori/transaction/controller/TransactionController.java index 9104dbe..1c74ee5 100644 --- a/src/main/java/HeyPorori/transaction/controller/TransactionController.java +++ b/src/main/java/HeyPorori/transaction/controller/TransactionController.java @@ -86,4 +86,11 @@ public BaseResponse recommendPost(@RequestHeader("Authorization") String transactionService.recommendPost(token, req); return new BaseResponse<>("게시글을 추천했습니다."); } -} + + @Operation(summary = "중고거래 게시글 검색 API", description = "중고거래 서비스의 거래 게시글을 검색하기 위한 API입니다.") + @ApiResponse(responseCode = "200", description = "요청 성공", content = @Content(mediaType = "application/json", schema = @Schema(implementation = BaseResponse.class))) + @GetMapping("/search/{keyword}") + public BaseResponse> recommendPost(@PathVariable String keyword) throws BaseException { + return new BaseResponse<>(transactionService.findAllPostByKeyword(keyword)); + } +} \ No newline at end of file diff --git a/src/main/java/HeyPorori/transaction/repository/TransactionRepository.java b/src/main/java/HeyPorori/transaction/repository/TransactionRepository.java index c2d4285..33a2a68 100644 --- a/src/main/java/HeyPorori/transaction/repository/TransactionRepository.java +++ b/src/main/java/HeyPorori/transaction/repository/TransactionRepository.java @@ -13,4 +13,5 @@ public interface TransactionRepository extends JpaRepository List findByStatus(String status); Optional findByTransactionIdAndStatus(Long transactionId, String status); List findByCategoryAndStatus(Category category, String status); + List findByContentContainingAndStatus(String content, String status); } diff --git a/src/main/java/HeyPorori/transaction/service/TransactionService.java b/src/main/java/HeyPorori/transaction/service/TransactionService.java index 2a3c7b9..238d741 100644 --- a/src/main/java/HeyPorori/transaction/service/TransactionService.java +++ b/src/main/java/HeyPorori/transaction/service/TransactionService.java @@ -89,6 +89,19 @@ public void recommendPost(String token, RecommendPostReq req){ } } + public List findAllPostByKeyword(String keyword){ + List txnList = new ArrayList<>(); + txnList = transactionRepository.findByContentContainingAndStatus(keyword, "ACTIVE"); + + List postResList = new ArrayList<>(); + for(Transaction txn: txnList){ + PostsRes postRes = PostsRes.toDto(txn, transactionAttachService.getFirstImageName(txn)); + postResList.add(postRes); + } + + return postResList; + } + public String toFormattedDate(LocalDateTime baseDateTime){ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd"); return baseDateTime.format(formatter);