| 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}) |
| |