Turn Message::Delete_from_db into MsgId method

This commit is contained in:
Alexander Krotov
2020-02-24 01:21:28 +03:00
parent 98bd64621a
commit 4452cab987
3 changed files with 20 additions and 21 deletions

View File

@@ -287,7 +287,7 @@ impl ChatId {
fn maybe_delete_draft(self, context: &Context) -> bool { fn maybe_delete_draft(self, context: &Context) -> bool {
match self.get_draft_msg_id(context) { match self.get_draft_msg_id(context) {
Some(msg_id) => { Some(msg_id) => {
Message::delete_from_db(context, msg_id); msg_id.delete_from_db(context);
true true
} }
None => false, None => false,

View File

@@ -473,7 +473,7 @@ impl Job {
} }
} }
} }
Message::delete_from_db(context, msg.id); msg.id.delete_from_db(context);
Status::Finished(Ok(())) Status::Finished(Ok(()))
} else { } else {
/* eg. device messages have no Message-ID */ /* eg. device messages have no Message-ID */

View File

@@ -99,6 +99,24 @@ impl MsgId {
) )
} }
/// Deletes a message and corresponding MDNs from the database.
pub fn delete_from_db(self, context: &Context) {
sql::execute(
context,
&context.sql,
"DELETE FROM msgs WHERE id=?;",
params![self],
)
.ok();
sql::execute(
context,
&context.sql,
"DELETE FROM msgs_mdns WHERE msg_id=?;",
params![self],
)
.ok();
}
/// Bad evil escape hatch. /// Bad evil escape hatch.
/// ///
/// Avoid using this, eventually types should be cleaned up enough /// Avoid using this, eventually types should be cleaned up enough
@@ -319,25 +337,6 @@ impl Message {
.map_err(Into::into) .map_err(Into::into)
} }
pub fn delete_from_db(context: &Context, msg_id: MsgId) {
if let Ok(msg) = Message::load_from_db(context, msg_id) {
sql::execute(
context,
&context.sql,
"DELETE FROM msgs WHERE id=?;",
params![msg.id],
)
.ok();
sql::execute(
context,
&context.sql,
"DELETE FROM msgs_mdns WHERE msg_id=?;",
params![msg.id],
)
.ok();
}
}
pub fn get_filemime(&self) -> Option<String> { pub fn get_filemime(&self) -> Option<String> {
if let Some(m) = self.param.get(Param::MimeType) { if let Some(m) = self.param.get(Param::MimeType) {
return Some(m.to_string()); return Some(m.to_string());