This commit is contained in:
Kenneth Kehl
2023-08-29 14:54:30 -07:00
parent 19dcd7a48b
commit 1ecb747c6d
588 changed files with 34100 additions and 23589 deletions

View File

@@ -11,7 +11,6 @@ from app.exceptions import ArchiveValidationError
class VirusScanError(Exception):
def __init__(self, message):
super().__init__(message)
@@ -25,20 +24,15 @@ class InvalidRequest(Exception):
self.status_code = status_code
def to_dict(self):
return {'result': 'error', 'message': self.message}
return {"result": "error", "message": self.message}
def to_dict_v2(self):
'''
"""
Version 2 of the public api error response.
'''
"""
return {
"status_code": self.status_code,
"errors": [
{
"error": self.__class__.__name__,
"message": self.message
}
]
"errors": [{"error": self.__class__.__name__, "message": self.message}],
}
def __str__(self):
@@ -51,16 +45,16 @@ def register_errors(blueprint):
def invalid_format(error):
# Please not that InvalidEmailError is re-raised for InvalidEmail or InvalidPhone,
# work should be done in the utils app to tidy up these errors.
return jsonify(result='error', message=str(error)), 400
return jsonify(result="error", message=str(error)), 400
@blueprint.errorhandler(AuthError)
def authentication_error(error):
return jsonify(result='error', message=error.message), error.code
return jsonify(result="error", message=error.message), error.code
@blueprint.errorhandler(ValidationError)
def marshmallow_validation_error(error):
current_app.logger.info(error)
return jsonify(result='error', message=error.messages), 400
return jsonify(result="error", message=error.messages), 400
@blueprint.errorhandler(JsonSchemaValidationError)
def jsonschema_validation_error(error):
@@ -70,7 +64,7 @@ def register_errors(blueprint):
@blueprint.errorhandler(ArchiveValidationError)
def archive_validation_error(error):
current_app.logger.info(error)
return jsonify(result='error', message=str(error)), 400
return jsonify(result="error", message=str(error)), 400
@blueprint.errorhandler(InvalidRequest)
def invalid_data(error):
@@ -83,28 +77,32 @@ def register_errors(blueprint):
def bad_request(e):
msg = e.description or "Invalid request parameters"
current_app.logger.exception(msg)
return jsonify(result='error', message=str(msg)), 400
return jsonify(result="error", message=str(msg)), 400
@blueprint.errorhandler(401)
def unauthorized(e):
error_message = "Unauthorized: authentication token must be provided"
return jsonify(result='error', message=error_message), 401, [('WWW-Authenticate', 'Bearer')]
return (
jsonify(result="error", message=error_message),
401,
[("WWW-Authenticate", "Bearer")],
)
@blueprint.errorhandler(403)
def forbidden(e):
error_message = "Forbidden: invalid authentication token provided"
return jsonify(result='error', message=error_message), 403
return jsonify(result="error", message=error_message), 403
@blueprint.errorhandler(429)
def limit_exceeded(e):
current_app.logger.exception(e)
return jsonify(result='error', message=str(e.description)), 429
return jsonify(result="error", message=str(e.description)), 429
@blueprint.errorhandler(NoResultFound)
@blueprint.errorhandler(DataError)
def no_result_found(e):
current_app.logger.info(e)
return jsonify(result='error', message="No result found"), 404
return jsonify(result="error", message="No result found"), 404
# this must be defined after all other error handlers since it catches the generic Exception object
@blueprint.app_errorhandler(500)
@@ -112,6 +110,6 @@ def register_errors(blueprint):
def internal_server_error(e):
# if e is a werkzeug InternalServerError then it may wrap the original exception. For more details see:
# https://flask.palletsprojects.com/en/1.1.x/errorhandling/?highlight=internalservererror#unhandled-exceptions
e = getattr(e, 'original_exception', e)
e = getattr(e, "original_exception", e)
current_app.logger.exception(e)
return jsonify(result='error', message="Internal server error"), 500
return jsonify(result="error", message="Internal server error"), 500