From f19943d3e3975ad312c13b038f77fb02cec4e9e6 Mon Sep 17 00:00:00 2001 From: isExample Date: Tue, 26 Sep 2023 01:25:23 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=EA=B2=80=EC=83=89=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TransactionController.java | 9 ++++++++- .../repository/TransactionRepository.java | 1 + .../transaction/service/TransactionService.java | 13 +++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) 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);