From 0f52cd8039e0ae376c8ae8758a6e526471c48307 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Mon, 27 Sep 2021 20:34:23 +0200 Subject: [PATCH] Stop relying on enum deserialization for adding room_id --- crates/matrix-sdk/src/encryption/mod.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/crates/matrix-sdk/src/encryption/mod.rs b/crates/matrix-sdk/src/encryption/mod.rs index b08001fba..cd13dc28f 100644 --- a/crates/matrix-sdk/src/encryption/mod.rs +++ b/crates/matrix-sdk/src/encryption/mod.rs @@ -469,14 +469,16 @@ impl Client { if let AnySyncMessageEvent::RoomEncrypted(e) = event { if let Ok(decrypted) = machine.decrypt_room_event(&e, room_id).await { - let event = Raw::new( - &decrypted - .event - .deserialize() - .unwrap() - .into_full_event(room_id.clone()), - ) - .expect("Failed to serialize event"); + let mut full_event = + decrypted.event.deserialize_as::().unwrap(); + full_event.as_object_mut().unwrap().insert( + "room_id".to_owned(), + serde_json::to_value(room_id).unwrap(), + ); + let event = Raw::from_json( + serde_json::value::to_raw_value(&full_event).unwrap(), + ); + let encryption_info = decrypted.encryption_info; // Return decrypted room event