misskey_api/endpoint/users/
stats.rs1use crate::model::{id::Id, user::User};
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Debug, Clone)]
6#[serde(rename_all = "camelCase")]
7pub struct UserStats {
8 pub notes_count: u64,
9 pub replies_count: u64,
10 pub renotes_count: u64,
11 pub replied_count: u64,
12 pub renoted_count: u64,
13 pub poll_votes_count: u64,
14 pub poll_voted_count: u64,
15 pub local_following_count: u64,
16 pub remote_following_count: u64,
17 pub local_followers_count: u64,
18 pub remote_followers_count: u64,
19 pub following_count: u64,
20 pub followers_count: u64,
21 pub sent_reactions_count: u64,
22 pub received_reactions_count: u64,
23 pub note_favorites_count: u64,
24 pub page_likes_count: u64,
25 pub page_liked_count: u64,
26 pub drive_files_count: u64,
27 pub drive_usage: u64,
28 pub reversi_count: u64,
29}
30
31#[derive(Serialize, Debug, Clone)]
32#[serde(rename_all = "camelCase")]
33pub struct Request {
34 pub user_id: Id<User>,
35}
36
37impl misskey_core::Request for Request {
38 type Response = UserStats;
39 const ENDPOINT: &'static str = "users/stats";
40}
41
42#[cfg(test)]
43mod tests {
44 use super::Request;
45 use crate::test::{ClientExt, TestClient};
46
47 #[tokio::test]
48 async fn request_simple() {
49 let client = TestClient::new();
50 let user = client.admin.me().await;
51 client.user.test(Request { user_id: user.id }).await;
52 }
53}