1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- import flask
- from werkzeug.exceptions import HTTPException
- from ._http import HTTPStatus
- __all__ = (
- "abort",
- "RestError",
- "ValidationError",
- "SpecsError",
- )
- def abort(code=HTTPStatus.INTERNAL_SERVER_ERROR, message=None, **kwargs):
- """
- Properly abort the current request.
- Raise a `HTTPException` for the given status `code`.
- Attach any keyword arguments to the exception for later processing.
- :param int code: The associated HTTP status code
- :param str message: An optional details message
- :param kwargs: Any additional data to pass to the error payload
- :raise HTTPException:
- """
- try:
- flask.abort(code)
- except HTTPException as e:
- if message:
- kwargs["message"] = str(message)
- if kwargs:
- e.data = kwargs
- raise
- class RestError(Exception):
- """Base class for all Flask-RESTX Errors"""
- def __init__(self, msg):
- self.msg = msg
- def __str__(self):
- return self.msg
- class ValidationError(RestError):
- """A helper class for validation errors."""
- pass
- class SpecsError(RestError):
- """A helper class for incoherent specifications."""
- pass
|