package useCases import "RenewCMS/internal/domain/article" type GetArticleUseCase struct { articleRepository article.Repository bodyRenderer article.BodyRenderer } func NewGetArticleUseCase(articleRepository article.Repository, bodyRenderer article.BodyRenderer) *GetArticleUseCase { return &GetArticleUseCase{articleRepository, bodyRenderer} } func (u *GetArticleUseCase) GetOnlineArticle(id uint32, format article.BodyFormat) (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 renderArticle(u.bodyRenderer, art, format) } func (u *GetArticleUseCase) GetArticle(id uint32, format article.BodyFormat) (article.Article, error) { art, err := u.articleRepository.Get(id) if err != nil { return article.Article{}, err } return renderArticle(u.bodyRenderer, art, format) } func (g *GetArticleUseCase) GetArticleByName(name string) (article.Article, error) { return g.articleRepository.GetByName(name) }