refactor: make set_msg_failed accept &mut Message instead of MsgId

This commit is contained in:
link2xt
2023-07-14 04:19:54 +00:00
parent d6b7ee04a0
commit 087f6edd0c
4 changed files with 33 additions and 15 deletions

View File

@@ -492,8 +492,19 @@ pub(crate) async fn smtp_send(
if let SendResult::Failure(err) = &status {
// We couldn't send the message, so mark it as failed
if let Err(err) = message::set_msg_failed(context, msg_id, &err.to_string()).await {
error!(context, "Failed to mark {msg_id} as failed: {err:#}.");
match Message::load_from_db(context, msg_id).await {
Ok(mut msg) => {
if let Err(err) = message::set_msg_failed(context, &mut msg, &err.to_string()).await
{
error!(context, "Failed to mark {msg_id} as failed: {err:#}.");
}
}
Err(err) => {
error!(
context,
"Failed to load {msg_id} to mark it as failed: {err:#}."
);
}
}
}
status
@@ -541,7 +552,8 @@ pub(crate) async fn send_msg_to_smtp(
)
.await?;
if retries > 6 {
message::set_msg_failed(context, msg_id, "Number of retries exceeded the limit.").await?;
let mut msg = Message::load_from_db(context, msg_id).await?;
message::set_msg_failed(context, &mut msg, "Number of retries exceeded the limit.").await?;
context
.sql
.execute("DELETE FROM smtp WHERE id=?", (rowid,))