summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-09-17 18:10:17 +0100
committerJoe Carstairs <me@joeac.net>2024-09-17 18:11:39 +0100
commit76974785294089965efc3f55b2a08d4089029c52 (patch)
tree67e72c77857d10461a5c84f59967866fd5b4c365 /backend
parentcd269b3540fb5e3a988c1b59d3763db360b1fb34 (diff)
Adds /budget_update endpoint
Diffstat (limited to 'backend')
-rw-r--r--backend/src/main.rs1
-rw-r--r--backend/src/models/budget_update.rs3
-rw-r--r--backend/src/routes/budget_update.rs18
-rw-r--r--backend/src/routes/mod.rs1
4 files changed, 22 insertions, 1 deletions
diff --git a/backend/src/main.rs b/backend/src/main.rs
index 6966e3c..c3e02e5 100644
--- a/backend/src/main.rs
+++ b/backend/src/main.rs
@@ -50,6 +50,7 @@ async fn rocket() -> Rocket<Build> {
routes::account::create_account,
routes::balance::get_all_category_balances,
routes::budget::get_current_category_budget_per_category,
+ routes::budget_update::get_all_budget_updates,
routes::category::get_all_categories,
],
)
diff --git a/backend/src/models/budget_update.rs b/backend/src/models/budget_update.rs
index ea93c16..c63e957 100644
--- a/backend/src/models/budget_update.rs
+++ b/backend/src/models/budget_update.rs
@@ -1,10 +1,11 @@
use diesel::prelude::*;
+use serde::Serialize;
use crate::models::category::Category;
use super::date_time_utc::DateTimeUtc;
-#[derive(Clone, Queryable, Identifiable, Selectable, Associations, Debug, PartialEq)]
+#[derive(Clone, Serialize, Queryable, Identifiable, Selectable, Associations, Debug, PartialEq)]
#[diesel(table_name = crate::schema::budget_updates)]
#[diesel(belongs_to(Category))]
pub struct BudgetUpdate {
diff --git a/backend/src/routes/budget_update.rs b/backend/src/routes/budget_update.rs
new file mode 100644
index 0000000..7732c7b
--- /dev/null
+++ b/backend/src/routes/budget_update.rs
@@ -0,0 +1,18 @@
+use rocket::get;
+use rocket::http::Status;
+use rocket::serde::json::Json;
+
+use crate::databases::UserDataDb;
+use crate::models::budget_update::BudgetUpdate;
+use crate::queries;
+
+#[get("/budget-update")]
+pub async fn get_all_budget_updates(
+ user_data_db: UserDataDb,
+) -> Result<Json<Vec<BudgetUpdate>>, Status> {
+ user_data_db
+ .run(queries::budget_updates::get_all_budget_updates)
+ .await
+ .map(Json)
+ .map_err(|_| Status { code: 500 })
+}
diff --git a/backend/src/routes/mod.rs b/backend/src/routes/mod.rs
index 1d4408a..bf0ab4a 100644
--- a/backend/src/routes/mod.rs
+++ b/backend/src/routes/mod.rs
@@ -1,4 +1,5 @@
pub mod account;
pub mod balance;
pub mod budget;
+pub mod budget_update;
pub mod category;