SSS: factor out account data extension

This commit is contained in:
Lambda 2025-05-31 22:21:43 +00:00
parent f5ff294c3e
commit 395d16ca22

View file

@ -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(),
},