chesscom_openapi/apis/
default_api.rs1use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
105#[serde(untagged)]
106pub enum ApiError {
107 Status404(crate::models::Error),
108 Status429(crate::models::Error),
109 UnknownValue(serde_json::Value),
110}
111
112pub async fn get_chess_games_archives(configuration: &configuration::Configuration, username: &str) -> Result<crate::models::InlineResponse2003, Error<ApiError>> {
114
115 let local_var_client = &configuration.client;
116
117 let local_var_uri_str = format!("{}/pub/player/{username}/games/archives", configuration.base_path, username=crate::apis::urlencode(username));
118 let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
119
120 if let Some(ref local_var_user_agent) = configuration.user_agent {
121 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
122 }
123
124 let local_var_req = local_var_req_builder.build()?;
125 let local_var_resp = local_var_client.execute(local_var_req).await?;
126
127 let local_var_status = local_var_resp.status();
128 let local_var_content = local_var_resp.text().await?;
129
130 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
131 serde_json::from_str(&local_var_content).map_err(Error::from)
132 } else {
133 let local_var_entity: Option<ApiError> = serde_json::from_str(&local_var_content).ok();
134 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
135 Err(Error::ResponseError(local_var_error))
136 }
137}
138
139pub async fn get_chess_games_for_month(configuration: &configuration::Configuration, username: &str, year: &str, month: &str) -> Result<crate::models::InlineResponse2004, Error<ApiError>> {
141
142 let local_var_client = &configuration.client;
143
144 let local_var_uri_str = format!("{}/pub/player/{username}/games/{year}/{month}", configuration.base_path, username=crate::apis::urlencode(username), year=crate::apis::urlencode(year), month=crate::apis::urlencode(month));
145 let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
146
147 if let Some(ref local_var_user_agent) = configuration.user_agent {
148 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
149 }
150
151 let local_var_req = local_var_req_builder.build()?;
152 let local_var_resp = local_var_client.execute(local_var_req).await?;
153
154 let local_var_status = local_var_resp.status();
155 let local_var_content = local_var_resp.text().await?;
156
157 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
158 serde_json::from_str(&local_var_content).map_err(Error::from)
159 } else {
160 let local_var_entity: Option<ApiError> = serde_json::from_str(&local_var_content).ok();
161 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
162 Err(Error::ResponseError(local_var_error))
163 }
164}
165
166pub async fn get_chess_games_for_month_pgn(configuration: &configuration::Configuration, username: &str, year: &str, month: &str) -> Result<String, Error<ApiError>> {
168
169 let local_var_client = &configuration.client;
170
171 let local_var_uri_str = format!("{}/pub/player/{username}/games/{year}/{month}/pgn", configuration.base_path, username=crate::apis::urlencode(username), year=crate::apis::urlencode(year), month=crate::apis::urlencode(month));
172 let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
173
174 if let Some(ref local_var_user_agent) = configuration.user_agent {
175 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
176 }
177
178 let local_var_req = local_var_req_builder.build()?;
179 let local_var_resp = local_var_client.execute(local_var_req).await?;
180
181 let local_var_status = local_var_resp.status();
182 let local_var_content = local_var_resp.text().await?;
183
184 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
185 serde_json::from_str(&local_var_content).map_err(Error::from)
186 } else {
187 let local_var_entity: Option<ApiError> = serde_json::from_str(&local_var_content).ok();
188 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
189 Err(Error::ResponseError(local_var_error))
190 }
191}
192
193pub async fn get_daily_chess_games(configuration: &configuration::Configuration, username: &str) -> Result<crate::models::InlineResponse2001, Error<ApiError>> {
195
196 let local_var_client = &configuration.client;
197
198 let local_var_uri_str = format!("{}/pub/player/{username}/games", configuration.base_path, username=crate::apis::urlencode(username));
199 let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
200
201 if let Some(ref local_var_user_agent) = configuration.user_agent {
202 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
203 }
204
205 let local_var_req = local_var_req_builder.build()?;
206 let local_var_resp = local_var_client.execute(local_var_req).await?;
207
208 let local_var_status = local_var_resp.status();
209 let local_var_content = local_var_resp.text().await?;
210
211 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
212 serde_json::from_str(&local_var_content).map_err(Error::from)
213 } else {
214 let local_var_entity: Option<ApiError> = serde_json::from_str(&local_var_content).ok();
215 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
216 Err(Error::ResponseError(local_var_error))
217 }
218}
219
220pub async fn get_daily_chess_games_to_move(configuration: &configuration::Configuration, username: &str) -> Result<crate::models::InlineResponse2002, Error<ApiError>> {
222
223 let local_var_client = &configuration.client;
224
225 let local_var_uri_str = format!("{}/pub/player/{username}/games/to-move", configuration.base_path, username=crate::apis::urlencode(username));
226 let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
227
228 if let Some(ref local_var_user_agent) = configuration.user_agent {
229 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
230 }
231
232 let local_var_req = local_var_req_builder.build()?;
233 let local_var_resp = local_var_client.execute(local_var_req).await?;
234
235 let local_var_status = local_var_resp.status();
236 let local_var_content = local_var_resp.text().await?;
237
238 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
239 serde_json::from_str(&local_var_content).map_err(Error::from)
240 } else {
241 let local_var_entity: Option<ApiError> = serde_json::from_str(&local_var_content).ok();
242 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
243 Err(Error::ResponseError(local_var_error))
244 }
245}
246
247pub async fn get_player_online_status(configuration: &configuration::Configuration, username: &str) -> Result<crate::models::InlineResponse200, Error<ApiError>> {
249
250 let local_var_client = &configuration.client;
251
252 let local_var_uri_str = format!("{}/pub/player/{username}/is-online", configuration.base_path, username=crate::apis::urlencode(username));
253 let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
254
255 if let Some(ref local_var_user_agent) = configuration.user_agent {
256 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
257 }
258
259 let local_var_req = local_var_req_builder.build()?;
260 let local_var_resp = local_var_client.execute(local_var_req).await?;
261
262 let local_var_status = local_var_resp.status();
263 let local_var_content = local_var_resp.text().await?;
264
265 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
266 serde_json::from_str(&local_var_content).map_err(Error::from)
267 } else {
268 let local_var_entity: Option<ApiError> = serde_json::from_str(&local_var_content).ok();
269 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
270 Err(Error::ResponseError(local_var_error))
271 }
272}
273
274pub async fn get_player_profile(configuration: &configuration::Configuration, username: &str) -> Result<crate::models::Profile, Error<ApiError>> {
276
277 let local_var_client = &configuration.client;
278
279 let local_var_uri_str = format!("{}/pub/player/{username}", configuration.base_path, username=crate::apis::urlencode(username));
280 let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
281
282 if let Some(ref local_var_user_agent) = configuration.user_agent {
283 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
284 }
285
286 let local_var_req = local_var_req_builder.build()?;
287 let local_var_resp = local_var_client.execute(local_var_req).await?;
288
289 let local_var_status = local_var_resp.status();
290 let local_var_content = local_var_resp.text().await?;
291
292 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
293 serde_json::from_str(&local_var_content).map_err(Error::from)
294 } else {
295 let local_var_entity: Option<ApiError> = serde_json::from_str(&local_var_content).ok();
296 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
297 Err(Error::ResponseError(local_var_error))
298 }
299}
300
301pub async fn get_player_stats(configuration: &configuration::Configuration, username: &str) -> Result<crate::models::PlayerStats, Error<ApiError>> {
303
304 let local_var_client = &configuration.client;
305
306 let local_var_uri_str = format!("{}/pub/player/{username}/stats", configuration.base_path, username=crate::apis::urlencode(username));
307 let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
308
309 if let Some(ref local_var_user_agent) = configuration.user_agent {
310 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
311 }
312
313 let local_var_req = local_var_req_builder.build()?;
314 let local_var_resp = local_var_client.execute(local_var_req).await?;
315
316 let local_var_status = local_var_resp.status();
317 let local_var_content = local_var_resp.text().await?;
318
319 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
320 serde_json::from_str(&local_var_content).map_err(Error::from)
321 } else {
322 let local_var_entity: Option<ApiError> = serde_json::from_str(&local_var_content).ok();
323 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
324 Err(Error::ResponseError(local_var_error))
325 }
326}
327
328pub async fn get_titled_players(configuration: &configuration::Configuration, title: crate::models::Title) -> Result<Vec<String>, Error<ApiError>> {
330
331 let local_var_client = &configuration.client;
332
333 let local_var_uri_str = format!("{}/pub/titled/{title}", configuration.base_path, title=title);
334 let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
335
336 if let Some(ref local_var_user_agent) = configuration.user_agent {
337 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
338 }
339
340 let local_var_req = local_var_req_builder.build()?;
341 let local_var_resp = local_var_client.execute(local_var_req).await?;
342
343 let local_var_status = local_var_resp.status();
344 let local_var_content = local_var_resp.text().await?;
345
346 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
347 serde_json::from_str(&local_var_content).map_err(Error::from)
348 } else {
349 let local_var_entity: Option<ApiError> = serde_json::from_str(&local_var_content).ok();
350 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
351 Err(Error::ResponseError(local_var_error))
352 }
353}
354