outbox_pattern_processor/
http_gateway.rs

1use std::time::Duration;
2
3use crate::error::OutboxPatternProcessorError;
4use reqwest::Client;
5use reqwest_middleware::{ClientBuilder, ClientWithMiddleware};
6
7#[derive(Clone)]
8pub struct HttpGateway {
9    pub client: ClientWithMiddleware,
10}
11
12impl HttpGateway {
13    pub fn new(request_timeout: u64) -> Result<Self, OutboxPatternProcessorError> {
14        let client = ClientBuilder::new(
15            Client::builder()
16                .timeout(Duration::from_secs(request_timeout))
17                .build()
18                .map_err(|error| OutboxPatternProcessorError::new(&error.to_string(), "Failed to create http gateway client"))?,
19        )
20        .build();
21
22        Ok(Self { client })
23    }
24}