diff --git a/src/api/client_server/sync/msc4186.rs b/src/api/client_server/sync/msc4186.rs index 7c6b55fd..9d8aef8f 100644 --- a/src/api/client_server/sync/msc4186.rs +++ b/src/api/client_server/sync/msc4186.rs @@ -474,6 +474,24 @@ pub(crate) async fn sync_events_v5_route( None }; + let account_data = if body.extensions.account_data.enabled == Some(true) { + let global = services() + .account_data + .global_changes_since(&sender_user, globalsince)? + .into_iter() + .map(|(event_type, content)| { + account_data::raw_global_event_from_parts(&event_type, &content) + }) + .collect(); + + Some(sync_events::v5::response::AccountData { + global, + rooms: BTreeMap::new(), + }) + } else { + None + }; + let mut rooms = BTreeMap::new(); for (room_id, todo_room) in todo_rooms { if let Some(room) = process_room(&sender_user, &room_id, &todo_room)? { @@ -505,25 +523,7 @@ pub(crate) async fn sync_events_v5_route( extensions: sync_events::v5::response::Extensions { to_device, e2ee: e2ee.unwrap_or_default(), - account_data: sync_events::v5::response::AccountData { - global: if body.extensions.account_data.enabled.unwrap_or(false) - { - services() - .account_data - .global_changes_since(&sender_user, globalsince)? - .into_iter() - .map(|(event_type, content)| { - account_data::raw_global_event_from_parts( - &event_type, - &content, - ) - }) - .collect() - } else { - Vec::new() - }, - rooms: BTreeMap::new(), - }, + account_data: account_data.unwrap_or_default(), receipts: sync_events::v5::response::Receipts { rooms: BTreeMap::new(), },