43 lines
1.3 KiB
Java
43 lines
1.3 KiB
Java
|
package io.spring.application.article;
|
||
|
|
||
|
import io.spring.core.article.Article;
|
||
|
import io.spring.core.article.ArticleRepository;
|
||
|
import io.spring.core.user.User;
|
||
|
import javax.validation.Valid;
|
||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||
|
import org.springframework.stereotype.Service;
|
||
|
import org.springframework.validation.annotation.Validated;
|
||
|
|
||
|
@Service
|
||
|
@Validated
|
||
|
public class ArticleCommandService {
|
||
|
|
||
|
private ArticleRepository articleRepository;
|
||
|
|
||
|
@Autowired
|
||
|
public ArticleCommandService(ArticleRepository articleRepository) {
|
||
|
this.articleRepository = articleRepository;
|
||
|
}
|
||
|
|
||
|
public Article createArticle(@Valid NewArticleParam newArticleParam, User creator) {
|
||
|
Article article =
|
||
|
new Article(
|
||
|
newArticleParam.getTitle(),
|
||
|
newArticleParam.getDescription(),
|
||
|
newArticleParam.getBody(),
|
||
|
newArticleParam.getTagList(),
|
||
|
creator.getId());
|
||
|
articleRepository.save(article);
|
||
|
return article;
|
||
|
}
|
||
|
|
||
|
public Article updateArticle(Article article, @Valid UpdateArticleParam updateArticleParam) {
|
||
|
article.update(
|
||
|
updateArticleParam.getTitle(),
|
||
|
updateArticleParam.getDescription(),
|
||
|
updateArticleParam.getBody());
|
||
|
articleRepository.save(article);
|
||
|
return article;
|
||
|
}
|
||
|
}
|