fastcomments_sdk/sso/
secure_sso_user_data.rs1use base64::{prelude::BASE64_STANDARD, Engine};
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Clone)]
5pub struct SecureSSOUserData {
6 pub id: String,
7 pub email: String,
8 pub username: String,
9 pub avatar: String,
10 pub opted_in_notifications: Option<bool>,
11 pub display_label: Option<String>,
12 pub display_name: Option<String>,
13 pub website_url: Option<String>,
14 pub group_ids: Option<Vec<String>>,
15 pub is_admin: Option<bool>,
16 pub is_moderator: Option<bool>,
17 pub is_profile_activity_private: Option<bool>,
18}
19
20impl SecureSSOUserData {
21 pub fn new(id: String, email: String, username: String, avatar: String) -> SecureSSOUserData {
22 SecureSSOUserData {
23 id,
24 email,
25 username,
26 avatar,
27 opted_in_notifications: None,
28 display_label: None,
29 display_name: None,
30 website_url: None,
31 group_ids: None,
32 is_admin: None,
33 is_moderator: None,
34 is_profile_activity_private: None,
35 }
36 }
37
38 pub fn as_json_base64(&self) -> String {
39
40 let json = serde_json::to_string(self).unwrap();
41
42 BASE64_STANDARD.encode(&json)
43 }
44}