blob: 52badf8d61e4e2d3fa35654e7675b25a16e2ba9f [file] [log] [blame]
from rest_framework.exceptions import APIException
from rest_framework.exceptions import PermissionDenied as RestFrameworkPermissionDenied
class XOSProgrammingError(APIException):
status_code=400
def __init__(self, why="programming error", fields={}):
APIException.__init__(self, {"error": "XOSProgrammingError",
"specific_error": why,
"fields": fields})
class XOSPermissionDenied(RestFrameworkPermissionDenied):
def __init__(self, why="permission error", fields={}):
APIException.__init__(self, {"error": "XOSPermissionDenied",
"specific_error": why,
"fields": fields})
class XOSNotAuthenticated(RestFrameworkPermissionDenied):
def __init__(self, why="you must be authenticated to use this api", fields={}):
APIException.__init__(self, {"error": "XOSNotAuthenticated",
"specific_error": why,
"fields": fields})
class XOSNotFound(RestFrameworkPermissionDenied):
status_code=404
def __init__(self, why="object not found", fields={}):
APIException.__init__(self, {"error": "XOSNotFound",
"specific_error": why,
"fields": fields})
class XOSValidationError(APIException):
status_code=403
def __init__(self, why="validation error", fields={}):
APIException.__init__(self, {"error": "XOSValidationError",
"specific_error": why,
"fields": fields})
class XOSDuplicateKey(APIException):
status_code=400
def __init__(self, why="duplicate key", fields={}):
APIException.__init__(self, {"error": "XOSDuplicateKey",
"specific_error": why,
"fields": fields})
class XOSMissingField(APIException):
status_code=400
def __init__(self, why="missing field", fields={}):
APIException.__init__(self, {"error": "XOSMissingField",
"specific_error": why,
"fields": fields})
class XOSConfigurationError(APIException):
status_code=400
def __init__(self, why="configuration error", fields={}):
APIException.__init__(self, {"error": "XOSConfigurationError",
"specific_error": why,
"fields": fields})
class XOSConflictingField(APIException):
status_code=400
def __init__(self, why="conflicting field", fields={}):
APIException.__init__(self, {"error": "XOSMissingField",
"specific_error": why,
"fields": fields})