summaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/blog
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-07-11 19:18:30 -0400
committerrealtradam <[email protected]>2024-07-11 19:18:30 -0400
commit32195042c7e3fd75f25323b9036a2481e48fd6f8 (patch)
treea483d63e3ec9a294dfdf876a0c7ae883af7dc48b /src/main/java/com/blog
parentd5ab38e1bc8a5519720f413cee6573fbe31da986 (diff)
downloadspring-blog-32195042c7e3fd75f25323b9036a2481e48fd6f8.tar.gz
spring-blog-32195042c7e3fd75f25323b9036a2481e48fd6f8.zip
add editing to articles
Diffstat (limited to 'src/main/java/com/blog')
-rw-r--r--src/main/java/com/blog/web/controllers/ArticleController.java20
-rw-r--r--src/main/java/com/blog/web/services/ArticleService.java4
-rw-r--r--src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java23
3 files changed, 47 insertions, 0 deletions
diff --git a/src/main/java/com/blog/web/controllers/ArticleController.java b/src/main/java/com/blog/web/controllers/ArticleController.java
index 9d096f5..2b32070 100644
--- a/src/main/java/com/blog/web/controllers/ArticleController.java
+++ b/src/main/java/com/blog/web/controllers/ArticleController.java
@@ -7,6 +7,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
@@ -38,4 +39,23 @@ public class ArticleController {
articleService.saveArticle(article);
return "redirect:/articles";
}
+
+ @GetMapping("/articles/edit/{articleId}")
+ public String editArticleForm(@PathVariable("articleId") long articleId, Model model) {
+ ArticleDto article = articleService.findArticleById(articleId);
+ model.addAttribute("article", article);
+ return "articles/edit";
+ }
+
+ @PostMapping("/articles/edit/{articleId}")
+ public String updateArticle(@PathVariable("articleId") Long articleId, @ModelAttribute("article") ArticleDto article) {
+ article.setId(articleId);
+ articleService.updateArticle(article);
+ return "redirect:/articles";
+ }
+
+ @GetMapping("/articles")
+ public String getArticles() {
+ return "redirect:/";
+ }
}
diff --git a/src/main/java/com/blog/web/services/ArticleService.java b/src/main/java/com/blog/web/services/ArticleService.java
index 8d80c8a..870a290 100644
--- a/src/main/java/com/blog/web/services/ArticleService.java
+++ b/src/main/java/com/blog/web/services/ArticleService.java
@@ -9,4 +9,8 @@ public interface ArticleService {
List<ArticleDto> findAllArticles();
Article saveArticle(Article article);
+
+ ArticleDto findArticleById(long articleId);
+
+ void updateArticle(ArticleDto articleDto);
}
diff --git a/src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java b/src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java
index 3daf92c..dd8bade 100644
--- a/src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java
+++ b/src/main/java/com/blog/web/services/impl/ArticleServiceImpl.java
@@ -28,6 +28,29 @@ public class ArticleServiceImpl implements ArticleService {
return articleRepository.save(article);
}
+ @Override
+ public ArticleDto findArticleById(long articleId) {
+ Article article = articleRepository.findById(articleId).get();
+ return mapToArticleDto(article);
+ }
+
+ @Override
+ public void updateArticle(ArticleDto articleDto) {
+ Article article = mapToArticle(articleDto);
+ }
+
+ private Article mapToArticle(ArticleDto articleDto) {
+ Article article = Article.builder()
+ .id(articleDto.getId())
+ .title(articleDto.getTitle())
+ .photoUrl(articleDto.getPhotoUrl())
+ .content(articleDto.getContent())
+ .createdOn(articleDto.getCreatedOn())
+ .updatedOn(articleDto.getUpdatedOn())
+ .build();
+ return article;
+ }
+
private ArticleDto mapToArticleDto(Article article) {
return ArticleDto.builder()
.id(article.getId())