From 9d8be8298427711a05b202f1adf90df1a8642c03 Mon Sep 17 00:00:00 2001 From: link2xt Date: Sat, 19 Oct 2024 18:44:37 +0000 Subject: [PATCH] feat: add more context to `send_msg` errors --- deltachat-jsonrpc/src/api.rs | 8 ++++++-- deltachat-jsonrpc/src/api/types/message.rs | 15 ++++++--------- src/chat.rs | 5 ++++- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/deltachat-jsonrpc/src/api.rs b/deltachat-jsonrpc/src/api.rs index 091689d153..9499b9206f 100644 --- a/deltachat-jsonrpc/src/api.rs +++ b/deltachat-jsonrpc/src/api.rs @@ -1946,9 +1946,13 @@ impl CommandApi { async fn send_msg(&self, account_id: u32, chat_id: u32, data: MessageData) -> Result { let ctx = self.get_context(account_id).await?; - let mut message = data.create_message(&ctx).await?; + let mut message = data + .create_message(&ctx) + .await + .context("Failed to create message")?; let msg_id = chat::send_msg(&ctx, ChatId::new(chat_id), &mut message) - .await? + .await + .context("Failed to send created message")? .to_u32(); Ok(msg_id) } diff --git a/deltachat-jsonrpc/src/api/types/message.rs b/deltachat-jsonrpc/src/api/types/message.rs index 33071ec9bd..93e7593d0d 100644 --- a/deltachat-jsonrpc/src/api/types/message.rs +++ b/deltachat-jsonrpc/src/api/types/message.rs @@ -605,16 +605,13 @@ impl MessageData { message.set_location(latitude, longitude); } if let Some(id) = self.quoted_message_id { + let quoted_message = Message::load_from_db(context, MsgId::new(id)) + .await + .context("Failed to load quoted message")?; message - .set_quote( - context, - Some( - &Message::load_from_db(context, MsgId::new(id)) - .await - .context("message to quote could not be loaded")?, - ), - ) - .await?; + .set_quote(context, Some("ed_message)) + .await + .context("Failed to set quote")?; } else if let Some(text) = self.quoted_text { let protect = false; message.set_quote_text(Some((text, protect))); diff --git a/src/chat.rs b/src/chat.rs index 90fee9d197..b168dafebe 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -2941,7 +2941,10 @@ async fn prepare_send_msg( ); message::update_msg_state(context, msg.id, MessageState::OutPending).await?; } - create_send_msg_jobs(context, msg).await + let row_ids = create_send_msg_jobs(context, msg) + .await + .context("Failed to create send jobs")?; + Ok(row_ids) } /// Constructs jobs for sending a message and inserts them into the appropriate table.