Make abort return a json block, which is apparently what the client expects. Remove unused imports. Fix line length and kwarg problems.

This commit is contained in:
yackob03 2014-01-24 17:00:42 -05:00
parent 0d84cfdf17
commit f585430399
4 changed files with 58 additions and 39 deletions

View file

@ -1,10 +1,12 @@
import logging
from flask import request, abort as flask_abort, make_response
from auth.auth import process_auth, extract_namespace_repo_from_session, get_authenticated_user, get_validated_token
from flask import request, abort as flask_abort, jsonify
from auth.auth import get_authenticated_user, get_validated_token
logger = logging.getLogger(__name__)
DEFAULT_MESSAGE = {}
DEFAULT_MESSAGE[400] = 'Invalid Request'
DEFAULT_MESSAGE[401] = 'Unauthorized'
@ -13,7 +15,8 @@ DEFAULT_MESSAGE[404] = 'Not Found'
DEFAULT_MESSAGE[409] = 'Conflict'
def abort(status_code, message=None, **kwargs):
message = str(message) % kwargs if message else DEFAULT_MESSAGE.get(status_code, '')
message = (str(message) % kwargs if message else
DEFAULT_MESSAGE.get(status_code, ''))
# Add the user information.
auth_user = get_authenticated_user()
@ -21,11 +24,16 @@ def abort(status_code, message=None, **kwargs):
if auth_user:
message = '%s (user: %s)' % (message, auth_user.username)
elif auth_token:
message = '%s (token: %s)' % (message, auth_token.friendly_name or auth_token.code)
message = '%s (token: %s)' % (message,
auth_token.friendly_name or auth_token.code)
# Log the abort.
logger.error('Error %s: %s. Arguments: %s' % (status_code, message, request.view_args))
logger.warning('Error %s: %s. Arguments: %s' % (status_code, message,
request.view_args))
resp = jsonify({'error': message})
resp.status_code = status_code
# Report the abort to the user.
flask_abort(make_response(message, status_code, {}))
flask_abort(resp)