diff options
| author | realtradam <[email protected]> | 2024-07-11 19:18:30 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2024-07-11 19:18:30 -0400 |
| commit | 32195042c7e3fd75f25323b9036a2481e48fd6f8 (patch) | |
| tree | a483d63e3ec9a294dfdf876a0c7ae883af7dc48b /src/main/java/com | |
| parent | d5ab38e1bc8a5519720f413cee6573fbe31da986 (diff) | |
| download | spring-blog-32195042c7e3fd75f25323b9036a2481e48fd6f8.tar.gz spring-blog-32195042c7e3fd75f25323b9036a2481e48fd6f8.zip | |
add editing to articles
Diffstat (limited to 'src/main/java/com')
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()) |
