misskey_api/endpoint/users/
stats.rs

1use 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}