lichess_api/api/
users.rs

1use crate::client::LichessApi;
2use crate::error::Result;
3use crate::model::users::*;
4
5impl LichessApi<reqwest::Client> {
6    pub async fn get_all_top_10(&self) -> Result<Top10s> {
7        self.get_single_model(top_10::GetRequest::default()).await
8    }
9
10    pub async fn get_one_leaderboard(
11        &self,
12        request: impl Into<leaderboard::GetRequest>,
13    ) -> Result<Leaderboard> {
14        self.get_single_model(request.into()).await
15    }
16
17    pub async fn get_public_user_data(
18        &self,
19        request: impl Into<public::GetRequest>,
20    ) -> Result<UserExtended> {
21        self.get_single_model(request.into()).await
22    }
23
24    pub async fn get_status_of_users(
25        &self,
26        request: impl Into<status::GetRequest>,
27    ) -> Result<Vec<status::User>> {
28        self.get_single_model(request.into()).await
29    }
30
31    pub async fn get_rating_history(
32        &self,
33        request: impl Into<rating_history::GetRequest>,
34    ) -> Result<rating_history::RatingHistory> {
35        self.get_single_model(request.into()).await
36    }
37
38    pub async fn get_user_performance_statistics(
39        &self,
40        request: impl Into<performance::GetRequest>,
41    ) -> Result<performance::PerfStat> {
42        self.get_single_model(request.into()).await
43    }
44
45    pub async fn get_users_by_id(
46        &self,
47        request: impl Into<by_id::PostRequest>,
48    ) -> Result<Vec<User>> {
49        self.get_single_model(request.into()).await
50    }
51
52    pub async fn get_live_streamers(&self) -> Result<Vec<StreamingUser>> {
53        self.get_single_model(live_streamers::GetRequest::new())
54            .await
55    }
56
57    pub async fn get_crosstable(
58        &self,
59        request: impl Into<crosstable::GetRequest>,
60    ) -> Result<Crosstable> {
61        self.get_single_model(request.into()).await
62    }
63
64    pub async fn autocomplete_users(
65        &self,
66        request: impl Into<autocomplete::GetRequest>,
67    ) -> Result<autocomplete::Autocompletions> {
68        self.get_single_model(request.into()).await
69    }
70
71    pub async fn add_note_to_user(
72        &self,
73        request: impl Into<note::PostRequest>,
74    ) -> Result<crate::model::Ok> {
75        self.get_single_model(request.into()).await
76    }
77
78    pub async fn get_user_notes(
79        &self,
80        request: impl Into<note::GetRequest>,
81    ) -> Result<Vec<UserNote>> {
82        self.get_single_model(request.into()).await
83    }
84
85    pub async fn get_user_activity(
86        &self,
87        request: impl Into<activity::GetRequest>,
88    ) -> Result<Vec<activity::UserActivity>> {
89        self.get_single_model(request.into()).await
90    }
91}