interfaces.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package handlers
  2. import (
  3. "context"
  4. "gogs.fxtmmsk.ru/foxtime/photoplaces/backend/internal/models"
  5. "gogs.fxtmmsk.ru/foxtime/photoplaces/backend/internal/services"
  6. )
  7. type PlaceService interface {
  8. List(ctx context.Context, filter models.PlaceFilter) (*models.PaginatedPlaces, error)
  9. GetByID(ctx context.Context, id string, fetchTags bool) (*models.Place, error)
  10. Create(ctx context.Context, input services.CreatePlaceInput) (*models.Place, error)
  11. Update(ctx context.Context, input services.UpdatePlaceInput, isModerator bool) (*models.Place, error)
  12. Delete(ctx context.Context, id, userID string) error
  13. Moderate(ctx context.Context, id, action, comment, moderatorID string) error
  14. HardDelete(ctx context.Context, id, moderatorID string) error
  15. Restore(ctx context.Context, id, moderatorID string) error
  16. }
  17. type AuthService interface {
  18. Register(ctx context.Context, input services.RegisterInput) (*services.AuthResult, string, error)
  19. Login(ctx context.Context, input services.LoginInput) (*services.AuthResult, string, error)
  20. RefreshSession(ctx context.Context, plainRefreshToken string) (*services.AuthResult, string, error)
  21. RevokeSession(ctx context.Context, plainRefreshToken string) error
  22. GetUser(ctx context.Context, userID string) (*models.User, error)
  23. ValidateAccessToken(tokenString string) (*services.TokenClaims, error)
  24. }
  25. type UserRepo interface {
  26. GetByID(ctx context.Context, id string) (*models.User, error)
  27. GetByEmail(ctx context.Context, email string) (*models.User, error)
  28. Create(ctx context.Context, user *models.User) error
  29. Update(ctx context.Context, user *models.User) error
  30. UpdateRole(ctx context.Context, id, role string) error
  31. UpdateStatus(ctx context.Context, id, status string) error
  32. HasSuperadmin(ctx context.Context) (bool, error)
  33. CountByRole(ctx context.Context, role string) (int, error)
  34. List(ctx context.Context, filter models.UserFilter) ([]*models.User, error)
  35. }