errors.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. """MakerWorld error types.
  2. Subclasses of the generic provider hierarchy so route layers can map errors
  3. with the provider-agnostic classes (:class:`ProviderError` and friends) while
  4. callers that know they're talking to MakerWorld get the specific types.
  5. """
  6. from __future__ import annotations
  7. from backend.app.services.model_providers.base import (
  8. ProviderAuthError,
  9. ProviderError,
  10. ProviderForbiddenError,
  11. ProviderNotFoundError,
  12. ProviderUnavailableError,
  13. ProviderUrlError,
  14. )
  15. class MakerWorldError(ProviderError):
  16. """Base exception for MakerWorld API errors."""
  17. class MakerWorldAuthError(ProviderAuthError, MakerWorldError):
  18. """Raised when MakerWorld requires a Bambu Cloud token and we don't have
  19. one (or the one we sent was rejected). True auth failure."""
  20. class MakerWorldForbiddenError(ProviderForbiddenError, MakerWorldError):
  21. """Raised when MakerWorld refuses access despite valid authentication —
  22. content-gated (points required, purchase required, region restricted,
  23. early-access, etc.)."""
  24. class MakerWorldNotFoundError(ProviderNotFoundError, MakerWorldError):
  25. """Raised when a design / profile / instance doesn't exist."""
  26. class MakerWorldUnavailableError(ProviderUnavailableError, MakerWorldError):
  27. """Raised on 5xx, network errors, or malformed payloads."""
  28. class MakerWorldUrlError(ProviderUrlError, MakerWorldError):
  29. """Raised when a URL isn't a makerworld.com model page."""