package useCases import ( "RenewCMS/internal/domain/article" "RenewCMS/internal/domain/audit" "context" ) type DeleteArticleUseCase struct { articleRepository article.Repository recorder audit.Recorder } func NewDeleteArticleUseCase(articleRepository article.Repository, recorder audit.Recorder) *DeleteArticleUseCase { return &DeleteArticleUseCase{articleRepository, recorder} } func (g *DeleteArticleUseCase) DeleteArticle(ctx context.Context, id uint32) error { target, err := g.articleRepository.Get(id) if err != nil { return err } event := audit.NewEvent(audit.ActionArticleDelete, audit.CategoryArticles) event.Target = articleTarget(target) if err := g.articleRepository.Delete(id); err != nil { recordFailure(ctx, g.recorder, event, err) return err } g.recorder.Record(ctx, event) return nil }