Generate IMAP deletion jobs for ephemeral messages

This commit is contained in:
Alexander Krotov
2020-05-15 03:50:28 +03:00
parent 032b387c95
commit 028187eeaf

View File

@@ -994,19 +994,23 @@ pub fn job_send_msg(context: &Context, msg_id: MsgId) -> Result<()> {
} }
fn load_imap_deletion_msgid(context: &Context) -> sql::Result<Option<MsgId>> { fn load_imap_deletion_msgid(context: &Context) -> sql::Result<Option<MsgId>> {
if let Some(delete_server_after) = context.get_config_delete_server_after() { let now = time();
let threshold_timestamp = time() - delete_server_after;
context.sql.query_row_optional( let threshold_timestamp = match context.get_config_delete_server_after() {
"SELECT id FROM msgs \ None => 0,
WHERE timestamp < ? \ Some(delete_server_after) => now - delete_server_after,
AND server_uid != 0", };
params![threshold_timestamp],
|row| row.get::<_, MsgId>(0), context.sql.query_row_optional(
) "SELECT id FROM msgs \
} else { WHERE ( \
Ok(None) timestamp < ? \
} OR (autodelete_timestamp != 0 AND autodelete_timestamp < ?) \
) \
AND server_uid != 0",
params![threshold_timestamp, now],
|row| row.get::<_, MsgId>(0),
)
} }
fn load_imap_deletion_job(context: &Context) -> sql::Result<Option<Job>> { fn load_imap_deletion_job(context: &Context) -> sql::Result<Option<Job>> {