diff --git a/crates/matrix-sdk/src/client/mod.rs b/crates/matrix-sdk/src/client/mod.rs index a301b48ab..7bd2f9197 100644 --- a/crates/matrix-sdk/src/client/mod.rs +++ b/crates/matrix-sdk/src/client/mod.rs @@ -1424,7 +1424,7 @@ impl Client { Ok(self .inner .http_client - .upload(request, Some(request_config), self.inner.server_versions.clone()) + .send(request, Some(request_config), self.inner.server_versions.clone()) .await?) } diff --git a/crates/matrix-sdk/src/http_client.rs b/crates/matrix-sdk/src/http_client.rs index fab834bed..ad3401fd5 100644 --- a/crates/matrix-sdk/src/http_client.rs +++ b/crates/matrix-sdk/src/http_client.rs @@ -17,10 +17,10 @@ use std::{any::type_name, convert::TryFrom, fmt::Debug, sync::Arc, time::Duratio use bytes::{Bytes, BytesMut}; use http::Response as HttpResponse; use matrix_sdk_common::{async_trait, locks::RwLock, AsyncTraitDeps}; -use reqwest::{Client, Response}; +use reqwest::Response; use ruma::api::{ - client::media::create_content, error::FromHttpResponseError, AuthScheme, IncomingResponse, - MatrixVersion, OutgoingRequest, OutgoingRequestAppserviceExt, SendAccessToken, + error::FromHttpResponseError, AuthScheme, IncomingResponse, MatrixVersion, OutgoingRequest, + OutgoingRequestAppserviceExt, SendAccessToken, }; use tracing::trace; use url::Url; @@ -108,17 +108,17 @@ impl HttpClient { HttpClient { inner, homeserver, session, request_config } } - #[tracing::instrument( - skip(self, request, session), - fields(request_type = type_name::()) - )] - async fn send_request( + #[tracing::instrument(skip(self, request), fields(request_type = type_name::()))] + pub async fn send( &self, request: Request, - session: Arc>>, config: Option, server_versions: Arc<[MatrixVersion]>, - ) -> Result, HttpError> { + ) -> Result + where + Request: OutgoingRequest + Debug, + HttpError: From>, + { let config = match config { Some(config) => config, None => self.request_config, @@ -137,7 +137,7 @@ impl HttpClient { // isn't going to be used anyways. SendAccessToken::None } else { - match session.read().await.as_ref() { + match self.session.read().await.as_ref() { Some(session) => { access_token = session.access_token.clone(); if config.force_auth { @@ -157,7 +157,7 @@ impl HttpClient { )? } else { let (send_access_token, user_id) = { - let session = session.read().await; + let session = self.session.read().await; let session = session.as_ref().ok_or(HttpError::UserIdRequired)?; access_token = session.access_token.clone(); @@ -173,32 +173,7 @@ impl HttpClient { }; let request = request.map(|body| body.freeze()); - self.inner.send_request(request, config).await - } - - pub async fn upload( - &self, - request: create_content::v3::Request<'_>, - config: Option, - server_versions: Arc<[MatrixVersion]>, - ) -> Result { - let response = - self.send_request(request, self.session.clone(), config, server_versions).await?; - Ok(create_content::v3::Response::try_from_http_response(response)?) - } - - pub async fn send( - &self, - request: Request, - config: Option, - server_versions: Arc<[MatrixVersion]>, - ) -> Result - where - Request: OutgoingRequest + Debug, - HttpError: From>, - { - let response = - self.send_request(request, self.session.clone(), config, server_versions).await?; + let response = self.inner.send_request(request, config).await?; trace!("Got response: {:?}", response); @@ -238,7 +213,7 @@ impl Default for HttpSettings { impl HttpSettings { /// Build a client with the specified configuration. - pub(crate) fn make_client(&self) -> Result { + pub(crate) fn make_client(&self) -> Result { #[allow(unused_mut)] let mut http_client = reqwest::Client::builder(); @@ -283,7 +258,7 @@ async fn response_to_http_response( #[cfg(any(target_arch = "wasm32"))] async fn send_request( - client: &Client, + client: &reqwest::Client, request: http::Request, _: RequestConfig, ) -> Result, HttpError> { @@ -295,7 +270,7 @@ async fn send_request( #[cfg(all(not(target_arch = "wasm32")))] async fn send_request( - client: &Client, + client: &reqwest::Client, request: http::Request, config: RequestConfig, ) -> Result, HttpError> { @@ -358,7 +333,7 @@ async fn send_request( #[cfg_attr(target_arch = "wasm32", async_trait(?Send))] #[cfg_attr(not(target_arch = "wasm32"), async_trait)] -impl HttpSend for Client { +impl HttpSend for reqwest::Client { async fn send_request( &self, request: http::Request,