def get_json_and_verify_params(params=None): params = params or [] if request.content_type != 'application/json': raise manager_exceptions.UnsupportedContentTypeError( 'Content type must be application/json') request_dict = request.json is_params_dict = isinstance(params, dict) def is_optional(param_name): return is_params_dict and params[param_name].get('optional', False) def check_type(param_name): return is_params_dict and params[param_name].get('type', None) for param in params: if param not in request_dict: if is_optional(param): continue raise manager_exceptions.BadParametersError( 'Missing {0} in json request body'.format(param)) param_type = check_type(param) if param_type and not isinstance(request_dict[param], param_type): raise manager_exceptions.BadParametersError( '{0} parameter is expected to be of type {1} but is of type ' '{2}'.format(param, param_type.__name__, type(request_dict[param]).__name__)) return request_dict
def verify_json_content_type(): if request.content_type != 'application/json': raise manager_exceptions.UnsupportedContentTypeError( 'Content type must be application/json')