Skip to content

Commit

Permalink
common: make TimelineEvent::event return a Raw<AnySyncTimelineEvent>
Browse files Browse the repository at this point in the history
  • Loading branch information
richvdh committed Oct 4, 2024
1 parent 1b43c88 commit 3d95448
Show file tree
Hide file tree
Showing 7 changed files with 15 additions and 17 deletions.
5 changes: 3 additions & 2 deletions crates/matrix-sdk-common/src/deserialized_responses.rs
Original file line number Diff line number Diff line change
Expand Up @@ -474,8 +474,9 @@ impl TimelineEvent {

/// Returns a reference to the (potentially decrypted) Matrix event inside
/// this `TimelineEvent`.
pub fn event(&self) -> &Raw<AnyTimelineEvent> {
&self.inner_event
pub fn event(&self) -> &Raw<AnySyncTimelineEvent> {
// TODO: make `inner_event` an AnySyncTimelineEvent instead.
self.inner_event.cast_ref()
}

/// If the event was a decrypted event that was successfully decrypted, get
Expand Down
4 changes: 1 addition & 3 deletions crates/matrix-sdk-ui/src/notification_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -552,9 +552,7 @@ impl NotificationClient {
let mut timeline_event = response.event.ok_or(Error::ContextMissingEvent)?;
let state_events = response.state;

if let Some(decrypted_event) =
self.retry_decryption(&room, timeline_event.event().cast_ref()).await?
{
if let Some(decrypted_event) = self.retry_decryption(&room, timeline_event.event()).await? {
timeline_event = decrypted_event;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ use ruma::{
MessageType, Relation, RoomMessageEventContent, RoomMessageEventContentWithoutRelation,
SyncRoomMessageEvent,
},
AnyMessageLikeEventContent, AnySyncMessageLikeEvent, AnyTimelineEvent,
AnyMessageLikeEventContent, AnySyncMessageLikeEvent, AnySyncTimelineEvent,
BundledMessageLikeRelations, Mentions,
},
html::RemoveReplyFallback,
Expand Down Expand Up @@ -298,7 +298,7 @@ impl RepliedToEvent {
room_data_provider: &P,
) -> Result<Self, TimelineError> {
let event = match timeline_event.event().deserialize() {
Ok(AnyTimelineEvent::MessageLike(event)) => event,
Ok(AnySyncTimelineEvent::MessageLike(event)) => event,
_ => {
return Err(TimelineError::UnsupportedEvent);
}
Expand Down
4 changes: 2 additions & 2 deletions crates/matrix-sdk/tests/integration/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -755,8 +755,8 @@ async fn test_encrypt_room_event() {
.expect("We should be able to deserialize the decrypted event");

assert_let!(
ruma::events::AnyTimelineEvent::MessageLike(
ruma::events::AnyMessageLikeEvent::RoomMessage(message_event)
ruma::events::AnySyncTimelineEvent::MessageLike(
ruma::events::AnySyncMessageLikeEvent::RoomMessage(message_event)
) = event
);

Expand Down
4 changes: 2 additions & 2 deletions crates/matrix-sdk/tests/integration/room/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ use ruma::{
member::MembershipState,
message::RoomMessageEventContent,
},
AnyStateEvent, AnySyncStateEvent, AnyTimelineEvent, StateEventType,
AnySyncStateEvent, AnySyncTimelineEvent, StateEventType,
},
mxc_uri, room_id,
};
Expand Down Expand Up @@ -671,7 +671,7 @@ async fn test_event() {

let timeline_event = room.event(event_id, None).await.unwrap();
assert_let!(
AnyTimelineEvent::State(AnyStateEvent::RoomTombstone(event)) =
AnySyncTimelineEvent::State(AnySyncStateEvent::RoomTombstone(event)) =
timeline_event.event().deserialize().unwrap()
);
assert_eq!(event.event_id(), event_id);
Expand Down
5 changes: 2 additions & 3 deletions testing/matrix-sdk-integration-testing/src/tests/nse.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ use matrix_sdk::{
message::{MessageType, OriginalSyncRoomMessageEvent, RoomMessageEventContent},
},
room_key::ToDeviceRoomKeyEvent,
AnyMessageLikeEventContent, AnySyncTimelineEvent, AnyTimelineEvent,
OriginalSyncMessageLikeEvent,
AnyMessageLikeEventContent, AnySyncTimelineEvent, OriginalSyncMessageLikeEvent,
},
serde::Raw,
EventEncryptionAlgorithm, OwnedEventId, OwnedRoomId, RoomId,
Expand Down Expand Up @@ -425,7 +424,7 @@ async fn decrypt_event(

let Ok(deserialized) = decrypted.event().deserialize() else { return None };

let AnyTimelineEvent::MessageLike(message) = &deserialized else { return None };
let AnySyncTimelineEvent::MessageLike(message) = &deserialized else { return None };

let Some(AnyMessageLikeEventContent::RoomMessage(content)) = message.original_content() else {
return None;
Expand Down
6 changes: 3 additions & 3 deletions testing/matrix-sdk-integration-testing/src/tests/room.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ use matrix_sdk::{
api::client::room::create_room::v3::Request as CreateRoomRequest,
assign, event_id, events,
events::{
room::message::RoomMessageEventContent, AnyRoomAccountDataEventContent, AnyStateEvent,
AnyTimelineEvent, EventContent,
room::message::RoomMessageEventContent, AnyRoomAccountDataEventContent,
AnySyncStateEvent, AnySyncTimelineEvent, EventContent,
},
serde::Raw,
uint,
Expand Down Expand Up @@ -180,7 +180,7 @@ async fn test_event_with_context() -> Result<()> {

// Last event is the m.room.encryption event.
let event = prev_events[9].event().deserialize().unwrap();
assert_matches!(event, AnyTimelineEvent::State(AnyStateEvent::RoomEncryption(_)));
assert_matches!(event, AnySyncTimelineEvent::State(AnySyncStateEvent::RoomEncryption(_)));

// There are other events before that (room creation, alice joining).
assert!(prev_messages.end.is_some());
Expand Down

0 comments on commit 3d95448

Please sign in to comment.