artifacts/apis/
leaderboard_api.rs1use super::{configuration, Error};
2use crate::{apis::ResponseContent, models};
3use reqwest::StatusCode;
4use serde::{de, Deserialize, Deserializer, Serialize};
5
6#[derive(Clone, Debug)]
8pub struct GetAccountsLeaderboardParams {
9 pub sort: Option<models::AccountLeaderboardType>,
11 pub name: Option<String>,
13 pub page: Option<u32>,
15 pub size: Option<u32>,
17}
18
19impl GetAccountsLeaderboardParams {
20 pub fn new(
21 sort: Option<models::AccountLeaderboardType>,
22 name: Option<String>,
23 page: Option<u32>,
24 size: Option<u32>,
25 ) -> Self {
26 Self {
27 sort,
28 name,
29 page,
30 size,
31 }
32 }
33}
34
35#[derive(Clone, Debug)]
37pub struct GetCharactersLeaderboardParams {
38 pub sort: Option<models::CharacterLeaderboardType>,
40 pub name: Option<String>,
42 pub page: Option<u32>,
44 pub size: Option<u32>,
46}
47
48impl GetCharactersLeaderboardParams {
49 pub fn new(
50 sort: Option<models::CharacterLeaderboardType>,
51 name: Option<String>,
52 page: Option<u32>,
53 size: Option<u32>,
54 ) -> Self {
55 Self {
56 sort,
57 name,
58 page,
59 size,
60 }
61 }
62}
63
64#[derive(Debug, Clone, Serialize)]
66#[serde(untagged)]
67pub enum GetAccountsLeaderboardError {}
68
69impl<'de> Deserialize<'de> for GetAccountsLeaderboardError {
70 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
71 where
72 D: Deserializer<'de>,
73 {
74 let raw = models::ErrorResponseSchema::deserialize(deserializer)?;
75 Err(de::Error::custom(format!(
76 "Unexpected error code: {}",
77 raw.error.code
78 )))
79 }
80}
81
82#[derive(Debug, Clone, Serialize)]
84#[serde(untagged)]
85pub enum GetCharactersLeaderboardError {}
86
87impl<'de> Deserialize<'de> for GetCharactersLeaderboardError {
88 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
89 where
90 D: Deserializer<'de>,
91 {
92 let raw = models::ErrorResponseSchema::deserialize(deserializer)?;
93 Err(de::Error::custom(format!(
94 "Unexpected error code: {}",
95 raw.error.code
96 )))
97 }
98}
99
100pub async fn get_accounts_leaderboard(
102 configuration: &configuration::Configuration,
103 params: GetAccountsLeaderboardParams,
104) -> Result<models::DataPageAccountLeaderboardSchema, Error<GetAccountsLeaderboardError>> {
105 let local_var_configuration = configuration;
106
107 let sort = params.sort;
109 let name = params.name;
111 let page = params.page;
113 let size = params.size;
115
116 let local_var_client = &local_var_configuration.client;
117
118 let local_var_uri_str = format!("{}/leaderboard/accounts", local_var_configuration.base_path);
119 let mut local_var_req_builder =
120 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
121
122 if let Some(ref local_var_str) = sort {
123 local_var_req_builder =
124 local_var_req_builder.query(&[("sort", &local_var_str.to_string())]);
125 }
126 if let Some(ref local_var_str) = name {
127 local_var_req_builder =
128 local_var_req_builder.query(&[("name", &local_var_str.to_string())]);
129 }
130 if let Some(ref local_var_str) = page {
131 local_var_req_builder =
132 local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
133 }
134 if let Some(ref local_var_str) = size {
135 local_var_req_builder =
136 local_var_req_builder.query(&[("size", &local_var_str.to_string())]);
137 }
138 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
139 local_var_req_builder =
140 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
141 }
142
143 let local_var_req = local_var_req_builder.build()?;
144 let local_var_resp = local_var_client.execute(local_var_req).await?;
145
146 let local_var_status = local_var_resp.status();
147 let local_var_content = local_var_resp.text().await?;
148
149 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
150 serde_json::from_str(&local_var_content).map_err(Error::from)
151 } else {
152 let local_var_entity: Option<GetAccountsLeaderboardError> =
153 serde_json::from_str(&local_var_content).ok();
154 let local_var_error = ResponseContent {
155 status: local_var_status,
156 content: local_var_content,
157 entity: local_var_entity,
158 };
159 Err(Error::ResponseError(local_var_error))
160 }
161}
162
163pub async fn get_characters_leaderboard(
165 configuration: &configuration::Configuration,
166 params: GetCharactersLeaderboardParams,
167) -> Result<models::DataPageCharacterLeaderboardSchema, Error<GetCharactersLeaderboardError>> {
168 let local_var_configuration = configuration;
169
170 let sort = params.sort;
172 let name = params.name;
174 let page = params.page;
176 let size = params.size;
178
179 let local_var_client = &local_var_configuration.client;
180
181 let local_var_uri_str = format!(
182 "{}/leaderboard/characters",
183 local_var_configuration.base_path
184 );
185 let mut local_var_req_builder =
186 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
187
188 if let Some(ref local_var_str) = sort {
189 local_var_req_builder =
190 local_var_req_builder.query(&[("sort", &local_var_str.to_string())]);
191 }
192 if let Some(ref local_var_str) = name {
193 local_var_req_builder =
194 local_var_req_builder.query(&[("name", &local_var_str.to_string())]);
195 }
196 if let Some(ref local_var_str) = page {
197 local_var_req_builder =
198 local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
199 }
200 if let Some(ref local_var_str) = size {
201 local_var_req_builder =
202 local_var_req_builder.query(&[("size", &local_var_str.to_string())]);
203 }
204 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
205 local_var_req_builder =
206 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
207 }
208
209 let local_var_req = local_var_req_builder.build()?;
210 let local_var_resp = local_var_client.execute(local_var_req).await?;
211
212 let local_var_status = local_var_resp.status();
213 let local_var_content = local_var_resp.text().await?;
214
215 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
216 serde_json::from_str(&local_var_content).map_err(Error::from)
217 } else {
218 let local_var_entity: Option<GetCharactersLeaderboardError> =
219 serde_json::from_str(&local_var_content).ok();
220 let local_var_error = ResponseContent {
221 status: local_var_status,
222 content: local_var_content,
223 entity: local_var_entity,
224 };
225 Err(Error::ResponseError(local_var_error))
226 }
227}