From 962a4aedc6a8c2ed5e10dabc71ff4b1821cd1e59 Mon Sep 17 00:00:00 2001 From: Ginger Date: Mon, 13 Apr 2026 12:59:08 -0400 Subject: [PATCH] refactor: Fix errors in `api/server/send.rs` --- src/api/server/send.rs | 54 +++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/src/api/server/send.rs b/src/api/server/send.rs index 976f3d882..9f93dfd7d 100644 --- a/src/api/server/send.rs +++ b/src/api/server/send.rs @@ -25,10 +25,10 @@ use http::StatusCode; use itertools::Itertools; use ruma::{ - CanonicalJsonObject, MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedRoomId, OwnedUserId, - RoomId, ServerName, UInt, UserId, + CanonicalJsonObject, EventId, MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedRoomId, + OwnedUserId, RoomId, ServerName, UInt, UserId, api::{ - client::error::{ErrorKind, ErrorKind::LimitExceeded}, + error::{ErrorKind, LimitExceededErrorData}, federation::transactions::{ edu::{ DeviceListUpdateContent, DirectDeviceContent, Edu, PresenceContent, @@ -116,7 +116,7 @@ async fn wait_for_result( { // Took too long, return 429 to encourage the sender to try again return Err(Error::BadRequest( - LimitExceeded { retry_after: None }, + ErrorKind::LimitExceeded(LimitExceededErrorData::new()), "Transaction is being still being processed. Please try again later.", )); } @@ -187,12 +187,12 @@ async fn process_inbound_transaction( "Finished processing transaction" ); - let response = send_transaction_message::v1::Response { - pdus: results + let response = send_transaction_message::v1::Response::new( + results .into_iter() .map(|(e, r)| (e, r.map_err(error::sanitized_message))) .collect(), - }; + ); services .transactions @@ -298,7 +298,7 @@ async fn build_local_dag( .as_array() .unwrap() .iter() - .map(|v| OwnedEventId::parse(v.as_str().unwrap()).unwrap()) + .map(|v| EventId::parse(v.as_str().unwrap()).unwrap()) .filter(|id| pdu_map.contains_key(id)) .collect(); @@ -348,7 +348,7 @@ async fn handle_room( .rooms .event_handler .mutex_federation - .lock(&room_id) + .lock(room_id.as_str()) .await; let room_id = &room_id; @@ -544,10 +544,14 @@ async fn handle_edu_receipt_room_user( services .rooms .read_receipt - .readreceipt_update(user_id, room_id, &ReceiptEvent { - content: ReceiptEventContent(content.into()), - room_id: room_id.to_owned(), - }) + .readreceipt_update( + user_id, + room_id, + &ReceiptEvent::new( + room_id.to_owned(), + ReceiptEventContent::from_iter(content), + ), + ) .await; }) .await; @@ -646,6 +650,7 @@ async fn handle_edu_direct_to_device( ref ev_type, ref message_id, messages, + .. } = content; if sender.server_name() != origin { @@ -729,14 +734,17 @@ async fn handle_edu_direct_to_device_event( services .users .all_device_ids(target_user_id) - .for_each(|target_device_id| { - services.users.add_to_device_event( - sender, - target_user_id, - target_device_id, - ev_type, - event.clone(), - ) + .for_each(async |target_device_id| { + services + .users + .add_to_device_event( + sender, + target_user_id, + &target_device_id, + ev_type, + event.clone(), + ) + .await }) .await; }, @@ -749,7 +757,9 @@ async fn handle_edu_signing_key_update( origin: &ServerName, content: SigningKeyUpdateContent, ) { - let SigningKeyUpdateContent { user_id, master_key, self_signing_key } = content; + let SigningKeyUpdateContent { + user_id, master_key, self_signing_key, .. + } = content; if user_id.server_name() != origin { debug_warn!(