From 9ae2ef09a6c92ee8443d552144ed6ebe83534e0e Mon Sep 17 00:00:00 2001 From: jimmy0006 Date: Tue, 16 Apr 2024 19:59:46 +0900 Subject: [PATCH] feat:add isScraped boolean in post response --- .../java/org/poolc/api/post/controller/PostController.java | 5 ++++- src/main/java/org/poolc/api/post/dto/PostResponse.java | 4 +++- .../java/org/poolc/api/scrap/service/ScrapService.java | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/poolc/api/post/controller/PostController.java b/src/main/java/org/poolc/api/post/controller/PostController.java index d6fc830e..d3e40cbe 100644 --- a/src/main/java/org/poolc/api/post/controller/PostController.java +++ b/src/main/java/org/poolc/api/post/controller/PostController.java @@ -14,6 +14,7 @@ import org.poolc.api.post.service.PostService; import org.poolc.api.post.vo.PostCreateValues; import org.poolc.api.post.vo.PostUpdateValues; +import org.poolc.api.scrap.service.ScrapService; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -28,6 +29,7 @@ public class PostController { private final PostService postService; private final LikeService likeService; + private final ScrapService scrapService; @PostMapping(value = "/post/new") public ResponseEntity registerPost(@AuthenticationPrincipal Member member, @@ -39,7 +41,8 @@ public ResponseEntity registerPost(@AuthenticationPrincipal Member member, @GetMapping("/post/{postId}") public ResponseEntity viewPost(@AuthenticationPrincipal Member member, @PathVariable Long postId) { Post post = postService.findPostById(member, postId); - return ResponseEntity.status(HttpStatus.OK).body(PostResponse.of(post)); + PostResponse response = PostResponse.of(post, scrapService.isScrap(member.getLoginID(),postId)); + return ResponseEntity.status(HttpStatus.OK).body(response); } @GetMapping("/board/{boardTitle}") diff --git a/src/main/java/org/poolc/api/post/dto/PostResponse.java b/src/main/java/org/poolc/api/post/dto/PostResponse.java index bc515aa8..cf9a5343 100644 --- a/src/main/java/org/poolc/api/post/dto/PostResponse.java +++ b/src/main/java/org/poolc/api/post/dto/PostResponse.java @@ -41,8 +41,9 @@ public class PostResponse { private String region; private String field; private LocalDate deadline; + private Boolean isScraped; - public static PostResponse of(Post post) { + public static PostResponse of(Post post, boolean isScraped) { PostResponse response = new PostResponse(); if (post.getIsDeleted()) return null; @@ -73,6 +74,7 @@ public static PostResponse of(Post post) { response.setDeadline(post.getDeadline()); response.setBoardPostCount(response.getBoardType().getPostCount()); response.setBoardPageNum(response.getBoardPostCount() / 15 + 1); + response.setIsScraped(isScraped); return response; } } diff --git a/src/main/java/org/poolc/api/scrap/service/ScrapService.java b/src/main/java/org/poolc/api/scrap/service/ScrapService.java index 1f5c7820..f519ace1 100644 --- a/src/main/java/org/poolc/api/scrap/service/ScrapService.java +++ b/src/main/java/org/poolc/api/scrap/service/ScrapService.java @@ -35,6 +35,13 @@ public void scrap(String memberId, Long postId) { } } + public boolean isScrap(String memberId, Long postId){ + if(scrapRepository.existsByMemberIdAndPostId(memberId, postId)) { + return true; + } + return false; + } + public void removeScrap(String memberId, Long postId) { Scrap scrap = scrapRepository.findByMemberIdAndPostId(memberId, postId) .orElseThrow(() -> new NoSuchElementException("No scrap with given id."));