From d643e115b0406cfb79f93f10f3c67907333dff57 Mon Sep 17 00:00:00 2001 From: Doug Date: Mon, 20 Jul 2026 12:03:39 +0100 Subject: [PATCH] chore: Handle Ruma's new OutgoingRequestExt https://github.com/ruma/ruma/pull/2537 https://github.com/ruma/ruma/pull/2543 --- .../src/api/download/encrypted.rs | 26 ++++++------------ .../src/api/download/unencrypted.rs | 24 +++++------------ .../src/api/public_server_key.rs | 13 +++++---- .../src/api/scan/encrypted.rs | 27 ++++++------------- .../src/api/scan/unencrypted.rs | 25 +++++------------ .../src/authentication/matrix/mod.rs | 2 +- crates/matrix-sdk/src/http_client/mod.rs | 2 +- 7 files changed, 38 insertions(+), 81 deletions(-) diff --git a/crates/matrix-sdk-contentscanner/src/api/download/encrypted.rs b/crates/matrix-sdk-contentscanner/src/api/download/encrypted.rs index b479ca62d..37c64b074 100644 --- a/crates/matrix-sdk-contentscanner/src/api/download/encrypted.rs +++ b/crates/matrix-sdk-contentscanner/src/api/download/encrypted.rs @@ -16,13 +16,11 @@ use matrix_sdk::RumaApiError; use matrix_sdk_crypto::olm::Curve25519PublicKey; use ruma::{ api::{ - Metadata, OutgoingRequest, - auth_scheme::{AccessTokenOptional, AuthScheme, SendAccessToken}, - error::IntoHttpError, - path_builder::PathBuilder, + BytesBody, Metadata, OutgoingRequest, auth_scheme::AccessTokenOptional, + error::IntoHttpError, path_builder::PathBuilder, }, events::room::EncryptedFile, - exports::{bytes::BufMut, http::Request}, + exports::http::Request, metadata, }; @@ -58,28 +56,20 @@ impl DownloadAndScanEncryptedMediaRequest { } impl OutgoingRequest for DownloadAndScanEncryptedMediaRequest { + type Body = BytesBody; type EndpointError = RumaApiError; type IncomingResponse = DownloadAndScanMediaResponse; - fn try_into_http_request>( + fn try_into_http_request_inner( self, _base_url: &str, - authentication_input: ::Input<'_>, path_builder_input: ::Input<'_>, - ) -> Result, IntoHttpError> { + ) -> Result, IntoHttpError> { let url = Self::make_endpoint_url(path_builder_input, &self.scanner_url, &[], "")?; let body = encrypted_file_request_from(self.public_key, &self.encrypted_file)?; - let body = ruma::serde::json_to_buf(&body)?; + let body = BytesBody(ruma::serde::json_to_buf(&body)?); - let mut request = Request::builder().method(Self::METHOD).uri(url).body(body)?; - if let Some(access_token) = authentication_input.get_required_for_endpoint() { - Self::Authentication::add_authentication( - &mut request, - SendAccessToken::IfRequired(access_token), - )? - } - - Ok(request) + Ok(Request::builder().method(Self::METHOD).uri(url).body(body)?) } } diff --git a/crates/matrix-sdk-contentscanner/src/api/download/unencrypted.rs b/crates/matrix-sdk-contentscanner/src/api/download/unencrypted.rs index 8c09ea176..1563f8abd 100644 --- a/crates/matrix-sdk-contentscanner/src/api/download/unencrypted.rs +++ b/crates/matrix-sdk-contentscanner/src/api/download/unencrypted.rs @@ -15,12 +15,10 @@ use matrix_sdk::RumaApiError; use ruma::{ api::{ - Metadata, OutgoingRequest, - auth_scheme::{AccessTokenOptional, AuthScheme, SendAccessToken}, - error::IntoHttpError, - path_builder::PathBuilder, + EmptyBody, Metadata, OutgoingRequest, auth_scheme::AccessTokenOptional, + error::IntoHttpError, path_builder::PathBuilder, }, - exports::{bytes::BufMut, http::Request}, + exports::http::Request, metadata, }; @@ -60,15 +58,15 @@ impl DownloadAndScanMediaRequest { } impl OutgoingRequest for DownloadAndScanMediaRequest { + type Body = EmptyBody; type EndpointError = RumaApiError; type IncomingResponse = DownloadAndScanMediaResponse; - fn try_into_http_request>( + fn try_into_http_request_inner( self, _base_url: &str, - authentication_input: ::Input<'_>, path_builder_input: ::Input<'_>, - ) -> Result, IntoHttpError> { + ) -> Result, IntoHttpError> { let url = Self::make_endpoint_url( path_builder_input, &self.scanner_url, @@ -76,14 +74,6 @@ impl OutgoingRequest for DownloadAndScanMediaRequest { "", )?; - let mut request = Request::builder().method(Self::METHOD).uri(url).body(T::default())?; - if let Some(access_token) = authentication_input.get_required_for_endpoint() { - Self::Authentication::add_authentication( - &mut request, - SendAccessToken::IfRequired(access_token), - )? - } - - Ok(request) + Ok(Request::builder().method(Self::METHOD).uri(url).body(EmptyBody)?) } } diff --git a/crates/matrix-sdk-contentscanner/src/api/public_server_key.rs b/crates/matrix-sdk-contentscanner/src/api/public_server_key.rs index 4943ed96b..54fdcdf0d 100644 --- a/crates/matrix-sdk-contentscanner/src/api/public_server_key.rs +++ b/crates/matrix-sdk-contentscanner/src/api/public_server_key.rs @@ -15,13 +15,12 @@ use matrix_sdk::RumaApiError; use ruma::{ api::{ - IncomingResponse, Metadata, OutgoingRequest, - auth_scheme::{AuthScheme, NoAuthentication}, + EmptyBody, IncomingResponse, Metadata, OutgoingRequest, + auth_scheme::NoAuthentication, error::{FromHttpResponseError, IntoHttpError}, path_builder::PathBuilder, }, exports::{ - bytes::BufMut, http::{Request, Response}, serde_json, }, @@ -53,17 +52,17 @@ impl PublicServerKeyRequest { } impl OutgoingRequest for PublicServerKeyRequest { + type Body = EmptyBody; type EndpointError = RumaApiError; type IncomingResponse = PublicServerKeyResponse; - fn try_into_http_request>( + fn try_into_http_request_inner( self, _base_url: &str, - _authentication_input: ::Input<'_>, path_builder_input: ::Input<'_>, - ) -> Result, IntoHttpError> { + ) -> Result, IntoHttpError> { let url = Self::make_endpoint_url(path_builder_input, &self.scanner_url, &[], "")?; - Ok(Request::builder().method(Self::METHOD).uri(url).body(T::default())?) + Ok(Request::builder().method(Self::METHOD).uri(url).body(EmptyBody)?) } } diff --git a/crates/matrix-sdk-contentscanner/src/api/scan/encrypted.rs b/crates/matrix-sdk-contentscanner/src/api/scan/encrypted.rs index 1429d7627..2aa1fddcc 100644 --- a/crates/matrix-sdk-contentscanner/src/api/scan/encrypted.rs +++ b/crates/matrix-sdk-contentscanner/src/api/scan/encrypted.rs @@ -12,13 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -use matrix_sdk::{RumaApiError, bytes::BufMut, encryption::vodozemac::Curve25519PublicKey}; +use matrix_sdk::{RumaApiError, encryption::vodozemac::Curve25519PublicKey}; use ruma::{ api::{ - Metadata, OutgoingRequest, - auth_scheme::{AccessTokenOptional, AuthScheme, SendAccessToken}, - error::IntoHttpError, - path_builder::PathBuilder, + BytesBody, Metadata, OutgoingRequest, auth_scheme::AccessTokenOptional, + error::IntoHttpError, path_builder::PathBuilder, }, events::room::EncryptedFile, exports::http::Request, @@ -57,29 +55,20 @@ impl EncryptedMediaScanRequest { } impl OutgoingRequest for EncryptedMediaScanRequest { + type Body = BytesBody; type EndpointError = RumaApiError; type IncomingResponse = MediaScanResponse; - fn try_into_http_request>( + fn try_into_http_request_inner( self, _base_url: &str, - authentication_input: ::Input<'_>, path_builder_input: ::Input<'_>, - ) -> Result, IntoHttpError> { + ) -> Result, IntoHttpError> { let url = Self::make_endpoint_url(path_builder_input, &self.scanner_url, &[], "")?; let body = encrypted_file_request_from(self.public_key, &self.encrypted_file)?; - let body = ruma::serde::json_to_buf(&body)?; + let body = BytesBody(ruma::serde::json_to_buf(&body)?); - let mut request = Request::builder().method(Self::METHOD).uri(url).body(body)?; - - if let Some(access_token) = authentication_input.get_required_for_endpoint() { - Self::Authentication::add_authentication( - &mut request, - SendAccessToken::IfRequired(access_token), - )? - } - - Ok(request) + Ok(Request::builder().method(Self::METHOD).uri(url).body(body)?) } } diff --git a/crates/matrix-sdk-contentscanner/src/api/scan/unencrypted.rs b/crates/matrix-sdk-contentscanner/src/api/scan/unencrypted.rs index 0cb8ef246..a363503a5 100644 --- a/crates/matrix-sdk-contentscanner/src/api/scan/unencrypted.rs +++ b/crates/matrix-sdk-contentscanner/src/api/scan/unencrypted.rs @@ -12,13 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -use matrix_sdk::{RumaApiError, bytes::BufMut}; +use matrix_sdk::RumaApiError; use ruma::{ api::{ - Metadata, OutgoingRequest, - auth_scheme::{AccessTokenOptional, AuthScheme, SendAccessToken}, - error::IntoHttpError, - path_builder::PathBuilder, + EmptyBody, Metadata, OutgoingRequest, auth_scheme::AccessTokenOptional, + error::IntoHttpError, path_builder::PathBuilder, }, exports::http::Request, metadata, @@ -52,15 +50,15 @@ impl MediaScanRequest { } impl OutgoingRequest for MediaScanRequest { + type Body = EmptyBody; type EndpointError = RumaApiError; type IncomingResponse = MediaScanResponse; - fn try_into_http_request>( + fn try_into_http_request_inner( self, _base_url: &str, - authentication_input: ::Input<'_>, path_builder_input: ::Input<'_>, - ) -> Result, IntoHttpError> { + ) -> Result, IntoHttpError> { let url = Self::make_endpoint_url( path_builder_input, &self.scanner_url, @@ -68,15 +66,6 @@ impl OutgoingRequest for MediaScanRequest { "", )?; - let mut request = Request::builder().method(Self::METHOD).uri(url).body(T::default())?; - - if let Some(access_token) = authentication_input.get_required_for_endpoint() { - Self::Authentication::add_authentication( - &mut request, - SendAccessToken::IfRequired(access_token), - )? - } - - Ok(request) + Ok(Request::builder().method(Self::METHOD).uri(url).body(EmptyBody)?) } } diff --git a/crates/matrix-sdk/src/authentication/matrix/mod.rs b/crates/matrix-sdk/src/authentication/matrix/mod.rs index 686fd748f..66634dabc 100644 --- a/crates/matrix-sdk/src/authentication/matrix/mod.rs +++ b/crates/matrix-sdk/src/authentication/matrix/mod.rs @@ -23,7 +23,7 @@ use std::{borrow::Cow, fmt}; use matrix_sdk_base::{SessionMeta, store::RoomLoadSettings}; use ruma::{ api::{ - OutgoingRequest, + OutgoingRequestExt, auth_scheme::SendAccessToken, client::{ account::register, diff --git a/crates/matrix-sdk/src/http_client/mod.rs b/crates/matrix-sdk/src/http_client/mod.rs index 08bb15798..e9718f3e1 100644 --- a/crates/matrix-sdk/src/http_client/mod.rs +++ b/crates/matrix-sdk/src/http_client/mod.rs @@ -30,7 +30,7 @@ use eyeball::SharedObservable; use http::Method; use matrix_sdk_base::SendOutsideWasm; use ruma::api::{ - OutgoingRequest, SupportedVersions, + OutgoingRequest, OutgoingRequestExt, SupportedVersions, auth_scheme::{self, AuthScheme, SendAccessToken}, error::{FromHttpResponseError, IntoHttpError}, path_builder,