amazon_spapi/apis/
configuration.rs1use reqwest::{Client, Request, Response, Error};
2use std::{cell::RefCell, ops::Deref};
3
4use crate::client::{RateLimitGuard, SpapiClient};
5
6#[derive(Debug, Clone)]
7pub struct CustomClient {
8 inner: Client,
9}
10
11impl CustomClient {
12 pub fn new(client: Client) -> Self {
13 Self { inner: client }
14 }
15
16 pub async fn execute(&self, request: Request) -> Result<Response, Error> {
17 log::debug!("Executing request to: {}", request.url());
18 log::debug!("Executing request method: {}", request.method());
19 log::debug!("Executing request headers: {:?}", request.headers());
20 log::debug!("Executing request body: {:?}", request.body());
21
22 let result = self.inner.execute(request).await;
23
24 log::debug!("Response status: {:?}", result.as_ref().map(|r| r.status()));
25 log::debug!("Response headers: {:?}", result.as_ref().map(|r| r.headers()));
26
27 result
28 }
29}
30
31impl Deref for CustomClient {
32 type Target = Client;
33
34 fn deref(&self) -> &Self::Target {
35 &self.inner
36 }
37}
38
39#[derive(Debug, Clone)]
40pub struct Configuration {
41 pub base_path: String,
42 pub user_agent: Option<String>,
43 pub client: CustomClient,
44}