summaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/blog/web/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/blog/web/controllers')
-rw-r--r--src/main/java/com/blog/web/controllers/ArticleController.java55
-rw-r--r--src/main/java/com/blog/web/controllers/AuthController.java26
2 files changed, 28 insertions, 53 deletions
diff --git a/src/main/java/com/blog/web/controllers/ArticleController.java b/src/main/java/com/blog/web/controllers/ArticleController.java
index e60be61..b0bbb0b 100644
--- a/src/main/java/com/blog/web/controllers/ArticleController.java
+++ b/src/main/java/com/blog/web/controllers/ArticleController.java
@@ -3,7 +3,6 @@ package com.blog.web.controllers;
import com.blog.web.dto.ArticleDto;
import com.blog.web.models.Article;
import com.blog.web.models.UserEntity;
-import com.blog.web.security.SecurityUtil;
import com.blog.web.services.ArticleService;
import com.blog.web.services.UserService;
import jakarta.validation.Valid;
@@ -27,7 +26,7 @@ public class ArticleController {
@GetMapping("/articles")
public String listArticles(Model model) {
List<ArticleDto> articles = articleService.findAllArticles();
- UserEntity user = userService.getLoggedInUser();
+ UserEntity user = userService.getLoggedInUser().orElse(new UserEntity());
model.addAttribute("user", user);
model.addAttribute("articles", articles);
return "index";
@@ -37,67 +36,54 @@ public class ArticleController {
public String showArticle(@PathVariable("articleId") long articleId, Model model) {
ArticleDto articleDto = articleService.findArticleById(articleId);
model.addAttribute("article", articleDto);
- UserEntity user = userService.getLoggedInUser();
+ UserEntity user = userService.getLoggedInUser().orElse(new UserEntity());
model.addAttribute("user", user);
return "articles/show";
}
@GetMapping("/articles/new")
public String createArticleForm(Model model) {
- UserEntity user = userService.getLoggedInUser();
- model.addAttribute("user", user);
- final Article article = new Article();
- model.addAttribute("article", article);
+ 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 un-logged in user tries to create an article
+ 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();
- if(userService.getLoggedInUser().getId() == null) {
+ UserEntity user = userService.getLoggedInUser().orElse(new UserEntity());
+ if (user.getId() == null) {
return "redirect:/userlogin";
- }
- else if(result.hasErrors()) {
+ } else if (result.hasErrors()) {
model.addAttribute("article", articleDto);
return "articles/new";
- }
- else {
+ } else {
articleService.saveArticle(articleDto);
return "redirect:/articles";
}
}
-
@GetMapping("/articles/delete/{articleId}")
public String deleteArticle(@PathVariable("articleId") Long articleId) {
- UserEntity user = userService.getLoggedInUser();
- ArticleDto article = articleService.findArticleById(articleId);
- UserEntity owner = article.getCreatedBy();
- if(owner.equals(user)) {
- articleService.delete(articleId);
- }
+ articleService.delete(articleId);
return "redirect:/articles";
}
@GetMapping("/articles/edit/{articleId}")
public String editArticleForm(@PathVariable("articleId") long articleId, Model model) {
- UserEntity user = userService.getLoggedInUser();
- model.addAttribute("user", user);
- ArticleDto articleDto = articleService.findArticleById(articleId);
- model.addAttribute("article", articleDto);
+ 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()) {
+ public String updateArticle(@PathVariable("articleId") Long articleId, @Valid @ModelAttribute("article") ArticleDto article, BindingResult result) {
+ if (result.hasErrors()) {
return "articles/edit";
}
article.setId(articleId);
@@ -107,14 +93,13 @@ public class ArticleController {
@GetMapping("/articles/search")
public String searchArticle(@RequestParam(value = "search") String search, Model model) {
- UserEntity user = userService.getLoggedInUser();
+ 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
index a654ad1..efb3672 100644
--- a/src/main/java/com/blog/web/controllers/AuthController.java
+++ b/src/main/java/com/blog/web/controllers/AuthController.java
@@ -2,7 +2,6 @@ package com.blog.web.controllers;
import com.blog.web.dto.RegistrationDto;
import com.blog.web.models.UserEntity;
-import com.blog.web.security.SecurityUtil;
import com.blog.web.services.UserService;
import jakarta.validation.Valid;
import org.apache.commons.lang3.StringUtils;
@@ -15,7 +14,7 @@ import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class AuthController {
- private UserService userService;
+ private final UserService userService;
public AuthController(UserService userService) {
this.userService = userService;
@@ -23,7 +22,7 @@ public class AuthController {
@GetMapping("/userlogin")
public String login(Model model) {
- UserEntity user = userService.getLoggedInUser();
+ final UserEntity user = userService.getLoggedInUser().orElse(new UserEntity());
model.addAttribute("user", user);
return "auth/login";
}
@@ -36,27 +35,18 @@ public class AuthController {
}
@PostMapping("/register/save")
- public String register(@Valid @ModelAttribute("user")RegistrationDto user,
- BindingResult result,
- Model model) {
- UserEntity existingUserEmail = userService.findByEmail(user.getEmail());
- if(
- existingUserEmail != null &&
- StringUtils.isBlank(existingUserEmail.getEmail())
- ) {
+ 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());
- if(
- existingUsername != null &&
- StringUtils.isBlank(existingUsername.getUsername())
- )
- {
+ 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()) {
+ if (result.hasErrors()) {
model.addAttribute("user", user);
return "register";
}