From cd269b3540fb5e3a988c1b59d3763db360b1fb34 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Tue, 17 Sep 2024 13:20:04 +0100 Subject: many, many changes --- backend/src/queries/category_budgets/get_all.rs | 42 ---------------------- .../get_most_recent_per_category_id.rs | 42 ++++++++++++++++++++++ backend/src/queries/category_budgets/mod.rs | 4 +-- 3 files changed, 44 insertions(+), 44 deletions(-) delete mode 100644 backend/src/queries/category_budgets/get_all.rs create mode 100644 backend/src/queries/category_budgets/get_most_recent_per_category_id.rs (limited to 'backend/src/queries/category_budgets') diff --git a/backend/src/queries/category_budgets/get_all.rs b/backend/src/queries/category_budgets/get_all.rs deleted file mode 100644 index 6a8b040..0000000 --- a/backend/src/queries/category_budgets/get_all.rs +++ /dev/null @@ -1,42 +0,0 @@ -use crate::{ - models::{budget::Budget, category_budget::CategoryBudget}, - queries::{ - budget_updates::{ - get_first_budget_update_with_date, get_most_recent_budget_update_date_with_category_id, - }, - categories::get_all_category_ids, - }, -}; -use diesel::{result::Error, SqliteConnection}; - -pub fn get_all_category_budgets( - connection: &mut SqliteConnection, -) -> Result, Error> { - let category_ids: Vec = get_all_category_ids(connection)?; - - let mut budgets = Vec::::new(); - for category_id in category_ids { - let most_recent_budget_update_date = - get_most_recent_budget_update_date_with_category_id(category_id, connection)?; - - if most_recent_budget_update_date.is_none() { - budgets.push(CategoryBudget { - category_id, - budget: Option::None, - }); - continue; - } - - let most_recent_budget_update = get_first_budget_update_with_date( - most_recent_budget_update_date.unwrap().as_str(), - connection, - )?; - - budgets.push(CategoryBudget { - category_id, - budget: Some(Budget::from(&most_recent_budget_update)), - }); - } - - Ok(budgets) -} diff --git a/backend/src/queries/category_budgets/get_most_recent_per_category_id.rs b/backend/src/queries/category_budgets/get_most_recent_per_category_id.rs new file mode 100644 index 0000000..6b76efd --- /dev/null +++ b/backend/src/queries/category_budgets/get_most_recent_per_category_id.rs @@ -0,0 +1,42 @@ +use crate::{ + models::{budget::Budget, category_budget::CategoryBudget}, + queries::{ + budget_updates::{ + get_first_budget_update_with_date, get_most_recent_budget_update_date_with_category_id, + }, + categories::get_all_category_ids, + }, +}; +use diesel::{result::Error, SqliteConnection}; + +pub fn get_most_recent_category_budget_per_category_id( + connection: &mut SqliteConnection, +) -> Result, Error> { + let category_ids: Vec = get_all_category_ids(connection)?; + + let mut budgets = Vec::::new(); + for category_id in category_ids { + let most_recent_budget_update_date = + get_most_recent_budget_update_date_with_category_id(category_id, connection)?; + + if most_recent_budget_update_date.is_none() { + budgets.push(CategoryBudget { + category_id, + budget: Option::None, + }); + continue; + } + + let most_recent_budget_update = get_first_budget_update_with_date( + most_recent_budget_update_date.unwrap().as_str(), + connection, + )?; + + budgets.push(CategoryBudget { + category_id, + budget: Some(Budget::from(&most_recent_budget_update)), + }); + } + + Ok(budgets) +} diff --git a/backend/src/queries/category_budgets/mod.rs b/backend/src/queries/category_budgets/mod.rs index 1a46cc3..29fc246 100644 --- a/backend/src/queries/category_budgets/mod.rs +++ b/backend/src/queries/category_budgets/mod.rs @@ -1,3 +1,3 @@ -mod get_all; +mod get_most_recent_per_category_id; -pub use self::get_all::get_all_category_budgets; +pub use self::get_most_recent_per_category_id::get_most_recent_category_budget_per_category_id; -- cgit v1.2.3