ffi: Add in_reply_to field to MessageLikeEventContent::RoomMessage

This commit is contained in:
Jonas Platte
2023-09-04 12:50:05 +02:00
committed by Jonas Platte
parent af400357f5
commit 03bbdce15f

View File

@@ -1,7 +1,7 @@
use anyhow::{bail, Context};
use ruma::events::{
AnySyncMessageLikeEvent, AnySyncStateEvent, AnySyncTimelineEvent, AnyTimelineEvent,
MessageLikeEventContent as RumaMessageLikeEventContent, RedactContent,
room::message::Relation, AnySyncMessageLikeEvent, AnySyncStateEvent, AnySyncTimelineEvent,
AnyTimelineEvent, MessageLikeEventContent as RumaMessageLikeEventContent, RedactContent,
RedactedStateEventContent, StaticStateEventContent, SyncMessageLikeEvent, SyncStateEvent,
};
@@ -128,7 +128,7 @@ pub enum MessageLikeEventContent {
KeyVerificationDone,
ReactionContent { related_event_id: String },
RoomEncrypted,
RoomMessage { message_type: MessageType },
RoomMessage { message_type: MessageType, in_reply_to_event_id: Option<String> },
RoomRedaction,
Sticker,
}
@@ -172,8 +172,14 @@ impl TryFrom<AnySyncMessageLikeEvent> for MessageLikeEventContent {
AnySyncMessageLikeEvent::RoomEncrypted(_) => MessageLikeEventContent::RoomEncrypted,
AnySyncMessageLikeEvent::RoomMessage(content) => {
let original_content = get_message_like_event_original_content(content)?;
let in_reply_to_event_id =
original_content.relates_to.and_then(|relation| match relation {
Relation::Reply { in_reply_to } => Some(in_reply_to.event_id.to_string()),
_ => None,
});
MessageLikeEventContent::RoomMessage {
message_type: original_content.msgtype.try_into()?,
in_reply_to_event_id,
}
}
AnySyncMessageLikeEvent::RoomRedaction(_) => MessageLikeEventContent::RoomRedaction,