soma_openapi/http/
client.rs1use std::time::Duration;
2
3use crate::error::OpenApiError;
4
5const CONNECT_TIMEOUT: Duration = Duration::from_secs(3);
6const PER_CALL_TIMEOUT: Duration = Duration::from_secs(20);
7
8pub(crate) fn base_builder() -> reqwest::ClientBuilder {
9 drop(rustls::crypto::ring::default_provider().install_default());
10 reqwest::Client::builder()
11 .redirect(reqwest::redirect::Policy::none())
12 .https_only(true)
13 .no_proxy()
14 .connect_timeout(CONNECT_TIMEOUT)
15 .timeout(PER_CALL_TIMEOUT)
16}
17
18pub fn build_dispatch_client() -> Result<reqwest::Client, OpenApiError> {
19 base_builder()
20 .build()
21 .map_err(|_| OpenApiError::ClientBuildFailed)
22}
23
24#[cfg(test)]
25pub(crate) fn build_loopback_test_client() -> reqwest::Client {
26 drop(rustls::crypto::ring::default_provider().install_default());
27 reqwest::Client::builder()
28 .redirect(reqwest::redirect::Policy::none())
29 .timeout(Duration::from_secs(5))
30 .build()
31 .expect("loopback test client")
32}