summaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/blog/web/controllers
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-07-23 20:47:31 -0400
committerrealtradam <[email protected]>2024-07-23 20:47:31 -0400
commit1e18e0ad7a47536be92384bbf815e0923a06698d (patch)
treeb07405ecdef4f05a96b6c4348930cbee976554cb /src/main/java/com/blog/web/controllers
parent56c59e3b98fe554c4e1484e208e4be5c30f09a04 (diff)
downloadspring-blog-1e18e0ad7a47536be92384bbf815e0923a06698d.tar.gz
spring-blog-1e18e0ad7a47536be92384bbf815e0923a06698d.zip
split front and back end, add react to project
Diffstat (limited to 'src/main/java/com/blog/web/controllers')
-rw-r--r--src/main/java/com/blog/web/controllers/ArticleController.java125
-rw-r--r--src/main/java/com/blog/web/controllers/AuthController.java56
2 files changed, 0 insertions, 181 deletions
diff --git a/src/main/java/com/blog/web/controllers/ArticleController.java b/src/main/java/com/blog/web/controllers/ArticleController.java
deleted file mode 100644
index 6cd5d50..0000000
--- a/src/main/java/com/blog/web/controllers/ArticleController.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package com.blog.web.controllers;
-
-import com.blog.web.dto.ArticleDto;
-import com.blog.web.dto.ArticlePublicDto;
-import com.blog.web.models.Article;
-import com.blog.web.models.UserEntity;
-import com.blog.web.services.ArticleService;
-import com.blog.web.services.UserService;
-import jakarta.validation.Valid;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.*;
-
-import java.time.LocalDateTime;
-import java.util.HashSet;
-import java.util.List;
-
-@RestController
-@Controller
-public class ArticleController {
- private ArticleService articleService;
- private UserService userService;
-
- public ArticleController(ArticleService articleService, UserService userService) {
- this.articleService = articleService;
- this.userService = userService;
- }
-
- @GetMapping("/get")
- public Article getMethod() {
- return new Article(
- 5,
- "blah",
- "blah",
- "blah",
- new UserEntity(),
- LocalDateTime.now(),
- LocalDateTime.now()
- );
- }
-
- @GetMapping("/articles")
- public HashSet<ArticlePublicDto> listArticles(Model model) {
- HashSet<ArticlePublicDto> articles = new HashSet<ArticlePublicDto>(articleService.findAllArticles());
- //UserEntity user = userService.getLoggedInUser().orElse(new UserEntity());
- //model.addAttribute("user", user);
- //model.addAttribute("articles", articles);
- //return "index";
- 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";
- }
-
- @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) {
- // if non-authenticated in user tries to create an article
- // redirect them to login page
- UserEntity user = userService.getLoggedInUser().orElse(null);
- if (user == null) {
- return "redirect:/userlogin";
- } else if (result.hasErrors()) {
- model.addAttribute("article", articleDto);
- return "articles/new";
- } else {
- articleService.saveArticle(articleDto);
- return "redirect:/articles";
- }
- }
-
- @GetMapping("/articles/delete/{articleId}")
- public String deleteArticle(@PathVariable("articleId") Long articleId) {
- articleService.delete(articleId);
- return "redirect:/articles";
- }
-
- @GetMapping("/articles/edit/{articleId}")
- public String editArticleForm(@PathVariable("articleId") long articleId, Model model) {
- UserEntity user = userService.getLoggedInUser().orElse(null);
- if (user != null) {
- model.addAttribute("user", user);
- ArticleDto articleDto = articleService.findArticleById(articleId);
- model.addAttribute("article", articleDto);
- }
- return "articles/edit";
- }
-
- @PostMapping("/articles/edit/{articleId}")
- public String updateArticle(@PathVariable("articleId") Long articleId, @Valid @ModelAttribute("article") ArticleDto article, BindingResult result) {
- if (result.hasErrors()) {
- return "articles/edit";
- }
- article.setId(articleId);
- articleService.updateArticle(article);
- return "redirect:/articles";
- }
-
- @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);
- return "index";
- }
-
- @GetMapping("/")
- public String getArticles() {
- return "redirect:/articles";
- }
-}
diff --git a/src/main/java/com/blog/web/controllers/AuthController.java b/src/main/java/com/blog/web/controllers/AuthController.java
deleted file mode 100644
index efb3672..0000000
--- a/src/main/java/com/blog/web/controllers/AuthController.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.blog.web.controllers;
-
-import com.blog.web.dto.RegistrationDto;
-import com.blog.web.models.UserEntity;
-import com.blog.web.services.UserService;
-import jakarta.validation.Valid;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PostMapping;
-
-@Controller
-public class AuthController {
- private final UserService userService;
-
- public AuthController(UserService userService) {
- this.userService = userService;
- }
-
- @GetMapping("/userlogin")
- public String login(Model model) {
- final UserEntity user = userService.getLoggedInUser().orElse(new UserEntity());
- model.addAttribute("user", user);
- return "auth/login";
- }
-
- @GetMapping("/register")
- public String getRegisterForm(Model model) {
- final RegistrationDto user = new RegistrationDto();
- model.addAttribute("user", user);
- return "auth/register";
- }
-
- @PostMapping("/register/save")
- public String register(@Valid @ModelAttribute("user") RegistrationDto user, BindingResult result, Model model) {
- UserEntity existingUserEmail = userService.findByEmail(user.getEmail()).orElse(null);
- if (existingUserEmail != null && StringUtils.isBlank(existingUserEmail.getEmail())) {
- result.rejectValue("email", "There is already a user with this email");
- }
-
- UserEntity existingUsername = userService.findByUsername(user.getUsername()).orElse(null);
- if (existingUsername != null && StringUtils.isBlank(existingUsername.getUsername())) {
- result.rejectValue("username", "There is already a user with this username");
- }
-
- if (result.hasErrors()) {
- model.addAttribute("user", user);
- return "register";
- }
- userService.saveUser(user);
- return "redirect:/articles?success";
- }
-}