summaryrefslogtreecommitdiffhomepage
path: root/backend
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-07-24 23:15:03 -0400
committerrealtradam <[email protected]>2024-07-24 23:15:03 -0400
commit054e25bb66269d1d99ee0b0afa3b26abee2db80f (patch)
tree0333ca0d25a9c435addd3e0e99518dd578f814d4 /backend
parente36832834564f401622ef293c19fc778ab43f9ae (diff)
downloadspring-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')
-rw-r--r--backend/src/main/java/com/blog/web/controllers/ArticleController.java29
-rw-r--r--backend/src/main/java/com/blog/web/repository/ArticleRepository.java4
-rw-r--r--backend/src/main/java/com/blog/web/services/ArticleService.java7
-rw-r--r--backend/src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java21
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));
}
}