summaryrefslogtreecommitdiff
path: root/rust/actualbudget_importer/src/queries
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-11-17 09:23:28 +0000
committerJoe Carstairs <me@joeac.net>2024-11-17 09:23:28 +0000
commit1ae19eb3315c40e3f9062592c27fa76c11cf626c (patch)
tree09d9ce380795971f4b50e1d4b0ca3c57c9e1db1a /rust/actualbudget_importer/src/queries
parent1a494937021561595d0fb29e26fb707aef9e55de (diff)
Renames workspace folder
Diffstat (limited to 'rust/actualbudget_importer/src/queries')
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_accounts/get_all.rs6
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_accounts/get_category_transfers_account.rs13
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_accounts/mod.rs5
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_categories/get_all.rs6
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_categories/mod.rs3
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_transactions/get_all.rs6
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_transactions/get_first_date.rs14
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_transactions/mod.rs5
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_zero_budgets/get_all.rs6
-rw-r--r--rust/actualbudget_importer/src/queries/actualbudget_zero_budgets/mod.rs3
-rw-r--r--rust/actualbudget_importer/src/queries/mod.rs4
11 files changed, 71 insertions, 0 deletions
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_accounts/get_all.rs b/rust/actualbudget_importer/src/queries/actualbudget_accounts/get_all.rs
new file mode 100644
index 0000000..6f667de
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_accounts/get_all.rs
@@ -0,0 +1,6 @@
+use crate::{models::actualbudget_account::ActualbudgetAccount, schema::accounts::dsl::accounts};
+use diesel::{result::Error, QueryDsl, RunQueryDsl, SelectableHelper, SqliteConnection};
+
+pub fn get_all_actualbudget_accounts(connection: &mut SqliteConnection) -> Result<Vec<ActualbudgetAccount>, Error> {
+ accounts.select(ActualbudgetAccount::as_select()).load(connection)
+}
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_accounts/get_category_transfers_account.rs b/rust/actualbudget_importer/src/queries/actualbudget_accounts/get_category_transfers_account.rs
new file mode 100644
index 0000000..f05dc78
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_accounts/get_category_transfers_account.rs
@@ -0,0 +1,13 @@
+use diesel::{result::Error, ExpressionMethods, QueryDsl, RunQueryDsl, SelectableHelper, SqliteConnection};
+
+use crate::{models::actualbudget_account::ActualbudgetAccount, schema::accounts::{
+ self as accounts_schema,
+ dsl::accounts as accounts_table,
+}};
+
+pub fn get_category_transfers_account(connection: &mut SqliteConnection) -> Result<ActualbudgetAccount, Error> {
+ accounts_table
+ .filter(accounts_schema::name.eq("Category transfers"))
+ .select(ActualbudgetAccount::as_select())
+ .first(connection)
+}
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_accounts/mod.rs b/rust/actualbudget_importer/src/queries/actualbudget_accounts/mod.rs
new file mode 100644
index 0000000..c6d6015
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_accounts/mod.rs
@@ -0,0 +1,5 @@
+mod get_all;
+mod get_category_transfers_account;
+
+pub use get_all::get_all_actualbudget_accounts;
+pub use get_category_transfers_account::get_category_transfers_account;
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_categories/get_all.rs b/rust/actualbudget_importer/src/queries/actualbudget_categories/get_all.rs
new file mode 100644
index 0000000..4cb7ebc
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_categories/get_all.rs
@@ -0,0 +1,6 @@
+use crate::{models::actualbudget_category::ActualbudgetCategory, schema::categories::dsl::categories};
+use diesel::{result::Error, QueryDsl, RunQueryDsl, SelectableHelper, SqliteConnection};
+
+pub fn get_all_actualbudget_categories(connection: &mut SqliteConnection) -> Result<Vec<ActualbudgetCategory>, Error> {
+ categories.select(ActualbudgetCategory::as_select()).load(connection)
+}
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_categories/mod.rs b/rust/actualbudget_importer/src/queries/actualbudget_categories/mod.rs
new file mode 100644
index 0000000..0c04e53
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_categories/mod.rs
@@ -0,0 +1,3 @@
+mod get_all;
+
+pub use get_all::get_all_actualbudget_categories;
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_transactions/get_all.rs b/rust/actualbudget_importer/src/queries/actualbudget_transactions/get_all.rs
new file mode 100644
index 0000000..84c8d08
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_transactions/get_all.rs
@@ -0,0 +1,6 @@
+use crate::{models::actualbudget_transaction::ActualbudgetTransaction, schema::transactions::dsl::transactions};
+use diesel::{result::Error, QueryDsl, RunQueryDsl, SelectableHelper, SqliteConnection};
+
+pub fn get_all_actualbudget_transactions(connection: &mut SqliteConnection) -> Result<Vec<ActualbudgetTransaction>, Error> {
+ transactions.select(ActualbudgetTransaction::as_select()).load(connection)
+}
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_transactions/get_first_date.rs b/rust/actualbudget_importer/src/queries/actualbudget_transactions/get_first_date.rs
new file mode 100644
index 0000000..b958c37
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_transactions/get_first_date.rs
@@ -0,0 +1,14 @@
+use anyhow::Result;
+use crate::{models::actualbudget_date::ActualbudgetDate, schema::transactions::{
+ self as transactions_schema,
+ dsl::transactions as transactions_table,
+}};
+use diesel::{dsl::min, result::Error, QueryDsl, RunQueryDsl, SqliteConnection};
+
+pub fn get_first_actualbudget_transaction_date(connection: &mut SqliteConnection) -> Result<ActualbudgetDate> {
+ let date_as_int = transactions_table
+ .select(min(transactions_schema::date))
+ .first::<Option<i32>>(connection)
+ .map_or_else(|e| Err(e), |o| o.map_or_else(|| Err(Error::NotFound), |i| Ok(i)))?;
+ Ok(ActualbudgetDate::from_i32(date_as_int))
+}
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_transactions/mod.rs b/rust/actualbudget_importer/src/queries/actualbudget_transactions/mod.rs
new file mode 100644
index 0000000..b4ed0dd
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_transactions/mod.rs
@@ -0,0 +1,5 @@
+mod get_all;
+mod get_first_date;
+
+pub use get_all::get_all_actualbudget_transactions;
+pub use get_first_date::get_first_actualbudget_transaction_date;
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_zero_budgets/get_all.rs b/rust/actualbudget_importer/src/queries/actualbudget_zero_budgets/get_all.rs
new file mode 100644
index 0000000..0c3f695
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_zero_budgets/get_all.rs
@@ -0,0 +1,6 @@
+use crate::{models::actualbudget_zero_budget::ActualbudgetZeroBudget, schema::zero_budgets::dsl::zero_budgets};
+use diesel::{result::Error, QueryDsl, RunQueryDsl, SelectableHelper, SqliteConnection};
+
+pub fn get_all_actualbudget_zero_budgets(connection: &mut SqliteConnection) -> Result<Vec<ActualbudgetZeroBudget>, Error> {
+ zero_budgets.select(ActualbudgetZeroBudget::as_select()).load(connection)
+}
diff --git a/rust/actualbudget_importer/src/queries/actualbudget_zero_budgets/mod.rs b/rust/actualbudget_importer/src/queries/actualbudget_zero_budgets/mod.rs
new file mode 100644
index 0000000..ba7e21b
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/actualbudget_zero_budgets/mod.rs
@@ -0,0 +1,3 @@
+mod get_all;
+
+pub use get_all::get_all_actualbudget_zero_budgets;
diff --git a/rust/actualbudget_importer/src/queries/mod.rs b/rust/actualbudget_importer/src/queries/mod.rs
new file mode 100644
index 0000000..e16dafc
--- /dev/null
+++ b/rust/actualbudget_importer/src/queries/mod.rs
@@ -0,0 +1,4 @@
+pub mod actualbudget_accounts;
+pub mod actualbudget_categories;
+pub mod actualbudget_transactions;
+pub mod actualbudget_zero_budgets;