exceptions.py 815 B

1234567891011121314151617181920212223242526272829303132
  1. __doc__ = """ Exceptions and special return codes. """
  2. BREAK = "__break"
  3. CONT = "__continue"
  4. class ApiError(Exception):
  5. """ Base class for all exceptions expecting an API response. """
  6. status_code = 400
  7. msg = "An undefined error occurred."
  8. def __init__(self, msg=None, status_code=None):
  9. if msg is not None:
  10. self.msg = msg
  11. if status_code is not None:
  12. self.status_code = status_code
  13. def to_json(self):
  14. return {
  15. "message": self.msg,
  16. "status_code": self.status_code,
  17. }
  18. class ConfigError(ApiError):
  19. """ Raised when a malformed configuration is detected. """
  20. status_code = 500
  21. class UpstreamError(ApiError):
  22. """ Raised when an external service responds with an error code. """
  23. status_code = 500