diff options
Diffstat (limited to 'actualbudget_to_schist_transformer/src/actualbudget_state.rs')
| -rw-r--r-- | actualbudget_to_schist_transformer/src/actualbudget_state.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/actualbudget_to_schist_transformer/src/actualbudget_state.rs b/actualbudget_to_schist_transformer/src/actualbudget_state.rs new file mode 100644 index 0000000..5379b62 --- /dev/null +++ b/actualbudget_to_schist_transformer/src/actualbudget_state.rs @@ -0,0 +1,31 @@ +use std::cmp::min; + +use actualbudget_models::{ActualbudgetAccount, ActualbudgetCategory, ActualbudgetDate, ActualbudgetPayee, ActualbudgetTransaction, ActualbudgetZeroBudget}; +use actualbudget_queries::{actualbudget_accounts::{get_all_actualbudget_accounts, get_category_transfers_account}, actualbudget_categories::get_all_actualbudget_categories, actualbudget_payees::get_all_actualbudget_payees, actualbudget_transactions::{get_all_actualbudget_transactions, get_first_actualbudget_transaction_date}, actualbudget_zero_budgets::{get_all_actualbudget_zero_budgets, get_first_zero_budget_date}}; +use anyhow::Result; +use diesel::SqliteConnection; + +pub struct ActualbudgetState { + pub actualbudget_first_activity_date: ActualbudgetDate, + pub actualbudget_accounts: Vec<ActualbudgetAccount>, + pub actualbudget_categories: Vec<ActualbudgetCategory>, + pub actualbudget_payees: Vec<ActualbudgetPayee>, + pub actualbudget_zero_budgets: Vec<ActualbudgetZeroBudget>, + pub actualbudget_category_transfers_account: Option<ActualbudgetAccount>, + pub actualbudget_transactions: Vec<ActualbudgetTransaction>, +} + +pub fn read_actualbudget_state(actualbudget_connection: &mut SqliteConnection) -> Result<ActualbudgetState> { + Ok(ActualbudgetState { + actualbudget_first_activity_date: min( + get_first_actualbudget_transaction_date(actualbudget_connection)?, + get_first_zero_budget_date(actualbudget_connection)?, + ), + actualbudget_accounts: get_all_actualbudget_accounts(actualbudget_connection)?, + actualbudget_categories: get_all_actualbudget_categories(actualbudget_connection)?, + actualbudget_payees: get_all_actualbudget_payees(actualbudget_connection)?, + actualbudget_zero_budgets: get_all_actualbudget_zero_budgets(actualbudget_connection)?, + actualbudget_category_transfers_account: get_category_transfers_account(actualbudget_connection)?, + actualbudget_transactions: get_all_actualbudget_transactions(actualbudget_connection)?, + }) +} |
