summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rust/actualbudget_models/src/actualbudget_date.rs4
-rw-r--r--rust/actualbudget_to_schist_transformer/src/schist_state.rs10
-rw-r--r--rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs6
-rw-r--r--rust/actualbudget_to_schist_transformer/src/transform_state/transform_date.rs22
-rw-r--r--rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs6
-rw-r--r--rust/actualbudget_to_schist_transformer/src/transform_state/transform_transactions.rs2
-rw-r--r--rust/schist_fakes/src/account.rs4
-rw-r--r--rust/schist_fakes/src/transaction.rs4
-rw-r--r--rust/schist_models/src/account.rs4
-rw-r--r--rust/schist_models/src/transaction.rs6
10 files changed, 32 insertions, 36 deletions
diff --git a/rust/actualbudget_models/src/actualbudget_date.rs b/rust/actualbudget_models/src/actualbudget_date.rs
index c98accb..a5dc340 100644
--- a/rust/actualbudget_models/src/actualbudget_date.rs
+++ b/rust/actualbudget_models/src/actualbudget_date.rs
@@ -20,6 +20,10 @@ impl ActualbudgetDate {
format!("{0}-{1}-{2}T00:00:00.000Z", self.year(), self.month(), self.day())
}
+ pub fn to_iso_date(&self) -> String {
+ format!("{0}-{1}-{2}", self.year(), self.month(), self.day())
+ }
+
pub fn year(&self) -> String {
self.0.to_string()[0..4].to_string()
}
diff --git a/rust/actualbudget_to_schist_transformer/src/schist_state.rs b/rust/actualbudget_to_schist_transformer/src/schist_state.rs
index 92c97b3..e72d56a 100644
--- a/rust/actualbudget_to_schist_transformer/src/schist_state.rs
+++ b/rust/actualbudget_to_schist_transformer/src/schist_state.rs
@@ -1,17 +1,11 @@
use anyhow::Result;
use diesel::SqliteConnection;
use schist_models::{
- account::Account,
- budget_drip::BudgetDrip,
- category::Category,
- category_transfer::CategoryTransfer,
- datetime_utc::DatetimeUtc,
- transaction::Transaction,
- transaction_categorisation::TransactionCategorisation,
+ account::Account, budget_drip::BudgetDrip, category::Category, category_transfer::CategoryTransfer, date_utc::DateUtc, transaction::Transaction, transaction_categorisation::TransactionCategorisation
};
pub struct SchistState {
- pub first_transaction_date: DatetimeUtc,
+ pub first_transaction_date: DateUtc,
pub accounts: Vec<Account>,
pub categories: Vec<Category>,
pub budget_drips: Vec<BudgetDrip>,
diff --git a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs
index 917c62d..68691eb 100644
--- a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs
+++ b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs
@@ -1,11 +1,11 @@
use actualbudget_models::ActualbudgetAccount;
-use schist_models::{account::Account, datetime_utc::DatetimeUtc};
+use schist_models::{account::Account, date_utc::DateUtc};
use super::transform_id;
pub fn transform_accounts(
actualbudget_accounts: &[ActualbudgetAccount],
- first_transaction_date: &DatetimeUtc,
+ first_transaction_date: &DateUtc,
) -> Vec<Account> {
let mut accounts = Vec::<Account>::new();
for account in actualbudget_accounts {
@@ -16,7 +16,7 @@ pub fn transform_accounts(
fn transform_account(
actualbudget_account: &ActualbudgetAccount,
- opening_date: &DatetimeUtc,
+ opening_date: &DateUtc,
) -> Account {
Account {
id: transform_id(&actualbudget_account.id.clone()),
diff --git a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_date.rs b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_date.rs
index 0e3acca..885ed84 100644
--- a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_date.rs
+++ b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_date.rs
@@ -1,31 +1,31 @@
-use anyhow::Result;
use actualbudget_models::ActualbudgetDate;
-use schist_models::datetime_utc::DatetimeUtc;
+use anyhow::Result;
+use schist_models::date_utc::DateUtc;
-pub fn transform_date(actualbudget_date: &ActualbudgetDate) -> Result<DatetimeUtc> {
- actualbudget_date.to_iso().parse()
+pub fn transform_date(actualbudget_date: &ActualbudgetDate) -> Result<DateUtc> {
+ actualbudget_date.to_iso_date().parse()
}
#[cfg(test)]
mod test {
use actualbudget_models::ActualbudgetDate;
- use schist_models::datetime_utc::DatetimeUtc;
+ use schist_models::date_utc::DateUtc;
use super::transform_date;
#[test]
fn when_utc_epoch_as_day_then_utc_epoch() {
let actualbudget_date = ActualbudgetDate::from_i32(19700101);
- let datetime_utc = transform_date(&actualbudget_date).unwrap();
- let expected_datetime_utc: DatetimeUtc = "1970-01-01T00:00:00.000Z".parse().unwrap();
- assert_eq!(expected_datetime_utc, datetime_utc);
+ let date_utc = transform_date(&actualbudget_date).unwrap();
+ let expected_date_utc: DateUtc = "1970-01-01".parse().unwrap();
+ assert_eq!(expected_date_utc, date_utc);
}
#[test]
fn when_utc_epoch_as_month_then_utc_epoch() {
let actualbudget_date = ActualbudgetDate::from_i32(197001);
- let datetime_utc = transform_date(&actualbudget_date).unwrap();
- let expected_datetime_utc: DatetimeUtc = "1970-01-01T00:00:00.000Z".parse().unwrap();
- assert_eq!(expected_datetime_utc, datetime_utc);
+ let date_utc = transform_date(&actualbudget_date).unwrap();
+ let expected_date_utc: DateUtc = "1970-01-01".parse().unwrap();
+ assert_eq!(expected_date_utc, date_utc);
}
}
diff --git a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs
index 3bcbe5d..395b72b 100644
--- a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs
+++ b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs
@@ -1,5 +1,5 @@
use anyhow::{bail, Context, Result};
-use schist_models::{account::Account, category::Category, category_transfer::CategoryTransfer, date_utc::DateUtc, datetime_utc::DatetimeUtc, transaction::Transaction, transaction_categorisation::TransactionCategorisation};
+use schist_models::{account::Account, category::Category, category_transfer::CategoryTransfer, date_utc::DateUtc, transaction::Transaction, transaction_categorisation::TransactionCategorisation};
use crate::{actualbudget_state::ActualbudgetState, schist_state::SchistState};
@@ -43,9 +43,7 @@ fn transform_state_without_context(actualbudget_state: ActualbudgetState) -> Res
})
}
-fn find_date_before(datetime: &DatetimeUtc) -> Result<DateUtc> {
- let date: DateUtc = datetime.into();
-
+fn find_date_before(date: &DateUtc) -> Result<DateUtc> {
for days_before in 0..31 {
let result = date.sub_days(days_before);
if result.is_ok() {
diff --git a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_transactions.rs b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_transactions.rs
index 3fbcb0f..36f3d81 100644
--- a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_transactions.rs
+++ b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_transactions.rs
@@ -1,4 +1,4 @@
-use anyhow::Result;
+use anyhow::{Context, Result};
use actualbudget_models::{ActualbudgetAccount, ActualbudgetTransaction};
use schist_models::{transaction::Transaction, transaction_categorisation::TransactionCategorisation};
diff --git a/rust/schist_fakes/src/account.rs b/rust/schist_fakes/src/account.rs
index 1cee16e..1547eb7 100644
--- a/rust/schist_fakes/src/account.rs
+++ b/rust/schist_fakes/src/account.rs
@@ -1,4 +1,4 @@
-use schist_models::{account::Account, datetime_utc::DatetimeUtc};
+use schist_models::{account::Account, date_utc::DateUtc};
use schist_traits::nowlike::Nowlike;
pub fn make_fake_account(id: i32) -> Account {
@@ -6,6 +6,6 @@ pub fn make_fake_account(id: i32) -> Account {
id,
name: String::from("Joe Bloggs"),
opening_balance: 0,
- opening_date: DatetimeUtc::now(),
+ opening_date: DateUtc::now(),
}
}
diff --git a/rust/schist_fakes/src/transaction.rs b/rust/schist_fakes/src/transaction.rs
index e65f478..30d1788 100644
--- a/rust/schist_fakes/src/transaction.rs
+++ b/rust/schist_fakes/src/transaction.rs
@@ -1,4 +1,4 @@
-use schist_models::{datetime_utc::DatetimeUtc, transaction::{Transaction, TransactionBuilder}};
+use schist_models::{date_utc::DateUtc, transaction::{Transaction, TransactionBuilder}};
use schist_traits::nowlike::Nowlike;
pub fn make_fake_transaction(id: i32) -> Transaction {
@@ -12,7 +12,7 @@ pub fn make_fake_transaction_builder(id: i32) -> TransactionBuilder {
.description(String::from("Fake category transfer"))
.payee(String::from("Fake payee"))
.quantity(0)
- .date(DatetimeUtc::now())
+ .date(DateUtc::now())
.account_id(0);
builder
}
diff --git a/rust/schist_models/src/account.rs b/rust/schist_models/src/account.rs
index 43400a3..05dceae 100644
--- a/rust/schist_models/src/account.rs
+++ b/rust/schist_models/src/account.rs
@@ -1,7 +1,7 @@
use diesel::prelude::*;
use serde::{Deserialize, Serialize};
-use crate::datetime_utc::DatetimeUtc;
+use crate::date_utc::DateUtc;
#[derive(
Insertable, Queryable, Identifiable, Selectable, Debug, PartialEq, Clone, Serialize, Deserialize,
@@ -11,5 +11,5 @@ pub struct Account {
pub id: i32,
pub name: String,
pub opening_balance: i32,
- pub opening_date: DatetimeUtc,
+ pub opening_date: DateUtc,
}
diff --git a/rust/schist_models/src/transaction.rs b/rust/schist_models/src/transaction.rs
index eb9e816..4df39f8 100644
--- a/rust/schist_models/src/transaction.rs
+++ b/rust/schist_models/src/transaction.rs
@@ -1,7 +1,7 @@
use derive_builder::Builder;
-use diesel::prelude::*;
+use diesel::prelude::{Associations, Identifiable, Insertable, Queryable, Selectable};
-use crate::{account::Account, datetime_utc::DatetimeUtc};
+use crate::{account::Account, date_utc::DateUtc};
#[derive(Builder, Queryable, Identifiable, Selectable, Insertable, Associations, Debug, PartialEq)]
#[diesel(table_name = crate::schema::transactions)]
@@ -11,6 +11,6 @@ pub struct Transaction {
pub description: String,
pub payee: String,
pub quantity: i32,
- pub date: DatetimeUtc,
+ pub date: DateUtc,
pub account_id: i32,
}