aboutsummaryrefslogtreecommitdiff
path: root/src/jobs
diff options
context:
space:
mode:
authorJoris Guyonvarch2025-08-30 09:32:27 +0200
committerJoris Guyonvarch2025-08-30 09:32:27 +0200
commit2a6bcee45086bca9128489de19908984ea1be0da (patch)
tree2e5e1b0e50109385b5d3daaabed00efb450f4b62 /src/jobs
parent164538a57a5b7c19c993862a6badc85fd723380e (diff)
Remove weekly report jobmain
Diffstat (limited to 'src/jobs')
-rw-r--r--src/jobs/mod.rs16
-rw-r--r--src/jobs/weekly_report.rs65
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
- ))
-}