1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use serde::{Deserialize, Serialize};

/// Http client config
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
pub struct HttpClientConfig {
    /// The timeout of request
    pub timeout: u64,
}

/// Http client component
pub struct HttpClientComponent;

impl HttpClientComponent {
    /// Get request client
    pub fn component(config: HttpClientConfig) -> color_eyre::Result<reqwest::Client> {
        Ok(reqwest::ClientBuilder::new()
            .timeout(std::time::Duration::from_secs(config.timeout))
            .build()?)
    }
}