Extending user #18

Merged
phoenix merged 1 commits from extend_user into v0.3.0-migrate 2026-05-31 17:22:52 -04:00
2 changed files with 28 additions and 0 deletions
+6
View File
@@ -4,3 +4,9 @@ pub mod envy;
pub mod message;
pub mod token;
pub mod user;
pub mod init {
pub fn is_uuid_nil(uuid: &uuid::Uuid) -> bool {
uuid.is_nil()
}
}
+22
View File
@@ -14,6 +14,8 @@ pub struct User {
pub created: Option<time::OffsetDateTime>,
#[serde(with = "time::serde::rfc3339::option")]
pub last_login: Option<time::OffsetDateTime>,
#[serde(skip)]
pub salt_id: uuid::Uuid,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
@@ -26,6 +28,8 @@ pub struct ServiceUser {
// When serializing to json, if empty do not populate
#[serde(with = "time::serde::rfc3339::option")]
pub last_login: Option<time::OffsetDateTime>,
#[serde(skip)]
pub salt_id: uuid::Uuid,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
@@ -65,6 +69,24 @@ pub struct UserProfile {
pub last_login: Option<time::OffsetDateTime>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct Salt {
#[serde(skip_serializing_if = "crate::init::is_uuid_nil")]
pub id: uuid::Uuid,
#[serde(skip_serializing_if = "String::is_empty")]
pub salt: String,
}
impl Salt {
pub fn to_json(&self, output_pretty: bool) -> Result<String, serde_json::Error> {
if output_pretty {
serde_json::to_string_pretty(&self)
} else {
serde_json::to_string(&self)
}
}
}
pub fn init_user_profile(usr: &User) -> UserProfile {
UserProfile {
user_id: usr.id,