diff options
| author | realtradam <[email protected]> | 2024-07-24 23:15:03 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2024-07-24 23:15:03 -0400 |
| commit | 054e25bb66269d1d99ee0b0afa3b26abee2db80f (patch) | |
| tree | 0333ca0d25a9c435addd3e0e99518dd578f814d4 /backend | |
| parent | e36832834564f401622ef293c19fc778ab43f9ae (diff) | |
| download | spring-blog-054e25bb66269d1d99ee0b0afa3b26abee2db80f.tar.gz spring-blog-054e25bb66269d1d99ee0b0afa3b26abee2db80f.zip | |
port api endpoints to json and add react pages to interact with them
Diffstat (limited to 'backend')
4 files changed, 40 insertions, 21 deletions
diff --git a/backend/src/main/java/com/blog/web/controllers/ArticleController.java b/backend/src/main/java/com/blog/web/controllers/ArticleController.java index df9d40c..6bd1abe 100644 --- a/backend/src/main/java/com/blog/web/controllers/ArticleController.java +++ b/backend/src/main/java/com/blog/web/controllers/ArticleController.java @@ -16,6 +16,7 @@ import java.time.LocalDateTime; import java.util.HashSet; import java.util.List; +@RequestMapping("/api/v1") @RestController @Controller public class ArticleController { @@ -51,21 +52,23 @@ public class ArticleController { return articles; } - @GetMapping("/articles/{articleId}") - public String showArticle(@PathVariable("articleId") long articleId, Model model) { - ArticleDto articleDto = articleService.findArticleById(articleId); - model.addAttribute("article", articleDto); - UserEntity user = userService.getLoggedInUser().orElse(new UserEntity()); - model.addAttribute("user", user); - return "articles/show"; + @CrossOrigin + @GetMapping("/article/{articleId}") + public ArticlePublicDto showArticle(@PathVariable("articleId") long articleId, Model model) { + ArticlePublicDto articlePublicDto = articleService.findArticlePublicById(articleId); + //model.addAttribute("article", articlePublicDto); + //UserEntity user = userService.getLoggedInUser().orElse(new UserEntity()); + //model.addAttribute("user", user); + //return "articles/show"; + return articlePublicDto; } - @GetMapping("/articles/new") + /*@GetMapping("/articles/new") public String createArticleForm(Model model) { model.addAttribute("user", userService.getLoggedInUser().orElse(new UserEntity())); model.addAttribute("article", new Article()); return "articles/new"; - } + }*/ @PostMapping("/articles/new") public String saveArticle(@Valid @ModelAttribute("article") ArticleDto articleDto, BindingResult result, Model model) { @@ -112,10 +115,10 @@ public class ArticleController { @GetMapping("/articles/search") public String searchArticle(@RequestParam(value = "search") String search, Model model) { - UserEntity user = userService.getLoggedInUser().orElse(new UserEntity()); - model.addAttribute("user", user); - List<ArticleDto> articles = articleService.searchArticles(search); - model.addAttribute("articles", articles); + //UserEntity user = userService.getLoggedInUser().orElse(new UserEntity()); + //model.addAttribute("user", user); + HashSet<ArticlePublicDto> articles = articleService.searchPublicArticles(search); + //model.addAttribute("articles", articles); return "index"; } diff --git a/backend/src/main/java/com/blog/web/repository/ArticleRepository.java b/backend/src/main/java/com/blog/web/repository/ArticleRepository.java index 594cb15..f40eada 100644 --- a/backend/src/main/java/com/blog/web/repository/ArticleRepository.java +++ b/backend/src/main/java/com/blog/web/repository/ArticleRepository.java @@ -4,9 +4,9 @@ import com.blog.web.models.Article; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import java.util.List; +import java.util.HashSet; public interface ArticleRepository extends JpaRepository<Article, Long> { @Query("SELECT a from Article a WHERE a.title LIKE CONCAT('%', :search, '%')") - List<Article> searchArticles(String search); + HashSet<Article> searchArticles(String search); } diff --git a/backend/src/main/java/com/blog/web/services/ArticleService.java b/backend/src/main/java/com/blog/web/services/ArticleService.java index 1bfe38f..1e50df0 100644 --- a/backend/src/main/java/com/blog/web/services/ArticleService.java +++ b/backend/src/main/java/com/blog/web/services/ArticleService.java @@ -4,6 +4,7 @@ import com.blog.web.dto.ArticleDto; import com.blog.web.dto.ArticlePublicDto; import com.blog.web.models.Article; +import java.util.HashSet; import java.util.List; import java.util.Optional; @@ -18,5 +19,9 @@ public interface ArticleService { boolean delete(Long articleId); - List<ArticleDto> searchArticles(String search); + //List<ArticleDto> searchArticles(String search); + + ArticlePublicDto findArticlePublicById(long articleId); + + HashSet<ArticlePublicDto> searchPublicArticles(String search); } diff --git a/backend/src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java b/backend/src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java index 7073073..993d798 100644 --- a/backend/src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java +++ b/backend/src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java @@ -11,14 +11,14 @@ import com.blog.web.services.ArticleService; import com.blog.web.services.UserService; import org.springframework.stereotype.Service; +import java.util.HashSet; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; import com.blog.web.mappers.ArticleMapper; -import static com.blog.web.mappers.ArticleMapper.mapToArticle; -import static com.blog.web.mappers.ArticleMapper.mapToArticleDto; +import static com.blog.web.mappers.ArticleMapper.*; @Service public class ArticleServiceImpl implements ArticleService { @@ -86,9 +86,20 @@ public class ArticleServiceImpl implements ArticleService { } } + //@Override + //public List<ArticleDto> searchArticles(String search) { + // List<Article> articles = articleRepository.searchArticles(search); + // return articles.stream().map(article -> mapToArticleDto(article)).collect(Collectors.toList()); + //} + + @Override + public ArticlePublicDto findArticlePublicById(long articleId) { + return new ArticlePublicDto(articleRepository.findById(articleId).get()); + } + @Override - public List<ArticleDto> searchArticles(String search) { - List<Article> articles = articleRepository.searchArticles(search); - return articles.stream().map(article -> mapToArticleDto(article)).collect(Collectors.toList()); + public HashSet<ArticlePublicDto> searchPublicArticles(String search) { + HashSet<Article> articles = articleRepository.searchArticles(search); + return articles.stream().map(article -> mapToArticlePublicDto(article)).collect(Collectors.toCollection(HashSet::new)); } } |
