repository.go 987 B

123456789101112131415161718192021222324252627
  1. package interfaces
  2. import (
  3. "context"
  4. "github.com/dmitriygnatenko/internal/models"
  5. )
  6. type IArticleRepository interface {
  7. GetAll(ctx context.Context) ([]models.Article, error)
  8. GetAllPreview(ctx context.Context) ([]models.ArticlePreview, error)
  9. GetPreviewByTagID(ctx context.Context, tagID int) ([]models.ArticlePreview, error)
  10. GetByURL(ctx context.Context, url string) (*models.Article, error)
  11. GetByID(ctx context.Context, ID int) (*models.Article, error)
  12. }
  13. type ITagRepository interface {
  14. GetAll(ctx context.Context) ([]models.Tag, error)
  15. GetAllUsed(ctx context.Context) ([]models.Tag, error)
  16. IsUsed(ctx context.Context, ID int) (bool, error)
  17. GetByArticleID(ctx context.Context, ID int) ([]models.Tag, error)
  18. GetByURL(ctx context.Context, tag string) (*models.Tag, error)
  19. GetByID(ctx context.Context, ID int) (*models.Tag, error)
  20. Add(ctx context.Context, m models.Tag) error
  21. Update(ctx context.Context, m models.Tag) error
  22. Delete(ctx context.Context, ID int) error
  23. }