diff options
| author | Joe Carstairs <me@joeac.net> | 2024-12-12 08:28:04 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-12-12 08:28:04 +0000 |
| commit | 54894f9de9bad4fecb2a116d59a03cdd003f84c0 (patch) | |
| tree | 6ce5517cecf23d4e93d7a381a374e1fa6c810cee /actualbudget_to_schist_transformer/src/schist_state.rs | |
| parent | 8a30bcbdf9264d235bf93da3df8e170cfde53d02 (diff) | |
Moves rust workspace to root
Diffstat (limited to 'actualbudget_to_schist_transformer/src/schist_state.rs')
| -rw-r--r-- | actualbudget_to_schist_transformer/src/schist_state.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/actualbudget_to_schist_transformer/src/schist_state.rs b/actualbudget_to_schist_transformer/src/schist_state.rs new file mode 100644 index 0000000..370a0e8 --- /dev/null +++ b/actualbudget_to_schist_transformer/src/schist_state.rs @@ -0,0 +1,28 @@ +use anyhow::Result; +use diesel::SqliteConnection; +use schist_models::{ + account::Account, account_transfer::AccountTransfer, budget_drip::BudgetDrip, category::Category, category_transfer::CategoryTransfer, date_utc::DateUtc, transaction::Transaction, transaction_categorisation::TransactionCategorisation +}; + +pub struct SchistState { + pub first_transaction_date: DateUtc, + pub accounts: Vec<Account>, + pub account_transfers: Vec<AccountTransfer>, + pub categories: Vec<Category>, + pub budget_drips: Vec<BudgetDrip>, + pub transactions: Vec<Transaction>, + pub transaction_categorisations: Vec<TransactionCategorisation>, + pub category_transfers: Vec<CategoryTransfer>, +} + +pub fn export_schist_state(schist_state: &SchistState, schist_connection: &mut SqliteConnection) -> Result<()> { + schist_queries::clear::clear(schist_connection)?; + schist_queries::accounts::insert_accounts(&schist_state.accounts, schist_connection)?; + schist_queries::account_transfers::insert_account_transfers(&schist_state.account_transfers, schist_connection)?; + schist_queries::categories::insert_categories(&schist_state.categories, schist_connection)?; + schist_queries::budget_drips::insert_budget_drips(&schist_state.budget_drips, schist_connection)?; + schist_queries::transactions::insert_transactions(&schist_state.transactions, schist_connection)?; + schist_queries::transaction_categorisations::insert_transaction_categorisations(&schist_state.transaction_categorisations, schist_connection)?; + schist_queries::category_transfers::insert_category_transfers(&schist_state.category_transfers, schist_connection)?; + Ok(()) +} |
