mauth_client/
reqwest_middleware.rs

1use http::Extensions;
2use reqwest::{Request, Response};
3use reqwest_middleware::{Middleware, Next, Result};
4
5use crate::{MAuthInfo, sign_outgoing::SigningError};
6
7#[async_trait::async_trait]
8impl Middleware for MAuthInfo {
9    async fn handle(
10        &self,
11        mut req: Request,
12        extensions: &mut Extensions,
13        next: Next<'_>,
14    ) -> Result<Response> {
15        self.sign_request(&mut req)?;
16        next.run(req, extensions).await
17    }
18}
19
20impl From<SigningError> for reqwest_middleware::Error {
21    fn from(value: SigningError) -> Self {
22        reqwest_middleware::Error::Middleware(value.into())
23    }
24}