refactor: Fix errors in api/server/send.rs

This commit is contained in:
Ginger
2026-04-13 12:59:08 -04:00
parent 0eee63f7a1
commit 962a4aedc6
+32 -22
View File
@@ -25,10 +25,10 @@ use futures::{FutureExt, Stream, StreamExt, TryFutureExt, TryStreamExt};
use http::StatusCode; use http::StatusCode;
use itertools::Itertools; use itertools::Itertools;
use ruma::{ use ruma::{
CanonicalJsonObject, MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedRoomId, OwnedUserId, CanonicalJsonObject, EventId, MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedRoomId,
RoomId, ServerName, UInt, UserId, OwnedUserId, RoomId, ServerName, UInt, UserId,
api::{ api::{
client::error::{ErrorKind, ErrorKind::LimitExceeded}, error::{ErrorKind, LimitExceededErrorData},
federation::transactions::{ federation::transactions::{
edu::{ edu::{
DeviceListUpdateContent, DirectDeviceContent, Edu, PresenceContent, 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 // Took too long, return 429 to encourage the sender to try again
return Err(Error::BadRequest( return Err(Error::BadRequest(
LimitExceeded { retry_after: None }, ErrorKind::LimitExceeded(LimitExceededErrorData::new()),
"Transaction is being still being processed. Please try again later.", "Transaction is being still being processed. Please try again later.",
)); ));
} }
@@ -187,12 +187,12 @@ async fn process_inbound_transaction(
"Finished processing transaction" "Finished processing transaction"
); );
let response = send_transaction_message::v1::Response { let response = send_transaction_message::v1::Response::new(
pdus: results results
.into_iter() .into_iter()
.map(|(e, r)| (e, r.map_err(error::sanitized_message))) .map(|(e, r)| (e, r.map_err(error::sanitized_message)))
.collect(), .collect(),
}; );
services services
.transactions .transactions
@@ -298,7 +298,7 @@ async fn build_local_dag(
.as_array() .as_array()
.unwrap() .unwrap()
.iter() .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)) .filter(|id| pdu_map.contains_key(id))
.collect(); .collect();
@@ -348,7 +348,7 @@ async fn handle_room(
.rooms .rooms
.event_handler .event_handler
.mutex_federation .mutex_federation
.lock(&room_id) .lock(room_id.as_str())
.await; .await;
let room_id = &room_id; let room_id = &room_id;
@@ -544,10 +544,14 @@ async fn handle_edu_receipt_room_user(
services services
.rooms .rooms
.read_receipt .read_receipt
.readreceipt_update(user_id, room_id, &ReceiptEvent { .readreceipt_update(
content: ReceiptEventContent(content.into()), user_id,
room_id: room_id.to_owned(), room_id,
}) &ReceiptEvent::new(
room_id.to_owned(),
ReceiptEventContent::from_iter(content),
),
)
.await; .await;
}) })
.await; .await;
@@ -646,6 +650,7 @@ async fn handle_edu_direct_to_device(
ref ev_type, ref ev_type,
ref message_id, ref message_id,
messages, messages,
..
} = content; } = content;
if sender.server_name() != origin { if sender.server_name() != origin {
@@ -729,14 +734,17 @@ async fn handle_edu_direct_to_device_event(
services services
.users .users
.all_device_ids(target_user_id) .all_device_ids(target_user_id)
.for_each(|target_device_id| { .for_each(async |target_device_id| {
services.users.add_to_device_event( services
sender, .users
target_user_id, .add_to_device_event(
target_device_id, sender,
ev_type, target_user_id,
event.clone(), &target_device_id,
) ev_type,
event.clone(),
)
.await
}) })
.await; .await;
}, },
@@ -749,7 +757,9 @@ async fn handle_edu_signing_key_update(
origin: &ServerName, origin: &ServerName,
content: SigningKeyUpdateContent, 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 { if user_id.server_name() != origin {
debug_warn!( debug_warn!(