mirror of
https://github.com/chatmail/core.git
synced 2026-04-17 21:46:35 +03:00
Use repeat_vars() more (#3133)
This commit is contained in:
@@ -31,7 +31,6 @@ use crate::ephemeral::{delete_expired_messages, schedule_ephemeral_task, Timer a
|
|||||||
use crate::events::EventType;
|
use crate::events::EventType;
|
||||||
use crate::html::new_html_mimepart;
|
use crate::html::new_html_mimepart;
|
||||||
use crate::job::{self, Action};
|
use crate::job::{self, Action};
|
||||||
use crate::location;
|
|
||||||
use crate::message::{self, Message, MessageState, MsgId, Viewtype};
|
use crate::message::{self, Message, MessageState, MsgId, Viewtype};
|
||||||
use crate::mimefactory::MimeFactory;
|
use crate::mimefactory::MimeFactory;
|
||||||
use crate::mimeparser::SystemMessage;
|
use crate::mimeparser::SystemMessage;
|
||||||
@@ -41,6 +40,7 @@ use crate::scheduler::InterruptInfo;
|
|||||||
use crate::smtp::send_msg_to_smtp;
|
use crate::smtp::send_msg_to_smtp;
|
||||||
use crate::stock_str;
|
use crate::stock_str;
|
||||||
use crate::webxdc::WEBXDC_SUFFIX;
|
use crate::webxdc::WEBXDC_SUFFIX;
|
||||||
|
use crate::{location, sql};
|
||||||
|
|
||||||
/// An chat item, such as a message or a marker.
|
/// An chat item, such as a message or a marker.
|
||||||
#[derive(Debug, Copy, Clone)]
|
#[derive(Debug, Copy, Clone)]
|
||||||
@@ -3103,7 +3103,7 @@ pub async fn forward_msgs(context: &Context, msg_ids: &[MsgId], chat_id: ChatId)
|
|||||||
.query_map(
|
.query_map(
|
||||||
format!(
|
format!(
|
||||||
"SELECT id FROM msgs WHERE id IN({}) ORDER BY timestamp,id",
|
"SELECT id FROM msgs WHERE id IN({}) ORDER BY timestamp,id",
|
||||||
msg_ids.iter().map(|_| "?").collect::<Vec<&str>>().join(",")
|
sql::repeat_vars(msg_ids.len())?
|
||||||
),
|
),
|
||||||
rusqlite::params_from_iter(msg_ids),
|
rusqlite::params_from_iter(msg_ids),
|
||||||
|row| row.get::<_, MsgId>(0),
|
|row| row.get::<_, MsgId>(0),
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ use crate::param::Params;
|
|||||||
use crate::provider::Socket;
|
use crate::provider::Socket;
|
||||||
use crate::scheduler::connectivity::ConnectivityStore;
|
use crate::scheduler::connectivity::ConnectivityStore;
|
||||||
use crate::scheduler::InterruptInfo;
|
use crate::scheduler::InterruptInfo;
|
||||||
|
use crate::sql;
|
||||||
use crate::stock_str;
|
use crate::stock_str;
|
||||||
|
|
||||||
mod client;
|
mod client;
|
||||||
@@ -832,7 +833,7 @@ impl Imap {
|
|||||||
.execute(
|
.execute(
|
||||||
format!(
|
format!(
|
||||||
"DELETE FROM imap WHERE id IN ({})",
|
"DELETE FROM imap WHERE id IN ({})",
|
||||||
row_ids.iter().map(|_| "?").collect::<Vec<&str>>().join(",")
|
sql::repeat_vars(row_ids.len())?
|
||||||
),
|
),
|
||||||
rusqlite::params_from_iter(row_ids),
|
rusqlite::params_from_iter(row_ids),
|
||||||
)
|
)
|
||||||
@@ -869,7 +870,7 @@ impl Imap {
|
|||||||
.execute(
|
.execute(
|
||||||
format!(
|
format!(
|
||||||
"DELETE FROM imap WHERE id IN ({})",
|
"DELETE FROM imap WHERE id IN ({})",
|
||||||
row_ids.iter().map(|_| "?").collect::<Vec<&str>>().join(",")
|
sql::repeat_vars(row_ids.len())?
|
||||||
),
|
),
|
||||||
rusqlite::params_from_iter(row_ids),
|
rusqlite::params_from_iter(row_ids),
|
||||||
)
|
)
|
||||||
@@ -911,7 +912,7 @@ impl Imap {
|
|||||||
.execute(
|
.execute(
|
||||||
format!(
|
format!(
|
||||||
"UPDATE imap SET target='' WHERE id IN ({})",
|
"UPDATE imap SET target='' WHERE id IN ({})",
|
||||||
row_ids.iter().map(|_| "?").collect::<Vec<&str>>().join(",")
|
sql::repeat_vars(row_ids.len())?
|
||||||
),
|
),
|
||||||
rusqlite::params_from_iter(row_ids),
|
rusqlite::params_from_iter(row_ids),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -472,9 +472,12 @@ pub async fn kill_action(context: &Context, action: Action) -> Result<()> {
|
|||||||
|
|
||||||
/// Remove jobs with specified IDs.
|
/// Remove jobs with specified IDs.
|
||||||
async fn kill_ids(context: &Context, job_ids: &[u32]) -> Result<()> {
|
async fn kill_ids(context: &Context, job_ids: &[u32]) -> Result<()> {
|
||||||
|
if job_ids.is_empty() {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
let q = format!(
|
let q = format!(
|
||||||
"DELETE FROM jobs WHERE id IN({})",
|
"DELETE FROM jobs WHERE id IN({})",
|
||||||
job_ids.iter().map(|_| "?").collect::<Vec<&str>>().join(",")
|
sql::repeat_vars(job_ids.len())?
|
||||||
);
|
);
|
||||||
context
|
context
|
||||||
.sql
|
.sql
|
||||||
|
|||||||
Reference in New Issue
Block a user