1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
pub mod models;
pub mod queries;
pub mod schema;
pub mod transformers;
use anyhow::Result;
use schist_core::queries as schist_queries;
use diesel::{Connection, SqliteConnection};
use queries::{actualbudget_accounts::{get_all_actualbudget_accounts, get_category_transfers_account}, actualbudget_categories::get_all_actualbudget_categories, actualbudget_transactions::{get_all_actualbudget_transactions, get_first_actualbudget_transaction_date}, actualbudget_zero_budgets::get_all_actualbudget_zero_budgets};
fn main() -> Result<()> {
let connection_src = &mut SqliteConnection::establish("in.sqlite").unwrap();
let connection_dest = &mut SqliteConnection::establish("out.sqlite").unwrap();
let actualbudget_first_transaction_date = get_first_actualbudget_transaction_date(connection_src)?;
let actualbudget_accounts = get_all_actualbudget_accounts(connection_src)?;
let actualbudget_categories = get_all_actualbudget_categories(connection_src)?;
let actualbudget_zero_budgets = get_all_actualbudget_zero_budgets(connection_src)?;
let actualbudget_category_transfers_account = get_category_transfers_account(connection_src)?;
let actualbudget_transactions = get_all_actualbudget_transactions(connection_src)?;
let first_transaction_date = transformers::transform_date(&actualbudget_first_transaction_date)?;
let accounts =
transformers::transform_accounts(&actualbudget_accounts, &first_transaction_date);
let categories = transformers::transform_categories(&actualbudget_categories);
let budget_updates = transformers::transform_budget_updates(&actualbudget_zero_budgets)?;
let (transactions, transaction_categorisations) = transformers::transform_transactions(
&actualbudget_transactions,
&actualbudget_category_transfers_account,
)?;
let category_transfers = transformers::transform_category_transfers(
&actualbudget_transactions,
&actualbudget_category_transfers_account,
);
schist_queries::clear::clear(connection_dest)?;
schist_queries::accounts::insert_accounts(&accounts, connection_dest)?;
schist_queries::categories::insert_categories(&categories, connection_dest)?;
schist_queries::budget_updates::insert_budget_updates(&budget_updates, connection_dest)?;
schist_queries::transactions::insert_transactions(&transactions, connection_dest)?;
schist_queries::transaction_categorisations::insert_transaction_categorisations(&transaction_categorisations, connection_dest)?;
schist_queries::category_transfers::insert_category_transfers(&category_transfers, connection_dest)?;
Ok(())
}
|