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}