misskey_api/endpoint/users/groups/
joined.rs

1use crate::model::user_group::UserGroup;
2
3use serde::Serialize;
4
5#[derive(Serialize, Default, Debug, Clone)]
6#[serde(rename_all = "camelCase")]
7pub struct Request {}
8
9impl misskey_core::Request for Request {
10    type Response = Vec<UserGroup>;
11    const ENDPOINT: &'static str = "users/groups/joined";
12}
13
14#[cfg(test)]
15mod tests {
16    use super::Request;
17    use crate::test::{ClientExt, TestClient};
18
19    #[tokio::test]
20    async fn request() {
21        let client = TestClient::new();
22        let (new_user, new_user_client) = client.admin.create_user().await;
23        let group = client
24            .test(crate::endpoint::users::groups::create::Request {
25                name: "test".to_string(),
26            })
27            .await;
28        client
29            .test(crate::endpoint::users::groups::invite::Request {
30                group_id: group.id.clone(),
31                user_id: new_user.id.clone(),
32            })
33            .await;
34        let invitation = new_user_client
35            .test(crate::endpoint::i::user_group_invites::Request {
36                limit: None,
37                since_id: None,
38                until_id: None,
39            })
40            .await
41            .pop()
42            .unwrap();
43        new_user_client
44            .test(
45                crate::endpoint::users::groups::invitations::accept::Request {
46                    invitation_id: invitation.id,
47                },
48            )
49            .await;
50
51        new_user_client.test(Request::default()).await;
52    }
53}