From 2a6bcee45086bca9128489de19908984ea1be0da Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Sat, 30 Aug 2025 09:32:27 +0200 Subject: Remove weekly report job --- src/db/incomes.rs | 61 ----------------------- src/db/jobs.rs | 1 - src/db/migrations/06-remove-weekly-report-job.sql | 1 + src/db/mod.rs | 1 + src/db/payments.rs | 56 --------------------- src/db/utils.rs | 12 ----- 6 files changed, 2 insertions(+), 130 deletions(-) create mode 100644 src/db/migrations/06-remove-weekly-report-job.sql (limited to 'src/db') diff --git a/src/db/incomes.rs b/src/db/incomes.rs index 688e9e1..d33cbcb 100644 --- a/src/db/incomes.rs +++ b/src/db/incomes.rs @@ -5,7 +5,6 @@ use tokio_rusqlite::{named_params, Connection, Row}; use crate::db::utils; use crate::model::income::{Create, Form, Stat, Table, Update}; -use crate::model::report::Report; fn row_to_table(row: &Row) -> Result { Ok(Table { @@ -487,63 +486,3 @@ pub async fn total_each_month(conn: &Connection) -> Vec { } } } - -pub async fn last_week(conn: &Connection) -> Vec { - let query = r#" - SELECT - strftime('%m/%Y', incomes.date) AS date, - users.name AS name, - incomes.amount AS amount, - (CASE - WHEN - incomes.deleted_at IS NOT NULL - THEN - 'Deleted' - WHEN - incomes.updated_at IS NOT NULL - AND incomes.created_at < date('now', 'weekday 0', '-13 days') - THEN - 'Updated' - ELSE - 'Created' - END) AS action - FROM - incomes - INNER JOIN - users - ON - incomes.user_id = users.id - WHERE - ( - incomes.created_at >= date('now', 'weekday 0', '-13 days') - AND incomes.created_at < date('now', 'weekday 0', '-6 days') - ) OR ( - incomes.updated_at >= date('now', 'weekday 0', '-13 days') - AND incomes.updated_at < date('now', 'weekday 0', '-6 days') - ) OR ( - incomes.deleted_at >= date('now', 'weekday 0', '-13 days') - AND incomes.deleted_at < date('now', 'weekday 0', '-6 days') - ) - ORDER BY - incomes.date - "#; - - let res = conn - .call(move |conn| { - let mut stmt = conn.prepare(query)?; - let xs = stmt - .query_map([], utils::row_to_report)? - .collect::, _>>()?; - - Ok(xs) - }) - .await; - - match res { - Ok(xs) => xs, - Err(err) => { - log::error!("Error listing payments for report: {:?}", err); - vec![] - } - } -} diff --git a/src/db/jobs.rs b/src/db/jobs.rs index 1d00408..0080339 100644 --- a/src/db/jobs.rs +++ b/src/db/jobs.rs @@ -4,7 +4,6 @@ use crate::model::job::Job; 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')", }; diff --git a/src/db/migrations/06-remove-weekly-report-job.sql b/src/db/migrations/06-remove-weekly-report-job.sql new file mode 100644 index 0000000..415ea76 --- /dev/null +++ b/src/db/migrations/06-remove-weekly-report-job.sql @@ -0,0 +1 @@ +DELETE FROM jobs WHERE name = 'WeeklyReport'; diff --git a/src/db/mod.rs b/src/db/mod.rs index b1fdeea..4894e95 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -27,6 +27,7 @@ async fn apply_migrations(conn: &Connection) -> Result<()> { M::up(include_str!("migrations/03-sign-in-token.sql")), M::up(include_str!("migrations/04-plural-naming.sql")), M::up(include_str!("migrations/05-strict-tables.sql")), + M::up(include_str!("migrations/06-remove-weekly-report-job.sql")), ]); Ok(conn diff --git a/src/db/payments.rs b/src/db/payments.rs index c3013d2..23b4d2f 100644 --- a/src/db/payments.rs +++ b/src/db/payments.rs @@ -7,7 +7,6 @@ use tokio_rusqlite::{ use crate::db::utils; use crate::model::frequency::Frequency; use crate::model::payment; -use crate::model::report::Report; use crate::queries; use crate::utils::text; @@ -567,58 +566,3 @@ pub async fn create_monthly_payments(conn: &Connection) { Err(err) => log::error!("Error creating monthly payments: {:?}", err), } } - -pub async fn last_week(conn: &Connection) -> Vec { - let query = r#" - SELECT - strftime('%d/%m/%Y', payments.date) AS date, - (payments.name || ' (' || users.name || ')') AS name, - payments.cost AS amount, - (CASE - WHEN payments.deleted_at IS NOT NULL - THEN 'Deleted' - WHEN - payments.updated_at IS NOT NULL - AND payments.created_at < date('now', 'weekday 0', '-13 days') - THEN 'Updated' - ELSE 'Created' - END) AS action - FROM payments - INNER JOIN users - ON payments.user_id = users.id - WHERE - payments.frequency = 'Punctual' - AND ( - ( - payments.created_at >= date('now', 'weekday 0', '-13 days') - AND payments.created_at < date('now', 'weekday 0', '-6 days') - ) OR ( - payments.updated_at >= date('now', 'weekday 0', '-13 days') - AND payments.updated_at < date('now', 'weekday 0', '-6 days') - ) OR ( - payments.deleted_at >= date('now', 'weekday 0', '-13 days') - AND payments.deleted_at < date('now', 'weekday 0', '-6 days') - ) - ) - ORDER BY payments.date - "#; - - let res = conn - .call(move |conn| { - let mut stmt = conn.prepare(query)?; - let xs = stmt - .query_map([], utils::row_to_report)? - .collect::, _>>()?; - - Ok(xs) - }) - .await; - - match res { - Ok(payments) => payments, - Err(err) => { - log::error!("Error listing payments for report: {:?}", err); - vec![] - } - } -} diff --git a/src/db/utils.rs b/src/db/utils.rs index 2ff0f13..8f8a31d 100644 --- a/src/db/utils.rs +++ b/src/db/utils.rs @@ -1,6 +1,3 @@ -use crate::model::report::Report; -use tokio_rusqlite::Row; - pub fn format_key_for_search(value: &str) -> String { // Lower doesn’t work on accentuated letters, hence the need to remove manually accents for // uppercase letters as well. @@ -18,12 +15,3 @@ pub fn one>>( )), } } - -pub fn row_to_report(row: &Row) -> Result { - Ok(Report { - date: row.get(0)?, - name: row.get(1)?, - amount: row.get(2)?, - action: row.get(3)?, - }) -} -- cgit v1.2.3