diff --git a/src/contact/mod.rs b/src/contact/mod.rs index 973a2d7..9eba279 100644 --- a/src/contact/mod.rs +++ b/src/contact/mod.rs @@ -2,14 +2,19 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Default, Deserialize, Serialize)] pub struct Contact { - pub id: uuid::Uuid, + #[serde(skip_serializing_if = "crate::init::is_uuid_nil")] + pub id: Option, // empty? - pub firstname: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub firstname: Option, // empty? - pub lastname: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub lastname: Option, // empty? - pub nickname: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub nickname: Option, pub phone_number: String, // empty - pub user_id: uuid::Uuid, + #[serde(skip_serializing_if = "crate::init::is_uuid_nil")] + pub user_id: Option, } diff --git a/src/lib.rs b/src/lib.rs index bed7751..6dd050f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,7 +6,10 @@ pub mod token; pub mod user; pub mod init { - pub fn is_uuid_nil(uuid: &uuid::Uuid) -> bool { - uuid.is_nil() + pub fn is_uuid_nil(uuid: &Option) -> bool { + match uuid { + Some(id) => id.is_nil(), + None => true, + } } } diff --git a/src/user/mod.rs b/src/user/mod.rs index 2a891fc..e2d4f66 100644 --- a/src/user/mod.rs +++ b/src/user/mod.rs @@ -71,7 +71,7 @@ pub struct UserProfile { #[derive(Clone, Debug, Default, Deserialize, Serialize)] pub struct Salt { - #[serde(skip_serializing_if = "crate::init::is_uuid_nil")] + // #[serde(skip_serializing_if = "crate::init::is_uuid_nil")] pub id: uuid::Uuid, #[serde(skip_serializing_if = "String::is_empty")] pub salt: String,