fastcomments_sdk/sso/
secure_sso_user_data.rs

1use 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}