misskey_api/endpoint/users/
relation.rs1use 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}