feat: Apple pay session flow integrate (#138)

This commit is contained in:
Sangamesh Kulkarni
2022-12-14 17:59:27 +05:30
committed by GitHub
parent 1f0d1deb2b
commit 8b8ff8188f
29 changed files with 495 additions and 33 deletions

View File

@ -36,6 +36,8 @@ pub(super) fn create_client(
proxy: &Proxy,
should_bypass_proxy: bool,
request_time_out: u64,
client_certificate: Option<String>,
client_certificate_key: Option<String>,
) -> CustomResult<reqwest::Client, errors::ApiClientError> {
let mut client_builder = reqwest::Client::builder();
@ -58,6 +60,36 @@ pub(super) fn create_client(
}
}
client_builder = match (client_certificate, client_certificate_key) {
(Some(encoded_cert), Some(encoded_cert_key)) => {
let decoded_cert = base64::decode(encoded_cert)
.into_report()
.change_context(errors::ApiClientError::CertificateDecodeFailed)?;
let decoded_cert_key = base64::decode(encoded_cert_key)
.into_report()
.change_context(errors::ApiClientError::CertificateDecodeFailed)?;
let certificate = String::from_utf8(decoded_cert)
.into_report()
.change_context(errors::ApiClientError::CertificateDecodeFailed)?;
let certificate_key = String::from_utf8(decoded_cert_key)
.into_report()
.change_context(errors::ApiClientError::CertificateDecodeFailed)?;
let identity = reqwest::Identity::from_pkcs8_pem(
certificate.as_bytes(),
certificate_key.as_bytes(),
)
.into_report()
.change_context(errors::ApiClientError::CertificateDecodeFailed)?;
client_builder.identity(identity)
}
_ => client_builder,
};
let duration = Duration::from_secs(request_time_out);
client_builder = client_builder.timeout(duration);