traq/models/
oidc_traq_user_info.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct OidcTraqUserInfo {
15 #[serde(rename = "bio")]
17 pub bio: String,
18 #[serde(rename = "groups")]
20 pub groups: Vec<uuid::Uuid>,
21 #[serde(rename = "tags")]
23 pub tags: Vec<crate::models::UserTag>,
24 #[serde(rename = "last_online", deserialize_with = "Option::deserialize")]
26 pub last_online: Option<String>,
27 #[serde(rename = "twitter_id")]
29 pub twitter_id: String,
30 #[serde(rename = "display_name")]
32 pub display_name: String,
33 #[serde(rename = "icon_file_id")]
35 pub icon_file_id: uuid::Uuid,
36 #[serde(rename = "bot")]
38 pub bot: bool,
39 #[serde(rename = "state")]
40 pub state: crate::models::UserAccountState,
41 #[serde(rename = "permissions")]
43 pub permissions: Vec<crate::models::UserPermission>,
44 #[serde(rename = "home_channel", deserialize_with = "Option::deserialize")]
46 pub home_channel: Option<uuid::Uuid>,
47}
48
49impl OidcTraqUserInfo {
50 pub fn new(
52 bio: String,
53 groups: Vec<uuid::Uuid>,
54 tags: Vec<crate::models::UserTag>,
55 last_online: Option<String>,
56 twitter_id: String,
57 display_name: String,
58 icon_file_id: uuid::Uuid,
59 bot: bool,
60 state: crate::models::UserAccountState,
61 permissions: Vec<crate::models::UserPermission>,
62 home_channel: Option<uuid::Uuid>,
63 ) -> OidcTraqUserInfo {
64 OidcTraqUserInfo {
65 bio,
66 groups,
67 tags,
68 last_online,
69 twitter_id,
70 display_name,
71 icon_file_id,
72 bot,
73 state,
74 permissions,
75 home_channel,
76 }
77 }
78}