diff options
author | Joris | 2025-01-31 22:28:53 +0100 |
---|---|---|
committer | Joris | 2025-01-31 22:28:53 +0100 |
commit | 0adf5a093494bdb7f5d5c0f12913133e333ddfad (patch) | |
tree | ada6df0f3480647bec99429819f1bfffd36194ce /src/db/jobs.rs | |
parent | 24eeb54a6b7159964e8887ade7fa5173b50feb3a (diff) |
Migrate to tokio_rusqlite
Diffstat (limited to 'src/db/jobs.rs')
-rw-r--r-- | src/db/jobs.rs | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/src/db/jobs.rs b/src/db/jobs.rs index 7d9386a..1d00408 100644 --- a/src/db/jobs.rs +++ b/src/db/jobs.rs @@ -1,32 +1,27 @@ -use sqlx::error::Error; -use sqlx::sqlite::SqlitePool; +use tokio_rusqlite::{named_params, Connection}; use crate::model::job::Job; -pub async fn should_run(pool: &SqlitePool, job: Job) -> bool { +pub async fn should_run(conn: &Connection, job: Job) -> bool { let run_from = match job { Job::WeeklyReport => "date('now', 'weekday 0', '-6 days')", Job::MonthlyPayment => "date('now', 'start of month')", }; let query = format!( - r#" -SELECT - 1 -FROM - jobs -WHERE - name = ? - AND last_execution < {} - "#, + r#"SELECT 1 FROM jobs WHERE name = ? AND last_execution < {}"#, run_from ); - let res = sqlx::query(&query).bind(job).fetch_one(pool).await; + let res = conn + .call(move |conn| { + let mut stmt = conn.prepare(&query)?; + Ok(stmt.exists([job.to_string()])?) + }) + .await; match res { - Ok(_) => true, - Err(Error::RowNotFound) => false, + Ok(r) => r, Err(err) => { log::error!("Error looking if job should run: {:?}", err); false @@ -34,17 +29,18 @@ WHERE } } -pub async fn actualize_last_execution(pool: &SqlitePool, job: Job) { +pub async fn actualize_last_execution(conn: &Connection, job: Job) { let query = r#" -UPDATE - jobs -SET - last_execution = datetime() -WHERE - name = ? + UPDATE jobs + SET last_execution = datetime() + WHERE name = :name "#; - let res = sqlx::query(query).bind(job).execute(pool).await; + let res = conn + .call(move |conn| { + Ok(conn.execute(query, named_params![":name": job.to_string()])?) + }) + .await; match res { Ok(_) => (), |