def wrapper(method=''): response_obj, status_code = site.dispatch(request, method) if isinstance(response_obj, Response): return response_obj, response_obj.status_code is_batch = type(response_obj) is list # Write all responses to a jsonfile in the /tmp directory import time, json, ast from copy import copy, deepcopy filename = f"/tmp/{str(time.time())}" with open(f"{filename}_request.json", "w") as file: request_string = extract_raw_data_request(request).\ replace("\'","\"").\ replace("None", "\'\'").\ replace("True","true").\ replace("False","false").\ replace("\"\"\"\"", "\"\'\'\"") # Wo don't need to log empty requests (OPTIONS/CORS) if request_string != "": json_object = json.loads(request_string) # for field_name, field in json_object.items(): # cleanup_non_serializable_fields(field_name, field) file.write(json.dumps(json_object, indent=4, sort_keys=True)) with open(f"{filename}_response.json", "w") as file: # It is possible that we receive a an error message with stacktrace # from an external library (eg Flask), This stacktrace is possibly # not correctly quoted for json. So we need to replace double quotes # for single quotes. if "error" in response_obj and "stack" in response_obj["error"]["message"]: response_obj["error"]["message"]["stack"].replace("\"","'") # Log the response object # Cleanup all Non-Serializable fields (cast them to string) if "result" in response_obj and type(response_obj["result"]) is dict: for field_name, field in response_obj.items(): field = cleanup_non_serializable_fields(field_name, field) elif "result" in response_obj and type(response_obj["result"]) is list: for index, list_item in enumerate(copy(response_obj["result"])): for field_name, field in copy(list_item).items(): response_obj["result"][index][field_name] = cleanup_non_serializable_fields(field_name, field) file.write(json.dumps(response_obj, indent=4, sort_keys=True)) if current_app.config['DEBUG']: logging.debug('request: %s', extract_raw_data_request(request)) logging.debug('response: %s, %s', status_code, response_obj) return jsonify_status_code(status_code, response_obj, is_batch=is_batch), status_code
def _site_api(method=''): response_dict, status_code = default_site.dispatch(request, method) if current_app.config['DEBUG']: print('\n ++ data request') print('>> request: {0}'.format(extract_raw_data_request(request))) print('<< response: {0}, {1}'.format(status_code, response_dict)) return jsonify_status_code(status_code, response_dict), status_code
def _site_api(method=""): response_dict, status_code = default_site.dispatch(request, method) if current_app.config["DEBUG"]: print("\n ++ data request") print(">> request: {0}".format(extract_raw_data_request(request))) print("<< response: {0}, {1}".format(status_code, response_dict)) return jsonify_status_code(status_code, response_dict), status_code
def _site_api(method=''): response_dict, status_code = default_site.dispatch(request, method) if current_app.config['DEBUG']: print '\n ++ data request' print '>> request: {0}'.format(extract_raw_data_request(request)) print '<< response: {0}, {1}'.format(status_code, response_dict) return jsonify_status_code(status_code, response_dict), status_code
def wrapper(method=''): response_dict, status_code = (yield from site.dispatch(request, method)) if current_app.config['DEBUG']: logging.debug('request: %s', extract_raw_data_request(request)) logging.debug('response: %s, %s', status_code, response_dict) return jsonify_status_code(status_code, response_dict), status_code
def wrapper(method=''): response_dict, status_code = site.dispatch(request, method) if current_app.config['DEBUG']: logging.debug('request: {0}'.format( extract_raw_data_request(request))) logging.debug( 'response: {0}, {1}'.format(status_code, response_dict)) return jsonify_status_code(status_code, response_dict), status_code
def wrapper(method=''): response_obj, status_code = site.dispatch(request, method) if isinstance(response_obj, Response): return response_obj, response_obj.status_code is_batch = type(response_obj) is list if current_app.config['DEBUG']: logging.debug('request: %s', extract_raw_data_request(request)) logging.debug('response: %s, %s', status_code, response_obj) return jsonify_status_code(status_code, response_obj, is_batch=is_batch), status_code