summaryrefslogtreecommitdiff
path: root/importers/actualbudget/src/transformers.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-09-17 13:20:04 +0100
committerJoe Carstairs <me@joeac.net>2024-09-17 13:20:04 +0100
commitcd269b3540fb5e3a988c1b59d3763db360b1fb34 (patch)
treea728403d8d5708ad29eeed2b391706b09a93fe4c /importers/actualbudget/src/transformers.rs
parentf0e3e0cfb183253e03b1a61ddecb7b9330d47fdb (diff)
many, many changes
Diffstat (limited to 'importers/actualbudget/src/transformers.rs')
-rw-r--r--importers/actualbudget/src/transformers.rs24
1 files changed, 8 insertions, 16 deletions
diff --git a/importers/actualbudget/src/transformers.rs b/importers/actualbudget/src/transformers.rs
index 910b106..678ea05 100644
--- a/importers/actualbudget/src/transformers.rs
+++ b/importers/actualbudget/src/transformers.rs
@@ -5,18 +5,18 @@ use crate::models::{
actualbudget,
budgeting_app::{
account::Account, budget_update::BudgetUpdate, category::Category,
- category_transfer::CategoryTransfer, transaction::Transaction,
+ category_transfer::CategoryTransfer, date_time_utc::DateTimeUtc, transaction::Transaction,
transaction_categorisation::TransactionCategorisation,
},
};
-pub fn transform_date(actualbudget_date: &actualbudget::date::Date) -> String {
- actualbudget_date.to_iso()
+pub fn transform_date(actualbudget_date: &actualbudget::date::Date) -> DateTimeUtc {
+ DateTimeUtc::new(&actualbudget_date.to_iso())
}
pub fn transform_accounts(
actualbudget_accounts: &[actualbudget::account::Account],
- first_transaction_date: &str,
+ first_transaction_date: &DateTimeUtc,
) -> Vec<Account> {
let mut accounts = Vec::<Account>::new();
for account in actualbudget_accounts {
@@ -27,34 +27,24 @@ pub fn transform_accounts(
fn transform_account(
actualbudget_account: &actualbudget::account::Account,
- opening_date: &str,
+ opening_date: &DateTimeUtc,
) -> Account {
Account {
id: transform_id(&actualbudget_account.id.clone()),
name: actualbudget_account.name.clone(),
opening_balance: 0,
- opening_date: String::from(opening_date),
+ opening_date: opening_date.clone(),
}
}
pub fn transform_categories(
actualbudget_categories: &[actualbudget::category::Category],
- actualbudget_zero_budgets: &[actualbudget::zero_budget::ZeroBudget],
) -> Vec<Category> {
let mut categories = Vec::<Category>::new();
for actualbudget_category in actualbudget_categories {
- let first_zero_budget_in_category = get_first_zero_budget_in_category(
- actualbudget_zero_budgets,
- &actualbudget_category.id.clone(),
- );
-
categories.push(Category {
id: transform_id(&actualbudget_category.id.clone()),
name: actualbudget_category.name.clone(),
- initial_budget: first_zero_budget_in_category
- .map(|zb| zb.amount.try_into().unwrap())
- .unwrap_or(0),
- initial_period: 30,
})
}
categories
@@ -128,6 +118,7 @@ pub fn transform_transactions(
description: atomic_actualbudget_transaction.notes,
payee: atomic_actualbudget_transaction.payee,
quantity: atomic_actualbudget_transaction.amount.try_into().unwrap(),
+ date: transform_date(&atomic_actualbudget_transaction.date),
account_id: transform_id(&atomic_actualbudget_transaction.account_id),
});
@@ -155,6 +146,7 @@ pub fn transform_transactions(
description: parent_actualbudget_transaction.notes,
payee: parent_actualbudget_transaction.payee,
quantity: parent_actualbudget_transaction.amount.try_into().unwrap(),
+ date: transform_date(&parent_actualbudget_transaction.date),
account_id: transform_id(&parent_actualbudget_transaction.account_id),
});