diff --git a/src/handlers/sync.rs b/src/handlers/sync.rs index becf9e3..61db182 100644 --- a/src/handlers/sync.rs +++ b/src/handlers/sync.rs @@ -87,10 +87,13 @@ pub async fn get_sync_data( let response = SyncResponse { profile, folders, + collections: Vec::new(), + policies: Vec::new(), ciphers, domains: serde_json::Value::Null, // Ignored for basic implementation + sends: Vec::new(), object: "sync".to_string(), }; Ok(Json(response)) -} \ No newline at end of file +} diff --git a/src/models/sync.rs b/src/models/sync.rs index a4155f0..eedc5c7 100644 --- a/src/models/sync.rs +++ b/src/models/sync.rs @@ -3,44 +3,39 @@ use serde::Serialize; use serde_json::Value; #[derive(Debug, Serialize)] +#[serde(rename_all = "camelCase")] pub struct Profile { + #[serde(skip_serializing_if = "Option::is_none")] pub name: Option, pub email: String, pub id: String, - #[serde(rename = "masterPasswordHint")] + #[serde(skip_serializing_if = "Option::is_none")] pub master_password_hint: Option, - #[serde(rename = "securityStamp")] pub security_stamp: String, - #[serde(rename = "Object")] pub object: String, - #[serde(rename = "premiumFromOrganization")] pub premium_from_organization: bool, - #[serde(rename = "forcePasswordReset")] pub force_password_reset: bool, - #[serde(rename = "emailVerified")] pub email_verified: bool, - #[serde(rename = "twoFactorEnabled")] pub two_factor_enabled: bool, pub premium: bool, - #[serde(rename = "usesKeyConnector")] pub uses_key_connector: bool, - #[serde(rename = "creationDate")] pub creation_date: String, - #[serde(rename = "privateKey")] pub private_key: String, pub key: String, } #[derive(Debug, Serialize)] +#[serde(rename_all = "camelCase")] pub struct SyncResponse { - #[serde(rename = "profile")] pub profile: Profile, - #[serde(rename = "folders")] pub folders: Vec, - #[serde(rename = "ciphers")] + #[serde(default)] + pub collections: Vec, + #[serde(default)] + pub policies: Vec, pub ciphers: Vec, - #[serde(rename = "Domains")] pub domains: Value, - #[serde(rename = "Object")] + #[serde(default)] + pub sends: Vec, pub object: String, }