summaryrefslogtreecommitdiff
path: root/backend/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'backend/core/src')
-rw-r--r--backend/core/src/models/budget.rs2
-rw-r--r--backend/core/src/queries/budget_updates/get_first_with_date_and_category_id.rs (renamed from backend/core/src/queries/budget_updates/get_first_with_date.rs)4
-rw-r--r--backend/core/src/queries/budget_updates/mod.rs4
-rw-r--r--backend/core/src/queries/categories/get_most_recent_budget_per_category_id.rs5
4 files changed, 9 insertions, 6 deletions
diff --git a/backend/core/src/models/budget.rs b/backend/core/src/models/budget.rs
index 45ab534..e6fb4c9 100644
--- a/backend/core/src/models/budget.rs
+++ b/backend/core/src/models/budget.rs
@@ -2,7 +2,7 @@ use serde::Serialize;
use super::budget_update::BudgetUpdate;
-#[derive(Debug, Eq, PartialEq, Serialize)]
+#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
pub struct Budget {
pub quantity: i32,
pub period: i32,
diff --git a/backend/core/src/queries/budget_updates/get_first_with_date.rs b/backend/core/src/queries/budget_updates/get_first_with_date_and_category_id.rs
index 0d5b2e1..2d8f97c 100644
--- a/backend/core/src/queries/budget_updates/get_first_with_date.rs
+++ b/backend/core/src/queries/budget_updates/get_first_with_date_and_category_id.rs
@@ -9,13 +9,15 @@ use diesel::{
ExpressionMethods, OptionalExtension, QueryDsl, RunQueryDsl, SelectableHelper, SqliteConnection
};
-pub fn get_first_budget_update_with_date(
+pub fn get_first_budget_update_with_date_and_category_id(
date: &DateUtc,
+ category_id: i32,
connection: &mut SqliteConnection,
) -> Result<Option<BudgetUpdate>> {
let first_budget_update = budget_updates_table
.select(BudgetUpdate::as_select())
.filter(budget_updates_schema::date.eq(date.to_string()))
+ .filter(budget_updates_schema::category_id.eq(category_id))
.first(connection)
.optional()
.with_context(|| format!("failed to get first budget update with date {}", date.to_string()))?;
diff --git a/backend/core/src/queries/budget_updates/mod.rs b/backend/core/src/queries/budget_updates/mod.rs
index 337197e..6fc7de0 100644
--- a/backend/core/src/queries/budget_updates/mod.rs
+++ b/backend/core/src/queries/budget_updates/mod.rs
@@ -1,11 +1,11 @@
mod delete_all;
mod get_all;
-mod get_first_with_date;
+mod get_first_with_date_and_category_id;
mod get_most_recent_with_category_id;
mod insert;
pub use delete_all::delete_all_budget_updates;
pub use get_all::get_all_budget_updates;
-pub use get_first_with_date::get_first_budget_update_with_date;
+pub use get_first_with_date_and_category_id::get_first_budget_update_with_date_and_category_id;
pub use get_most_recent_with_category_id::get_most_recent_budget_update_date_with_category_id;
pub use insert::insert_budget_updates;
diff --git a/backend/core/src/queries/categories/get_most_recent_budget_per_category_id.rs b/backend/core/src/queries/categories/get_most_recent_budget_per_category_id.rs
index fc0a5e1..9f2e4f6 100644
--- a/backend/core/src/queries/categories/get_most_recent_budget_per_category_id.rs
+++ b/backend/core/src/queries/categories/get_most_recent_budget_per_category_id.rs
@@ -1,7 +1,7 @@
use anyhow::{Context, Result};
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,
+ get_first_budget_update_with_date_and_category_id, get_most_recent_budget_update_date_with_category_id,
},
categories::get_all_category_ids,
}};
@@ -33,8 +33,9 @@ fn get_most_recent_category_budget_per_category_id_without_context(
}
let most_recent_budget_update_date = most_recent_budget_update_date.unwrap();
- let most_recent_budget_update = get_first_budget_update_with_date(
+ let most_recent_budget_update = get_first_budget_update_with_date_and_category_id(
&most_recent_budget_update_date,
+ category_id,
connection,
)?;
// The fact we found the date by getting the most recent budget update