diff options
Diffstat (limited to 'src/model.rs')
-rw-r--r-- | src/model.rs | 43 |
1 files changed, 16 insertions, 27 deletions
diff --git a/src/model.rs b/src/model.rs index 655456e..045ab98 100644 --- a/src/model.rs +++ b/src/model.rs @@ -1,13 +1,9 @@ -use std::str::FromStr; - use serde::{Deserialize, Serialize}; use sqlx::FromRow; use time::OffsetDateTime; use uuid::Uuid; -use crate::Error; - -#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize, FromRow)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, FromRow)] #[serde(rename_all = "camelCase")] pub struct UserSchema { pub uuid: Uuid, @@ -15,21 +11,23 @@ pub struct UserSchema { pub email: String, #[serde(default, skip_serializing)] pub password_hash: String, - pub created_at: Option<OffsetDateTime>, - pub updated_at: Option<OffsetDateTime>, -} - -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] -pub struct RegisterSchema { - pub name: String, - pub email: String, - pub password: String, + pub session_epoch: OffsetDateTime, + pub created_at: OffsetDateTime, + pub updated_at: OffsetDateTime, } -impl RegisterSchema { - pub fn validate(&self) -> Result<(), Error> { - email_address::EmailAddress::from_str(&self.email)?; - Ok(()) +impl Default for UserSchema { + fn default() -> Self { + let now = time::OffsetDateTime::now_utc(); + Self { + uuid: Default::default(), + name: Default::default(), + email: Default::default(), + password_hash: Default::default(), + session_epoch: now, + created_at: now, + updated_at: now, + } } } @@ -38,12 +36,3 @@ pub struct LoginSchema { pub email: String, pub password: String, } - -impl From<RegisterSchema> for LoginSchema { - fn from(value: RegisterSchema) -> Self { - let RegisterSchema { - email, password, .. - } = value; - Self { email, password } - } -} |