Refac/domain driven #1

Merged
fsylvain merged 40 commits from refac/domain-driven into main 2026-09-25 16:15:15 +02:00
3 changed files with 7 additions and 0 deletions
Showing only changes of commit 76245c47c9 - Show all commits

No files matched your search

+1
View File
@@ -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,
}) })
} }