diff options
Diffstat (limited to 'src/model.rs')
-rw-r--r-- | src/model.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/model.rs b/src/model.rs index 5f6111e..51ce493 100644 --- a/src/model.rs +++ b/src/model.rs @@ -1,7 +1,12 @@ +use std::str::FromStr; + use serde::{Deserialize, Serialize}; +use sqlx::FromRow; use time::OffsetDateTime; -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)] +use crate::Error; + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, FromRow)] #[serde(rename_all = "camelCase")] pub struct User { pub id: uuid::Uuid, @@ -28,6 +33,13 @@ pub struct RegisterSchema { pub password: String, } +impl RegisterSchema { + pub fn validate(&self) -> Result<(), Error> { + email_address::EmailAddress::from_str(&self.email)?; + Ok(()) + } +} + #[derive(Debug, Serialize, Deserialize)] pub struct LoginSchema { pub email: String, |