def convert_api_params()

in modular_api/helpers/params_converter.py [0:0]


def convert_api_params(body, command_def, secure_parameters):
    """
    Convert api params and check
    :param body: The body of the request
    :param command_def: The command definition of the current
    command from command_base.json file
    :param secure_parameters: Secure parameters of the command
    :return: List of the temporary files
    """
    parameters_list = []
    log_parameters_list = []
    temp_files_list = []
    def_map = {j['name']: i for i, j in enumerate(command_def['parameters'])}
    for key, value in body.items():
        if def_map.get(key) and command_def['parameters'][def_map[key]].get(
                'convert_content_to_file'):

            meta_file_extensions = command_def['parameters'][def_map[key]].get(
                'temp_file_extension')
            received_file_extension = value['file_extension']
            is_valid_file_extensions_passed(
                meta_file_extensions=meta_file_extensions,
                received_file_extension=received_file_extension
            )

            temp_file_key = TEMP_FILE_TEMPLATE.format(key)
            temp_file = os.path.join(TEMP_FILE_FOLDER_PATH, temp_file_key)
            temp_file += received_file_extension

            process_file_with_extension(
                file_extension=received_file_extension,
                file_content=b64decode(value['file_content']),
                temp_file=temp_file
            )

            parameters_list, log_parameters_list = \
                build_param_and_value_in_click_format(
                    key, temp_file, secure_parameters, parameters_list,
                    log_parameters_list)

            temp_files_list.append(temp_file)
            continue

        is_flag = command_def['parameters'][def_map[key]].get('is_flag')
        if is_flag:
            if value not in [True, 'True', 'true']:
                raise ModularApiBadRequestException(
                    f'Unexpected value for the flag \'{key}\'. '
                    f'Only \'True\' is allowed, got \'{value}\'.'
                )
            pretty_param = convert_param(key)
            parameters_list.append(pretty_param)
            log_parameters_list.append(pretty_param)

        elif isinstance(value, (str, int, float, bool)):
            parameters_list, log_parameters_list = \
                build_param_and_value_in_click_format(
                    key, value, secure_parameters, parameters_list,
                    log_parameters_list)

        elif isinstance(value, list):
            for param_value in value:
                parameters_list, log_parameters_list = \
                    build_param_and_value_in_click_format(
                        key, param_value, secure_parameters, parameters_list,
                        log_parameters_list)

    return parameters_list, temp_files_list, log_parameters_list