refac: better error handling & moved IsOnline logic to cleaner place

This commit is contained in:
Floriansylvain
2025-12-22 00:59:36 +01:00
parent b50efae8a8
commit 5282770caa
6 changed files with 120 additions and 46 deletions
+15 -2
View File
@@ -10,8 +10,21 @@ func NewGetArticleUseCase(articleRepository article.Repository) *GetArticleUseCa
return &GetArticleUseCase{articleRepository}
}
func (g *GetArticleUseCase) GetArticle(id uint32) (article.Article, error) {
return g.articleRepository.Get(id)
func (u *GetArticleUseCase) GetOnlineArticle(id uint32) (article.Article, error) {
art, err := u.articleRepository.Get(id)
if err != nil {
return article.Article{}, err
}
if !art.IsOnline {
return article.Article{}, article.ErrArticleNotFound
}
return art, nil
}
func (u *GetArticleUseCase) GetArticle(id uint32) (article.Article, error) {
return u.articleRepository.Get(id)
}
func (g *GetArticleUseCase) GetArticleByName(name string) (article.Article, error) {
@@ -10,6 +10,13 @@ func NewListArticlesUseCase(articleRepository article.Repository) *ListArticlesU
return &ListArticlesUseCase{articleRepository}
}
func (g *ListArticlesUseCase) ListArticles() []article.Article {
return g.articleRepository.GetAll()
func (u *ListArticlesUseCase) ListOnlineArticles() ([]article.Article, error) {
online := true
return u.articleRepository.FindByFilters(article.Filters{
IsOnline: &online,
})
}
func (u *ListArticlesUseCase) ListAllArticles() ([]article.Article, error) {
return u.articleRepository.FindByFilters(article.Filters{})
}