diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fe0c59f7..545bd3852 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - `addContactToChat()` - jsonrpc: add `is_broadcast` property to `ChatListItemFetchResult` #3584 - jsonrpc: add `was_seen_recently` property to `ChatListItemFetchResult`, `FullChat` and `Contact` #3584 +- jsonrpc: add `webxdc_info` property to `Message` #3588 ### Changes - order contact lists by "last seen"; diff --git a/deltachat-jsonrpc/src/api/types/message.rs b/deltachat-jsonrpc/src/api/types/message.rs index adbb90194..04493ee4d 100644 --- a/deltachat-jsonrpc/src/api/types/message.rs +++ b/deltachat-jsonrpc/src/api/types/message.rs @@ -10,6 +10,7 @@ use serde::Serialize; use typescript_type_def::TypeDef; use super::contact::ContactObject; +use super::webxdc::WebxdcMessageInfo; #[derive(Serialize, TypeDef)] #[serde(rename = "Message", rename_all = "camelCase")] @@ -53,6 +54,8 @@ pub struct MessageObject { file_mime: Option, file_bytes: u64, file_name: Option, + + webxdc_info: Option, } impl MessageObject { @@ -70,6 +73,12 @@ impl MessageObject { let file_bytes = message.get_filebytes(context).await; let override_sender_name = message.get_override_sender_name(); + let webxdc_info = if message.get_viewtype() == Viewtype::Webxdc { + Some(WebxdcMessageInfo::get_for_message(context, msg_id).await?) + } else { + None + }; + Ok(MessageObject { id: message_id, chat_id: message.get_chat_id().to_u32(), @@ -121,6 +130,7 @@ impl MessageObject { file_mime: message.get_filemime(), file_bytes, file_name: message.get_filename(), + webxdc_info, }) } }