summaryrefslogtreecommitdiffstats
path: root/src/model.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/model.rs')
-rw-r--r--src/model.rs14
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,