misskey_api/endpoint/users/
relation.rs

1use crate::model::{
2    id::Id,
3    user::{User, UserRelation},
4};
5
6use serde::Serialize;
7
8#[derive(Serialize, Debug, Clone)]
9#[serde(rename_all = "camelCase")]
10pub struct Request {
11    pub user_id: Id<User>,
12}
13
14impl misskey_core::Request for Request {
15    type Response = UserRelation;
16    const ENDPOINT: &'static str = "users/relation";
17}
18
19#[derive(Serialize, Debug, Clone)]
20#[serde(rename_all = "camelCase")]
21pub struct RequestWithUserIds {
22    #[serde(rename = "userId")]
23    pub user_ids: Vec<Id<User>>,
24}
25
26impl misskey_core::Request for RequestWithUserIds {
27    type Response = Vec<UserRelation>;
28    const ENDPOINT: &'static str = "users/relation";
29}
30
31#[cfg(test)]
32mod tests {
33    use super::{Request, RequestWithUserIds};
34    use crate::test::{ClientExt, TestClient};
35
36    #[tokio::test]
37    async fn request() {
38        let client = TestClient::new();
39        let admin = client.admin.me().await;
40
41        client.user.test(Request { user_id: admin.id }).await;
42    }
43
44    #[tokio::test]
45    async fn request_with_user_ids() {
46        let client = TestClient::new();
47        let admin = client.admin.me().await;
48        let (new_user, _) = client.admin.create_user().await;
49
50        client
51            .user
52            .test(RequestWithUserIds {
53                user_ids: vec![admin.id, new_user.id],
54            })
55            .await;
56    }
57}