traq/models/
oidc_traq_user_info.rs

1/*
2 * traQ v3
3 *
4 * traQ v3 API
5 *
6 * The version of the OpenAPI document: 3.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11/// OidcTraqUserInfo : traQ特有のユーザー詳細情報
12
13#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct OidcTraqUserInfo {
15    /// 自己紹介(biography)
16    #[serde(rename = "bio")]
17    pub bio: String,
18    /// 所属グループのUUIDの配列
19    #[serde(rename = "groups")]
20    pub groups: Vec<uuid::Uuid>,
21    /// タグリスト
22    #[serde(rename = "tags")]
23    pub tags: Vec<crate::models::UserTag>,
24    /// 最終オンライン日時
25    #[serde(rename = "last_online", deserialize_with = "Option::deserialize")]
26    pub last_online: Option<String>,
27    /// Twitter ID
28    #[serde(rename = "twitter_id")]
29    pub twitter_id: String,
30    /// ユーザー表示名
31    #[serde(rename = "display_name")]
32    pub display_name: String,
33    /// アイコンファイルUUID
34    #[serde(rename = "icon_file_id")]
35    pub icon_file_id: uuid::Uuid,
36    /// BOTかどうか
37    #[serde(rename = "bot")]
38    pub bot: bool,
39    #[serde(rename = "state")]
40    pub state: crate::models::UserAccountState,
41    /// 所有している権限の配列
42    #[serde(rename = "permissions")]
43    pub permissions: Vec<crate::models::UserPermission>,
44    /// ホームチャンネル
45    #[serde(rename = "home_channel", deserialize_with = "Option::deserialize")]
46    pub home_channel: Option<uuid::Uuid>,
47}
48
49impl OidcTraqUserInfo {
50    /// traQ特有のユーザー詳細情報
51    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}