Files
RenewCMS/internal/infrastructure/useCases/CreateArticle.go
T

31 lines
705 B
Go

package useCases
import (
"RenewCMS/internal/domain/article"
)
type CreateArticleUseCase struct {
articleRepository article.Repository
}
type CreateArticleCommand struct {
Title string
Body string
}
func NewCreateArticleUseCase(articleRepository article.Repository) *CreateArticleUseCase {
return &CreateArticleUseCase{articleRepository}
}
func (g *CreateArticleUseCase) CreateArticle(createArticle CreateArticleCommand) (article.Article, error) {
if err := article.ValidateTitle(createArticle.Title); err != nil {
return article.Article{}, err
}
return g.articleRepository.Create(article.Article{
Title: createArticle.Title,
Body: createArticle.Body,
IsOnline: false,
})
}