mirror of
https://github.com/Floriansylvain/RenewCMS.git
synced 2026-08-19 11:43:22 +02:00
fix: added some business rules to article creation
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
ErrInvalidTitle = errors.New("article's title length should be between 3 and 200 caracters")
|
||||||
ErrArticleNotFound = errors.New("article not found")
|
ErrArticleNotFound = errors.New("article not found")
|
||||||
ErrArticleOffline = errors.New("article is offline")
|
ErrArticleOffline = errors.New("article is offline")
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ func (a *ArticleRepository) Create(article domain.Article) (domain.Article, erro
|
|||||||
creationResult := a.db.Create(&entity.Article{
|
creationResult := a.db.Create(&entity.Article{
|
||||||
Title: article.Title,
|
Title: article.Title,
|
||||||
Body: article.Body,
|
Body: article.Body,
|
||||||
|
IsOnline: article.IsOnline,
|
||||||
})
|
})
|
||||||
if creationResult.Error != nil {
|
if creationResult.Error != nil {
|
||||||
return domain.Article{}, creationResult.Error
|
return domain.Article{}, creationResult.Error
|
||||||
|
|||||||
@@ -18,8 +18,13 @@ func NewCreateArticleUseCase(articleRepository article.Repository) *CreateArticl
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g *CreateArticleUseCase) CreateArticle(createArticle CreateArticleCommand) (article.Article, error) {
|
func (g *CreateArticleUseCase) CreateArticle(createArticle CreateArticleCommand) (article.Article, error) {
|
||||||
|
if len(createArticle.Title) < 3 || len(createArticle.Title) > 200 {
|
||||||
|
return article.Article{}, article.ErrInvalidTitle
|
||||||
|
}
|
||||||
|
|
||||||
return g.articleRepository.Create(article.Article{
|
return g.articleRepository.Create(article.Article{
|
||||||
Title: createArticle.Title,
|
Title: createArticle.Title,
|
||||||
Body: createArticle.Body,
|
Body: createArticle.Body,
|
||||||
|
IsOnline: false,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user