Source code for ores.wsgi.responses

import logging

from flask_jsonpify import jsonify

SERVER_OVERLOADED = 503
NOT_FOUND = 404
TIMEOUT = 504
TOO_MANY_REQUESTS = 429
logger = logging.getLogger(__name__)


[docs]def no_content(): return "", 204
[docs]def error(status, code, message): return jsonify({'error': {'code': code, 'message': message}}), status
[docs]def not_implemented(message=None): return error(501, 'not implemented', message or "Route not implemented yet.")
[docs]def model_info_lookup_error(exc): return bad_request("Model information could not be retrieved for {0}" .format(exc))
[docs]def bad_request(message): return error(400, 'bad request', message)
[docs]def forbidden(message=None): return error(403, 'forbidden', message or "This request requires authentication.")
[docs]def not_found(message=None): return error(NOT_FOUND, 'not found', message or "Nothing found at this location.")
[docs]def server_overloaded(message=None): return error(SERVER_OVERLOADED, 'server overloaded', message or ("Cannot process your request because the " + "server is overloaded. Try again in a" + "few minutes."))
[docs]def unknown_error(message): logger.error(message) return error(500, 'internal server error', message)
[docs]def timeout_error(message=None): return error(TIMEOUT, 'request_timeout', message or ("Cannot process your request because the " + "server timed out."))
[docs]def too_many_requests_error(message=None): return error(TOO_MANY_REQUESTS, 'too_many_requests', message or ("A limited number of parallel connections per " + "IP is allowed."))