def error_handler(error): if isinstance(error, AXException): data = error.json() if isinstance(error, AXApiInvalidParam): status_code = 400 elif isinstance(error, AXApiResourceNotFound): status_code = 404 else: status_code = 500 f = app.logger.exception if status_code == 500 else app.logger.error f('Error occurred: code = %s, message = %s, detail = %s', data.get('code'), data.get('message'), data.get('detail')) else: # If exception is HTTPError, we need to examine its status code to determine # if it is client-side error or server-side error if isinstance(error, HTTPError): if error.response.status_code == 404: _error = AXApiResourceNotFound elif 400 <= error.response.status_code < 500: _error = AXApiInvalidParam else: _error = AXApiInternalError else: _error = AXApiInternalError data = { 'code': _error.code, 'message': str(error), 'detail': str(error) } status_code = _error.status_code f = app.logger.exception if status_code == 500 else app.logger.error f('Error occurred: code = %s, message = %s, detail = %s', data.get('code'), data.get('message'), data.get('detail')) return ax_make_response(original_jsonify(data), status_code)
def error_handler(error): if isinstance(error, AXException): status_code = error.status_code error_dict = error.json() if status_code != 404: _app.logger.exception(error_dict) return ax_make_response(original_jsonify(error_dict), status_code) data = {"message": str(error), "backtrace": str(traceback.format_exc())} if isinstance(error, ValueError) or isinstance(error, KeyError) or isinstance(error, AssertionError): _app.logger.exception(str(error)) status_code = 400 else: _app.logger.exception("Internal error") status_code = 400 return ax_make_response(original_jsonify(data), status_code)
def jsonify(*args, **kwargs): if current_user.is_authenticated: if 'meta' in kwargs: kwargs['meta']['csrf_token'] = generate_csrf() else: kwargs['meta'] = {'csrf_token': generate_csrf()} return original_jsonify(*args, **kwargs)
def error_handler(error): if isinstance(error, AXException): if isinstance(error, AXIllegalArgumentException): status_code = 400 elif isinstance(error, AXServiceTemporarilyUnavailableException): status_code = 503 elif isinstance(error, AXIllegalOperationException): status_code = 500 else: status_code = 500 error_dict = error.json() _app.logger.exception(error_dict) return ax_make_response(original_jsonify(error_dict), status_code) data = {"message": str(error), "backtrace": str(traceback.format_exc())} if isinstance(error, ValueError): _app.logger.warn(str(error)) status_code = 400 else: _app.logger.exception("Internal error") status_code = 500 return ax_make_response(original_jsonify(data), status_code)
def jsonify(*args, **kwargs): return ax_make_response(original_jsonify(*args, **kwargs), 200)