use super::profile::FetchProfile;
use reqwest::{redirect, Client};
use std::time::Duration;
const REDIRECT_LIMIT: usize = 10;
const POOL_IDLE_TIMEOUT_SEC: u64 = 90;
const POOL_MAX_IDLE_PER_HOST: usize = 16;
pub(crate) fn build_client_for_profile(profile: FetchProfile) -> Result<Client, String> {
let builder = Client::builder()
.cookie_store(true)
.redirect(redirect::Policy::limited(REDIRECT_LIMIT))
.gzip(true)
.brotli(true)
.deflate(true)
.pool_idle_timeout(Duration::from_secs(POOL_IDLE_TIMEOUT_SEC))
.pool_max_idle_per_host(POOL_MAX_IDLE_PER_HOST);
let builder = match profile {
FetchProfile::Minimal => builder
.cookie_store(false) .redirect(redirect::Policy::limited(5)), _ => builder,
};
builder
.build()
.map_err(|e| format!("Failed to build client: {}", e))
}