def create_parameter_list(request_type, service_name, target_client,operation, json_params): param_list = {} method_args = inspect.getargspec(getattr(target_client,operation)) for arg in method_args[0]: if arg == 'self' or arg == 'headers': continue # skip self and headers from being set if not json_params: if request.args.has_key(arg): param_type = get_message_class_in_parm_type(service_name, operation, arg) if param_type == 'str': param_list[arg] = convert_unicode(request.args[arg]) else: param_list[arg] = ast.literal_eval(convert_unicode(request.args[arg])) else: if json_params[request_type]['params'].has_key(arg): #TODO - Potentially remove these conversions whenever ION objects support unicode # UNICODE strings are not supported with ION objects object_params = convert_unicode(json_params[request_type]['params'][arg]) if is_ion_object_dict(object_params): param_list[arg] = create_ion_object(object_params) else: #Not an ION object so handle as a simple type then. param_list[arg] = convert_unicode(json_params[request_type]['params'][arg]) return param_list
def create_parameter_list(service_name, target_client,operation, json_params): param_list = {} method_args = inspect.getargspec(getattr(target_client,operation)) for arg in method_args[0]: if arg == 'self' or arg == 'headers': continue # skip self and headers from being set if not json_params: if request.args.has_key(arg): param_type = get_message_class_in_parm_type(service_name, operation, arg) if param_type == 'str': param_list[arg] = convert_unicode(request.args[arg]) else: param_list[arg] = ast.literal_eval(convert_unicode(request.args[arg])) else: if json_params['serviceRequest']['params'].has_key(arg): #This if handles ION objects as a 2 element list: [Object Type, { field1: val1, ...}] if isinstance(json_params['serviceRequest']['params'][arg], list): #TODO - Potentially remove these conversions whenever ION objects support unicode # UNICODE strings are not supported with ION objects ion_object_name = convert_unicode(json_params['serviceRequest']['params'][arg][0]) object_params = convert_unicode(json_params['serviceRequest']['params'][arg][1]) param_list[arg] = create_ion_object(ion_object_name, object_params) else: # The else branch is for simple types ( non-ION objects ) param_list[arg] = convert_unicode(json_params['serviceRequest']['params'][arg]) return param_list
def create_parameter_list(request_type, service_name, target_client,operation, json_params): param_list = {} method_args = inspect.getargspec(getattr(target_client,operation)) for arg in method_args[0]: if arg == 'self' or arg == 'headers': continue # skip self and headers from being set if not json_params: if request.args.has_key(arg): param_type = get_message_class_in_parm_type(service_name, operation, arg) if param_type == 'str': if isinstance(request.args[arg], unicode): param_list[arg] = str(request.args[arg].encode('utf8')) else: param_list[arg] = str(request.args[arg]) else: param_list[arg] = ast.literal_eval(str(request.args[arg])) else: if json_params[request_type]['params'].has_key(arg): object_params = json_params[request_type]['params'][arg] if is_ion_object_dict(object_params): param_list[arg] = create_ion_object(object_params) else: #Not an ION object so handle as a simple type then. if isinstance(json_params[request_type]['params'][arg], unicode): param_list[arg] = str(json_params[request_type]['params'][arg].encode('utf8')) else: param_list[arg] = json_params[request_type]['params'][arg] return param_list
def create_parameter_list(request_type, service_name, target_client, operation, json_params): param_list = {} method_args = inspect.getargspec(getattr(target_client, operation)) for arg in method_args[0]: if arg == 'self' or arg == 'headers': continue # skip self and headers from being set if not json_params: if request.args.has_key(arg): param_type = get_message_class_in_parm_type( service_name, operation, arg) if param_type == 'str': if isinstance(request.args[arg], unicode): param_list[arg] = str(request.args[arg].encode('utf8')) else: param_list[arg] = str(request.args[arg]) else: param_list[arg] = ast.literal_eval(str(request.args[arg])) else: if json_params[request_type]['params'].has_key(arg): object_params = json_params[request_type]['params'][arg] if is_ion_object_dict(object_params): param_list[arg] = create_ion_object(object_params) else: #Not an ION object so handle as a simple type then. if isinstance(json_params[request_type]['params'][arg], unicode): param_list[arg] = str(json_params[request_type] ['params'][arg].encode('utf8')) else: param_list[arg] = json_params[request_type]['params'][ arg] return param_list