diff --git a/deltachat-jsonrpc/src/api.rs b/deltachat-jsonrpc/src/api.rs index 5c34a554c..a3ab5c2e9 100644 --- a/deltachat-jsonrpc/src/api.rs +++ b/deltachat-jsonrpc/src/api.rs @@ -1305,6 +1305,12 @@ impl CommandApi { Ok(results) } + async fn save_msgs(&self, account_id: u32, message_ids: Vec) -> Result<()> { + let ctx = self.get_context(account_id).await?; + let message_ids: Vec = message_ids.into_iter().map(MsgId::new).collect(); + chat::save_msgs(&ctx, &message_ids).await + } + // --------------------------------------------- // contact // --------------------------------------------- diff --git a/deltachat-jsonrpc/src/api/types/message.rs b/deltachat-jsonrpc/src/api/types/message.rs index efe7b66ca..aff2186fe 100644 --- a/deltachat-jsonrpc/src/api/types/message.rs +++ b/deltachat-jsonrpc/src/api/types/message.rs @@ -89,6 +89,10 @@ pub struct MessageObject { download_state: DownloadState, + original_msg_id: Option, + + saved_message_id: Option, + reactions: Option, vcard_contact: Option, @@ -253,6 +257,16 @@ impl MessageObject { download_state, + original_msg_id: message + .get_original_msg_id(context) + .await? + .map(|id| id.to_u32()), + + saved_message_id: message + .get_saved_msg_id(context) + .await? + .map(|id| id.to_u32()), + reactions, vcard_contact: vcard_contacts.first().cloned(),