diff --git a/internal/domain/article/articleDomain.go b/internal/domain/article/articleDomain.go index d548e61..5052402 100644 --- a/internal/domain/article/articleDomain.go +++ b/internal/domain/article/articleDomain.go @@ -7,6 +7,7 @@ import ( ) var ( + ErrInvalidTitle = errors.New("article's title length should be between 3 and 200 caracters") ErrArticleNotFound = errors.New("article not found") ErrArticleOffline = errors.New("article is offline") ) diff --git a/internal/infrastructure/persistence/repositories/articleRepository.go b/internal/infrastructure/persistence/repositories/articleRepository.go index 9e9a810..55429e0 100644 --- a/internal/infrastructure/persistence/repositories/articleRepository.go +++ b/internal/infrastructure/persistence/repositories/articleRepository.go @@ -56,8 +56,9 @@ func (a *ArticleRepository) GetByName(name string) (domain.Article, error) { func (a *ArticleRepository) Create(article domain.Article) (domain.Article, error) { creationResult := a.db.Create(&entity.Article{ - Title: article.Title, - Body: article.Body, + Title: article.Title, + Body: article.Body, + IsOnline: article.IsOnline, }) if creationResult.Error != nil { return domain.Article{}, creationResult.Error diff --git a/internal/infrastructure/useCases/CreateArticle.go b/internal/infrastructure/useCases/CreateArticle.go index dd65eac..62dd036 100644 --- a/internal/infrastructure/useCases/CreateArticle.go +++ b/internal/infrastructure/useCases/CreateArticle.go @@ -18,8 +18,13 @@ func NewCreateArticleUseCase(articleRepository article.Repository) *CreateArticl } 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{ - Title: createArticle.Title, - Body: createArticle.Body, + Title: createArticle.Title, + Body: createArticle.Body, + IsOnline: false, }) }