def validate_request()

in modular_api/web_service/response_processor.py [0:0]


def validate_request(command, req_params, method, user_meta):
    if command['route']['method'] != method:
        raise ModularApiBadRequestException(
            f'The command {command["route"]["method"]} '
            f'is not available by method {method}')
    command_def_params = command['parameters']

    required_params = [param for param in command_def_params if
                       param['required']]
    all_param_names = [param['name'] for param in command_def_params]

    if len(all_param_names) == len(req_params) or len(req_params) > len(
            all_param_names):
        if not set(all_param_names) == set(req_params):
            wrong_parameters_specified_message = 'Wrong parameters specified'
            _LOG.error(wrong_parameters_specified_message)
            raise ModularApiBadRequestException(
                wrong_parameters_specified_message
            )
    else:
        required_params_names = [param['name'] for param in
                                 required_params]
        not_provided_params = set(required_params_names).difference(req_params)
        if not_provided_params:
            missed_params_error_message = \
                f'Not all required parameters specified: ' \
                f'{", ".join(not_provided_params)}'
            _LOG.error(missed_params_error_message)
            raise ModularApiBadRequestException(missed_params_error_message)
    __check_user_allowed_values(
        user_meta=user_meta,
        requested_params=req_params
    )
    return req_params