Source code for chaosmonkey.api.api_errors
"""
This module contains an object that represent an API Error
Any APIError thrown in an endpoint is handled to return to the user
a proper json error with custom status code and message
"""
[docs]class APIError(Exception):
"""
Represents an API Error
:param message: message to be returned to the user
:param status_code: response status code (defaults to 400)
:param payload: custom payload to give extra info in the response
Example:
>>> raise APIError("Error detected", 500, {"extra": "extra_info"})
"""
def __init__(self, message, status_code=None, payload=None):
Exception.__init__(self)
self.message = message
self.status_code = status_code or 400
self.payload = payload
[docs] def to_dict(self):
"""Convert exception to dict"""
dict_ = dict(self.payload or ())
dict_['msg'] = self.message
return dict_
def __str__(self):
return '[%d] %s' % (self.status_code, self.message)