mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
Generate IMAP deletion jobs for ephemeral messages
This commit is contained in:
18
src/job.rs
18
src/job.rs
@@ -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;
|
|
||||||
|
let threshold_timestamp = match context.get_config_delete_server_after() {
|
||||||
|
None => 0,
|
||||||
|
Some(delete_server_after) => now - delete_server_after,
|
||||||
|
};
|
||||||
|
|
||||||
context.sql.query_row_optional(
|
context.sql.query_row_optional(
|
||||||
"SELECT id FROM msgs \
|
"SELECT id FROM msgs \
|
||||||
WHERE timestamp < ? \
|
WHERE ( \
|
||||||
|
timestamp < ? \
|
||||||
|
OR (autodelete_timestamp != 0 AND autodelete_timestamp < ?) \
|
||||||
|
) \
|
||||||
AND server_uid != 0",
|
AND server_uid != 0",
|
||||||
params![threshold_timestamp],
|
params![threshold_timestamp, now],
|
||||||
|row| row.get::<_, MsgId>(0),
|
|row| row.get::<_, MsgId>(0),
|
||||||
)
|
)
|
||||||
} else {
|
|
||||||
Ok(None)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn load_imap_deletion_job(context: &Context) -> sql::Result<Option<Job>> {
|
fn load_imap_deletion_job(context: &Context) -> sql::Result<Option<Job>> {
|
||||||
|
|||||||
Reference in New Issue
Block a user