diff options
author | Joris Guyonvarch | 2025-08-30 09:32:27 +0200 |
---|---|---|
committer | Joris Guyonvarch | 2025-08-30 09:32:27 +0200 |
commit | 2a6bcee45086bca9128489de19908984ea1be0da (patch) | |
tree | 2e5e1b0e50109385b5d3daaabed00efb450f4b62 /src/jobs | |
parent | 164538a57a5b7c19c993862a6badc85fd723380e (diff) |
Remove weekly report jobmain
Diffstat (limited to 'src/jobs')
-rw-r--r-- | src/jobs/mod.rs | 16 | ||||
-rw-r--r-- | src/jobs/weekly_report.rs | 65 |
2 files changed, 1 insertions, 80 deletions
diff --git a/src/jobs/mod.rs b/src/jobs/mod.rs index 3bfca71..0a903c4 100644 --- a/src/jobs/mod.rs +++ b/src/jobs/mod.rs @@ -1,25 +1,11 @@ -mod weekly_report; - use tokio::time::{sleep, Duration}; use tokio_rusqlite::Connection; use crate::db; -use crate::model::config::Config; use crate::model::job::Job; -pub async fn start( - config: Config, - db_conn: Connection, - templates: minijinja::Environment<'_>, -) { +pub async fn start(db_conn: Connection) { loop { - if db::jobs::should_run(&db_conn, Job::WeeklyReport).await { - log::info!("Starting weekly report job"); - if weekly_report::send(&config, &db_conn, &templates).await { - db::jobs::actualize_last_execution(&db_conn, Job::WeeklyReport) - .await; - } - } if db::jobs::should_run(&db_conn, Job::MonthlyPayment).await { log::info!("Starting monthly payment job"); db::payments::create_monthly_payments(&db_conn).await; diff --git a/src/jobs/weekly_report.rs b/src/jobs/weekly_report.rs deleted file mode 100644 index 35bf5af..0000000 --- a/src/jobs/weekly_report.rs +++ /dev/null @@ -1,65 +0,0 @@ -use std::collections::HashMap; -use tokio_rusqlite::Connection; - -use crate::db; -use crate::mail; -use crate::model::config::Config; -use crate::payer; - -pub async fn send( - config: &Config, - db_conn: &Connection, - env: &minijinja::Environment<'_>, -) -> bool { - match get_weekly_report(db_conn, env).await { - Ok(report) => { - let users = db::users::list(db_conn).await; - mail::send( - config, - users - .into_iter() - .map(|u| mail::Recipient { - name: u.name, - address: u.email, - }) - .collect(), - "Rapport hebdomadaire", - &report, - ) - .await - } - Err(err) => { - log::error!( - "Error preparing weekly report from template: {:?}", - err - ); - false - } - } -} - -async fn get_weekly_report( - db_conn: &Connection, - env: &minijinja::Environment<'_>, -) -> Result<String, minijinja::Error> { - let users = db::users::list(db_conn).await; - let incomes_from = db::incomes::defined_for_all(db_conn).await; - let user_incomes = match incomes_from { - Some(from) => db::incomes::cumulative(db_conn, from).await, - None => HashMap::new(), - }; - let user_payments = db::payments::repartition(db_conn).await; - let exceeding_payers = - payer::exceeding(&users, &user_incomes, &user_payments); - - let last_week_payments = db::payments::last_week(db_conn).await; - let last_week_incomes = db::incomes::last_week(db_conn).await; - - let template = env.get_template("report/report.j2")?; - template.render(minijinja::context!( - name => "John", - exceeding_payers => exceeding_payers, - payments => last_week_payments, - incomes => last_week_incomes - )) -} |