aboutsummaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/db')
-rw-r--r--src/db/incomes.rs61
-rw-r--r--src/db/jobs.rs1
-rw-r--r--src/db/migrations/06-remove-weekly-report-job.sql1
-rw-r--r--src/db/mod.rs1
-rw-r--r--src/db/payments.rs56
-rw-r--r--src/db/utils.rs12
6 files changed, 2 insertions, 130 deletions
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<Table, rusqlite::Error> {
Ok(Table {
@@ -487,63 +486,3 @@ pub async fn total_each_month(conn: &Connection) -> Vec<Stat> {
}
}
}
-
-pub async fn last_week(conn: &Connection) -> Vec<Report> {
- 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::<Result<Vec<Report>, _>>()?;
-
- 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<Report> {
- 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::<Result<Vec<Report>, _>>()?;
-
- 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<A, I: Iterator<Item = Result<A, rusqlite::Error>>>(
)),
}
}
-
-pub fn row_to_report(row: &Row) -> Result<Report, rusqlite::Error> {
- Ok(Report {
- date: row.get(0)?,
- name: row.get(1)?,
- amount: row.get(2)?,
- action: row.get(3)?,
- })
-}