From 78a86fb68eee7505970381cf421d99e1b87fc075 Mon Sep 17 00:00:00 2001 From: Danila_Mochalov Date: Tue, 11 Apr 2023 22:43:02 +0400 Subject: [PATCH] =?UTF-8?q?Lab4=20=D1=81=D0=B4=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data.mv.db | Bin 69632 -> 53248 bytes .../lab34/controller/CommentController.java | 7 ++++++ .../lab1/lab34/controller/PostController.java | 7 ++++++ .../lab34/repository/CommentRepository.java | 3 +++ .../lab1/lab34/repository/PostRepository.java | 3 +++ .../lab1/lab34/services/CommentService.java | 15 +++++++++++++ .../lab1/lab34/services/PostService.java | 20 +++++++++++++++++- 7 files changed, 54 insertions(+), 1 deletion(-) diff --git a/data.mv.db b/data.mv.db index 9377641b21d21ad4e94b1c789990722d1a7c3a7b..2f670b1664fa9bbc905dbf87fedc939a8b531658 100644 GIT binary patch literal 53248 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 diff --git a/src/main/java/com/webproglabs/lab1/lab34/controller/CommentController.java b/src/main/java/com/webproglabs/lab1/lab34/controller/CommentController.java index 6b2bd7f..421c70a 100644 --- a/src/main/java/com/webproglabs/lab1/lab34/controller/CommentController.java +++ b/src/main/java/com/webproglabs/lab1/lab34/controller/CommentController.java @@ -27,6 +27,13 @@ public class CommentController { .map(CommentDto::new) .toList(); } + @GetMapping("/find") + public List getFilteredComments(@RequestParam("text") String text) { + return commentService.findFilteredComments(text).stream() + .map(PostDto::new) + .toList(); + } + @PostMapping public CommentDto createComment(@RequestParam("text") String text, @RequestParam("ownerId") Long id, @RequestParam("postId") Long postId){ diff --git a/src/main/java/com/webproglabs/lab1/lab34/controller/PostController.java b/src/main/java/com/webproglabs/lab1/lab34/controller/PostController.java index a0551d7..da2f2a6 100644 --- a/src/main/java/com/webproglabs/lab1/lab34/controller/PostController.java +++ b/src/main/java/com/webproglabs/lab1/lab34/controller/PostController.java @@ -27,6 +27,13 @@ public class PostController { .toList(); } + @GetMapping("/find") + public List getFilteredPosts(@RequestParam("text") String text) { + return postService.findFilteredPosts(text).stream() + .map(PostDto::new) + .toList(); + } + @PostMapping public PostDto createPost( @RequestParam("text") String text, diff --git a/src/main/java/com/webproglabs/lab1/lab34/repository/CommentRepository.java b/src/main/java/com/webproglabs/lab1/lab34/repository/CommentRepository.java index eeb72b8..28a53bf 100644 --- a/src/main/java/com/webproglabs/lab1/lab34/repository/CommentRepository.java +++ b/src/main/java/com/webproglabs/lab1/lab34/repository/CommentRepository.java @@ -3,5 +3,8 @@ package com.webproglabs.lab1.lab34.repository; import com.webproglabs.lab1.lab34.model.Comment; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; + public interface CommentRepository extends JpaRepository { + List findByTextLike(String text); } diff --git a/src/main/java/com/webproglabs/lab1/lab34/repository/PostRepository.java b/src/main/java/com/webproglabs/lab1/lab34/repository/PostRepository.java index de6fc48..582553e 100644 --- a/src/main/java/com/webproglabs/lab1/lab34/repository/PostRepository.java +++ b/src/main/java/com/webproglabs/lab1/lab34/repository/PostRepository.java @@ -4,5 +4,8 @@ import com.webproglabs.lab1.lab34.model.Comment; import com.webproglabs.lab1.lab34.model.Post; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; + public interface PostRepository extends JpaRepository { + List findByTextLike(String text); } diff --git a/src/main/java/com/webproglabs/lab1/lab34/services/CommentService.java b/src/main/java/com/webproglabs/lab1/lab34/services/CommentService.java index 14220f9..f6af98a 100644 --- a/src/main/java/com/webproglabs/lab1/lab34/services/CommentService.java +++ b/src/main/java/com/webproglabs/lab1/lab34/services/CommentService.java @@ -39,6 +39,21 @@ public class CommentService { return commentRepository.findAll(); } + @Transactional + public List findFilteredComments(String filter) { + List postList = postRepository.findByTextLike("%" + filter + "%"); + List commentList = commentRepository.findByTextLike("%" + filter + "%"); + List allPosts = postRepository.findAll(); + for(Post post : allPosts) { + for (Comment comm : commentList) { + if (post.getComments().contains(comm) && !(postList.contains(post))) { + postList.add(post); + } + } + } + return postList; + } + @Transactional public Comment addComment(String text, Long profileId, Long postId) { if (!StringUtils.hasText(text)) { diff --git a/src/main/java/com/webproglabs/lab1/lab34/services/PostService.java b/src/main/java/com/webproglabs/lab1/lab34/services/PostService.java index 2e931a4..43a7584 100644 --- a/src/main/java/com/webproglabs/lab1/lab34/services/PostService.java +++ b/src/main/java/com/webproglabs/lab1/lab34/services/PostService.java @@ -3,6 +3,7 @@ package com.webproglabs.lab1.lab34.services; import com.webproglabs.lab1.lab34.model.Comment; import com.webproglabs.lab1.lab34.model.Post; import com.webproglabs.lab1.lab34.model.Profile; +import com.webproglabs.lab1.lab34.repository.CommentRepository; import com.webproglabs.lab1.lab34.repository.PostRepository; import com.webproglabs.lab1.lab34.repository.ProfileRepository; import org.springframework.stereotype.Service; @@ -16,10 +17,12 @@ import java.util.Optional; @Service public class PostService { private final PostRepository postRepository; + private final CommentRepository commentRepository; private final ProfileRepository profileRepository; - public PostService(PostRepository postRepository, ProfileRepository profileRepository) { + public PostService(PostRepository postRepository, CommentRepository commentRepository, ProfileRepository profileRepository) { this.postRepository = postRepository; + this.commentRepository = commentRepository; this.profileRepository = profileRepository; } @@ -34,6 +37,21 @@ public class PostService { return postRepository.findAll(); } + @Transactional + public List findFilteredPosts(String filter) { + List postList = postRepository.findByTextLike("%" + filter + "%"); + List commentList = commentRepository.findByTextLike("%" + filter + "%"); + List allPosts = postRepository.findAll(); + for(Post post : allPosts) { + for (Comment comm : commentList) { + if (post.getComments().contains(comm) && !(postList.contains(post))) { + postList.add(post); + } + } + } + return postList; + } + @Transactional public Post addPost(String text, List comments, Long authorId) { if (!StringUtils.hasText(text)) {