def pre_process_request()

in modular_sdk/services/impl/maestro_http_transport_service.py [0:0]


    def pre_process_request(self, command_name: str, parameters: list[dict] | dict,
                            secure_parameters: list | None = None,
                            is_flat_request: bool = False,
                            async_request: bool = False,
                            compressed: bool = False, config=None
                            ) -> tuple[bytes, dict]:
        request_id = generate_id()
        _LOG.debug('Going to pre-process HTTP request')
        message = build_message(
            command_name=command_name,
            parameters=parameters,
            request_id=request_id,
            is_flat_request=is_flat_request,
            compressed=compressed,
        )
        secure_message = message
        # todo that is strange because why uncompressed data
        #  should lack parameters?
        if not compressed:
            secure_message = build_secure_message(
                command_name=command_name,
                parameters_to_secure=parameters,
                secure_parameters=secure_parameters,
                request_id=request_id,
                is_flat_request=is_flat_request,
            )
        _LOG.debug(
            f'Prepared command: {command_name}\nCommand format: {secure_message}'
        )
        signer = MaestroSignatureBuilder(
            access_key=config.sdk_access_key if config and config.sdk_access_key else self.access_key,
            secret_key=config.sdk_secret_key if config and config.sdk_secret_key else self.secret_key,
            user=config.maestro_user if config and config.maestro_user else self.user,
        )
        encrypted_body = signer.encrypt(data=message)

        _LOG.debug('Message encrypted')
        # sign headers
        headers = signer.get_http_signed_headers(
            async_request=async_request, compressed=compressed,
        )
        _LOG.debug('Signed headers prepared')
        return encrypted_body, headers