summaryrefslogtreecommitdiff
path: root/importers/actualbudget/src/models/budgeting_app/DateTimeUtc.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-10-16 12:51:21 +0100
committerJoe Carstairs <me@joeac.net>2024-10-16 12:51:21 +0100
commit27b95c9186bd45edd4c982a7cc89cf69cf2c5d46 (patch)
treebf104ff9d64e601bfec5516eb51ef298f3095e9b /importers/actualbudget/src/models/budgeting_app/DateTimeUtc.rs
parent76974785294089965efc3f55b2a08d4089029c52 (diff)
All backend stuff lives in backend folder
Diffstat (limited to 'importers/actualbudget/src/models/budgeting_app/DateTimeUtc.rs')
-rw-r--r--importers/actualbudget/src/models/budgeting_app/DateTimeUtc.rs57
1 files changed, 0 insertions, 57 deletions
diff --git a/importers/actualbudget/src/models/budgeting_app/DateTimeUtc.rs b/importers/actualbudget/src/models/budgeting_app/DateTimeUtc.rs
deleted file mode 100644
index e44fa8c..0000000
--- a/importers/actualbudget/src/models/budgeting_app/DateTimeUtc.rs
+++ /dev/null
@@ -1,57 +0,0 @@
-use chrono::{DateTime, Datelike, Utc};
-use diesel::{
- deserialize::{FromSql, FromSqlRow},
- expression::AsExpression,
- serialize::ToSql,
- sql_types::Text,
- sqlite::Sqlite,
-};
-use serde::{Deserialize, Serialize};
-
-#[derive(
- Eq,
- PartialEq,
- Ord,
- PartialOrd,
- Serialize,
- Deserialize,
- Copy,
- Clone,
- Debug,
- AsExpression,
- FromSqlRow,
-)]
-#[diesel(sql_type=Text)]
-pub struct DateTimeUtc(DateTime<Utc>);
-
-impl DateTimeUtc {
- pub fn day_diff(&self, other: &DateTimeUtc) -> u32 {
- self.0
- .num_days_from_ce()
- .abs_diff(other.0.num_days_from_ce())
- }
-
- pub fn new(date_time_utc: DateTime<Utc>) -> Self {
- Self(date_time_utc)
- }
-}
-
-impl ToSql<Text, Sqlite> for DateTimeUtc {
- fn to_sql<'b>(
- &'b self,
- out: &mut diesel::serialize::Output<'b, '_, Sqlite>,
- ) -> diesel::serialize::Result {
- out.set_value((*self).0.to_rfc3339());
- Ok(diesel::serialize::IsNull::No)
- }
-}
-
-impl FromSql<Text, Sqlite> for DateTimeUtc {
- fn from_sql(
- bytes: <Sqlite as diesel::backend::Backend>::RawValue<'_>,
- ) -> diesel::deserialize::Result<Self> {
- let str: String = FromSql::<Text, Sqlite>::from_sql(bytes)?;
- let date_time = str.as_str().parse::<DateTime<Utc>>()?;
- Ok(DateTimeUtc(date_time))
- }
-}