misskey_api/endpoint/users/
show.rs1use crate::model::{id::Id, user::User};
2
3use serde::Serialize;
4
5#[derive(Serialize, Debug, Clone)]
6#[serde(untagged)]
7pub enum Request {
8 #[serde(rename_all = "camelCase")]
9 WithUserId { user_id: Id<User> },
10 #[serde(rename_all = "camelCase")]
11 WithUsername {
12 username: String,
13 host: Option<String>,
14 },
15}
16
17impl misskey_core::Request for Request {
18 type Response = User;
19 const ENDPOINT: &'static str = "users/show";
20}
21
22#[derive(Serialize, Debug, Clone)]
23#[serde(rename_all = "camelCase")]
24pub struct RequestWithUserIds {
25 pub user_ids: Vec<Id<User>>,
26}
27
28impl misskey_core::Request for RequestWithUserIds {
29 type Response = Vec<User>;
30 const ENDPOINT: &'static str = "users/show";
31}
32
33#[cfg(test)]
34mod tests {
35 use super::{Request, RequestWithUserIds};
36 use crate::test::{ClientExt, TestClient};
37
38 #[tokio::test]
39 async fn request_with_user_id() {
40 let client = TestClient::new();
41 let user = client.me().await;
42
43 client.test(Request::WithUserId { user_id: user.id }).await;
44 }
45
46 #[tokio::test]
47 async fn request_with_username() {
48 let client = TestClient::new();
49 let user = client.me().await;
50
51 client
52 .test(Request::WithUsername {
53 username: user.username,
54 host: None,
55 })
56 .await;
57 }
58
59 #[tokio::test]
62 async fn request_with_user_ids() {
63 let client = TestClient::new();
64 let user = client.user.me().await;
65 let admin = client.admin.me().await;
66
67 client
68 .test(RequestWithUserIds {
69 user_ids: vec![user.id, admin.id],
70 })
71 .await;
72 }
73}