tba_openapi_rust/apis/
district_api.rs

1/*
2 * The Blue Alliance API v3
3 *
4 * # Overview    Information and statistics about FIRST Robotics Competition teams and events.   # Authentication   All endpoints require an Auth Key to be passed in the header `X-TBA-Auth-Key`. If you do not have an auth key yet, you can obtain one from your [Account Page](/account).
5 *
6 * The version of the OpenAPI document: 3.8.2
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`get_district_events`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum GetDistrictEventsError {
22    Status401(),
23    UnknownValue(serde_json::Value),
24}
25
26/// struct for typed errors of method [`get_district_events_keys`]
27#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum GetDistrictEventsKeysError {
30    Status401(),
31    UnknownValue(serde_json::Value),
32}
33
34/// struct for typed errors of method [`get_district_events_simple`]
35#[derive(Debug, Clone, Serialize, Deserialize)]
36#[serde(untagged)]
37pub enum GetDistrictEventsSimpleError {
38    Status401(),
39    UnknownValue(serde_json::Value),
40}
41
42/// struct for typed errors of method [`get_district_rankings`]
43#[derive(Debug, Clone, Serialize, Deserialize)]
44#[serde(untagged)]
45pub enum GetDistrictRankingsError {
46    Status401(),
47    UnknownValue(serde_json::Value),
48}
49
50/// struct for typed errors of method [`get_district_teams`]
51#[derive(Debug, Clone, Serialize, Deserialize)]
52#[serde(untagged)]
53pub enum GetDistrictTeamsError {
54    Status401(),
55    UnknownValue(serde_json::Value),
56}
57
58/// struct for typed errors of method [`get_district_teams_keys`]
59#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum GetDistrictTeamsKeysError {
62    Status401(),
63    UnknownValue(serde_json::Value),
64}
65
66/// struct for typed errors of method [`get_district_teams_simple`]
67#[derive(Debug, Clone, Serialize, Deserialize)]
68#[serde(untagged)]
69pub enum GetDistrictTeamsSimpleError {
70    Status401(),
71    UnknownValue(serde_json::Value),
72}
73
74/// struct for typed errors of method [`get_districts_by_year`]
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum GetDistrictsByYearError {
78    Status401(),
79    UnknownValue(serde_json::Value),
80}
81
82/// struct for typed errors of method [`get_event_district_points`]
83#[derive(Debug, Clone, Serialize, Deserialize)]
84#[serde(untagged)]
85pub enum GetEventDistrictPointsError {
86    Status401(),
87    UnknownValue(serde_json::Value),
88}
89
90/// struct for typed errors of method [`get_team_districts`]
91#[derive(Debug, Clone, Serialize, Deserialize)]
92#[serde(untagged)]
93pub enum GetTeamDistrictsError {
94    Status401(),
95    UnknownValue(serde_json::Value),
96}
97
98
99/// Gets a list of events in the given district.
100pub async fn get_district_events(configuration: &configuration::Configuration, district_key: &str, if_none_match: Option<&str>) -> Result<Vec<crate::models::Event>, Error<GetDistrictEventsError>> {
101    let local_var_configuration = configuration;
102
103    let local_var_client = &local_var_configuration.client;
104
105    let local_var_uri_str = format!("{}/district/{district_key}/events", local_var_configuration.base_path, district_key=crate::apis::urlencode(district_key));
106    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
107
108    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
109        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
110    }
111    if let Some(local_var_param_value) = if_none_match {
112        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
113    }
114    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
115        let local_var_key = local_var_apikey.key.clone();
116        let local_var_value = match local_var_apikey.prefix {
117            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
118            None => local_var_key,
119        };
120        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
121    };
122
123    let local_var_req = local_var_req_builder.build()?;
124    let local_var_resp = local_var_client.execute(local_var_req).await?;
125
126    let local_var_status = local_var_resp.status();
127    let local_var_content = local_var_resp.text().await?;
128
129    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
130        serde_json::from_str(&local_var_content).map_err(Error::from)
131    } else {
132        let local_var_entity: Option<GetDistrictEventsError> = serde_json::from_str(&local_var_content).ok();
133        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
134        Err(Error::ResponseError(local_var_error))
135    }
136}
137
138/// Gets a list of event keys for events in the given district.
139pub async fn get_district_events_keys(configuration: &configuration::Configuration, district_key: &str, if_none_match: Option<&str>) -> Result<Vec<String>, Error<GetDistrictEventsKeysError>> {
140    let local_var_configuration = configuration;
141
142    let local_var_client = &local_var_configuration.client;
143
144    let local_var_uri_str = format!("{}/district/{district_key}/events/keys", local_var_configuration.base_path, district_key=crate::apis::urlencode(district_key));
145    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
146
147    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
148        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
149    }
150    if let Some(local_var_param_value) = if_none_match {
151        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
152    }
153    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
154        let local_var_key = local_var_apikey.key.clone();
155        let local_var_value = match local_var_apikey.prefix {
156            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
157            None => local_var_key,
158        };
159        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
160    };
161
162    let local_var_req = local_var_req_builder.build()?;
163    let local_var_resp = local_var_client.execute(local_var_req).await?;
164
165    let local_var_status = local_var_resp.status();
166    let local_var_content = local_var_resp.text().await?;
167
168    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
169        serde_json::from_str(&local_var_content).map_err(Error::from)
170    } else {
171        let local_var_entity: Option<GetDistrictEventsKeysError> = serde_json::from_str(&local_var_content).ok();
172        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
173        Err(Error::ResponseError(local_var_error))
174    }
175}
176
177/// Gets a short-form list of events in the given district.
178pub async fn get_district_events_simple(configuration: &configuration::Configuration, district_key: &str, if_none_match: Option<&str>) -> Result<Vec<crate::models::EventSimple>, Error<GetDistrictEventsSimpleError>> {
179    let local_var_configuration = configuration;
180
181    let local_var_client = &local_var_configuration.client;
182
183    let local_var_uri_str = format!("{}/district/{district_key}/events/simple", local_var_configuration.base_path, district_key=crate::apis::urlencode(district_key));
184    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
185
186    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
187        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
188    }
189    if let Some(local_var_param_value) = if_none_match {
190        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
191    }
192    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
193        let local_var_key = local_var_apikey.key.clone();
194        let local_var_value = match local_var_apikey.prefix {
195            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
196            None => local_var_key,
197        };
198        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
199    };
200
201    let local_var_req = local_var_req_builder.build()?;
202    let local_var_resp = local_var_client.execute(local_var_req).await?;
203
204    let local_var_status = local_var_resp.status();
205    let local_var_content = local_var_resp.text().await?;
206
207    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
208        serde_json::from_str(&local_var_content).map_err(Error::from)
209    } else {
210        let local_var_entity: Option<GetDistrictEventsSimpleError> = serde_json::from_str(&local_var_content).ok();
211        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
212        Err(Error::ResponseError(local_var_error))
213    }
214}
215
216/// Gets a list of team district rankings for the given district.
217pub async fn get_district_rankings(configuration: &configuration::Configuration, district_key: &str, if_none_match: Option<&str>) -> Result<Vec<crate::models::DistrictRanking>, Error<GetDistrictRankingsError>> {
218    let local_var_configuration = configuration;
219
220    let local_var_client = &local_var_configuration.client;
221
222    let local_var_uri_str = format!("{}/district/{district_key}/rankings", local_var_configuration.base_path, district_key=crate::apis::urlencode(district_key));
223    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
224
225    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
226        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
227    }
228    if let Some(local_var_param_value) = if_none_match {
229        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
230    }
231    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
232        let local_var_key = local_var_apikey.key.clone();
233        let local_var_value = match local_var_apikey.prefix {
234            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
235            None => local_var_key,
236        };
237        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
238    };
239
240    let local_var_req = local_var_req_builder.build()?;
241    let local_var_resp = local_var_client.execute(local_var_req).await?;
242
243    let local_var_status = local_var_resp.status();
244    let local_var_content = local_var_resp.text().await?;
245
246    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
247        serde_json::from_str(&local_var_content).map_err(Error::from)
248    } else {
249        let local_var_entity: Option<GetDistrictRankingsError> = serde_json::from_str(&local_var_content).ok();
250        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
251        Err(Error::ResponseError(local_var_error))
252    }
253}
254
255/// Gets a list of `Team` objects that competed in events in the given district.
256pub async fn get_district_teams(configuration: &configuration::Configuration, district_key: &str, if_none_match: Option<&str>) -> Result<Vec<crate::models::Team>, Error<GetDistrictTeamsError>> {
257    let local_var_configuration = configuration;
258
259    let local_var_client = &local_var_configuration.client;
260
261    let local_var_uri_str = format!("{}/district/{district_key}/teams", local_var_configuration.base_path, district_key=crate::apis::urlencode(district_key));
262    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
263
264    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
265        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
266    }
267    if let Some(local_var_param_value) = if_none_match {
268        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
269    }
270    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
271        let local_var_key = local_var_apikey.key.clone();
272        let local_var_value = match local_var_apikey.prefix {
273            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
274            None => local_var_key,
275        };
276        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
277    };
278
279    let local_var_req = local_var_req_builder.build()?;
280    let local_var_resp = local_var_client.execute(local_var_req).await?;
281
282    let local_var_status = local_var_resp.status();
283    let local_var_content = local_var_resp.text().await?;
284
285    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
286        serde_json::from_str(&local_var_content).map_err(Error::from)
287    } else {
288        let local_var_entity: Option<GetDistrictTeamsError> = serde_json::from_str(&local_var_content).ok();
289        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
290        Err(Error::ResponseError(local_var_error))
291    }
292}
293
294/// Gets a list of `Team` objects that competed in events in the given district.
295pub async fn get_district_teams_keys(configuration: &configuration::Configuration, district_key: &str, if_none_match: Option<&str>) -> Result<Vec<String>, Error<GetDistrictTeamsKeysError>> {
296    let local_var_configuration = configuration;
297
298    let local_var_client = &local_var_configuration.client;
299
300    let local_var_uri_str = format!("{}/district/{district_key}/teams/keys", local_var_configuration.base_path, district_key=crate::apis::urlencode(district_key));
301    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
302
303    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
304        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
305    }
306    if let Some(local_var_param_value) = if_none_match {
307        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
308    }
309    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
310        let local_var_key = local_var_apikey.key.clone();
311        let local_var_value = match local_var_apikey.prefix {
312            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
313            None => local_var_key,
314        };
315        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
316    };
317
318    let local_var_req = local_var_req_builder.build()?;
319    let local_var_resp = local_var_client.execute(local_var_req).await?;
320
321    let local_var_status = local_var_resp.status();
322    let local_var_content = local_var_resp.text().await?;
323
324    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
325        serde_json::from_str(&local_var_content).map_err(Error::from)
326    } else {
327        let local_var_entity: Option<GetDistrictTeamsKeysError> = serde_json::from_str(&local_var_content).ok();
328        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
329        Err(Error::ResponseError(local_var_error))
330    }
331}
332
333/// Gets a short-form list of `Team` objects that competed in events in the given district.
334pub async fn get_district_teams_simple(configuration: &configuration::Configuration, district_key: &str, if_none_match: Option<&str>) -> Result<Vec<crate::models::TeamSimple>, Error<GetDistrictTeamsSimpleError>> {
335    let local_var_configuration = configuration;
336
337    let local_var_client = &local_var_configuration.client;
338
339    let local_var_uri_str = format!("{}/district/{district_key}/teams/simple", local_var_configuration.base_path, district_key=crate::apis::urlencode(district_key));
340    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
341
342    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
343        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
344    }
345    if let Some(local_var_param_value) = if_none_match {
346        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
347    }
348    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
349        let local_var_key = local_var_apikey.key.clone();
350        let local_var_value = match local_var_apikey.prefix {
351            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
352            None => local_var_key,
353        };
354        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
355    };
356
357    let local_var_req = local_var_req_builder.build()?;
358    let local_var_resp = local_var_client.execute(local_var_req).await?;
359
360    let local_var_status = local_var_resp.status();
361    let local_var_content = local_var_resp.text().await?;
362
363    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
364        serde_json::from_str(&local_var_content).map_err(Error::from)
365    } else {
366        let local_var_entity: Option<GetDistrictTeamsSimpleError> = serde_json::from_str(&local_var_content).ok();
367        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
368        Err(Error::ResponseError(local_var_error))
369    }
370}
371
372/// Gets a list of districts and their corresponding district key, for the given year.
373pub async fn get_districts_by_year(configuration: &configuration::Configuration, year: i32, if_none_match: Option<&str>) -> Result<Vec<crate::models::DistrictList>, Error<GetDistrictsByYearError>> {
374    let local_var_configuration = configuration;
375
376    let local_var_client = &local_var_configuration.client;
377
378    let local_var_uri_str = format!("{}/districts/{year}", local_var_configuration.base_path, year=year);
379    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
380
381    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
382        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
383    }
384    if let Some(local_var_param_value) = if_none_match {
385        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
386    }
387    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
388        let local_var_key = local_var_apikey.key.clone();
389        let local_var_value = match local_var_apikey.prefix {
390            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
391            None => local_var_key,
392        };
393        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
394    };
395
396    let local_var_req = local_var_req_builder.build()?;
397    let local_var_resp = local_var_client.execute(local_var_req).await?;
398
399    let local_var_status = local_var_resp.status();
400    let local_var_content = local_var_resp.text().await?;
401
402    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
403        serde_json::from_str(&local_var_content).map_err(Error::from)
404    } else {
405        let local_var_entity: Option<GetDistrictsByYearError> = serde_json::from_str(&local_var_content).ok();
406        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
407        Err(Error::ResponseError(local_var_error))
408    }
409}
410
411/// Gets a list of team rankings for the Event.
412pub async fn get_event_district_points(configuration: &configuration::Configuration, event_key: &str, if_none_match: Option<&str>) -> Result<crate::models::EventDistrictPoints, Error<GetEventDistrictPointsError>> {
413    let local_var_configuration = configuration;
414
415    let local_var_client = &local_var_configuration.client;
416
417    let local_var_uri_str = format!("{}/event/{event_key}/district_points", local_var_configuration.base_path, event_key=crate::apis::urlencode(event_key));
418    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
419
420    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
421        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
422    }
423    if let Some(local_var_param_value) = if_none_match {
424        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
425    }
426    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
427        let local_var_key = local_var_apikey.key.clone();
428        let local_var_value = match local_var_apikey.prefix {
429            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
430            None => local_var_key,
431        };
432        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
433    };
434
435    let local_var_req = local_var_req_builder.build()?;
436    let local_var_resp = local_var_client.execute(local_var_req).await?;
437
438    let local_var_status = local_var_resp.status();
439    let local_var_content = local_var_resp.text().await?;
440
441    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
442        serde_json::from_str(&local_var_content).map_err(Error::from)
443    } else {
444        let local_var_entity: Option<GetEventDistrictPointsError> = serde_json::from_str(&local_var_content).ok();
445        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
446        Err(Error::ResponseError(local_var_error))
447    }
448}
449
450/// Gets an array of districts representing each year the team was in a district. Will return an empty array if the team was never in a district.
451pub async fn get_team_districts(configuration: &configuration::Configuration, team_key: &str, if_none_match: Option<&str>) -> Result<Vec<crate::models::DistrictList>, Error<GetTeamDistrictsError>> {
452    let local_var_configuration = configuration;
453
454    let local_var_client = &local_var_configuration.client;
455
456    let local_var_uri_str = format!("{}/team/{team_key}/districts", local_var_configuration.base_path, team_key=crate::apis::urlencode(team_key));
457    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
458
459    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
460        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
461    }
462    if let Some(local_var_param_value) = if_none_match {
463        local_var_req_builder = local_var_req_builder.header("If-None-Match", local_var_param_value.to_string());
464    }
465    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
466        let local_var_key = local_var_apikey.key.clone();
467        let local_var_value = match local_var_apikey.prefix {
468            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
469            None => local_var_key,
470        };
471        local_var_req_builder = local_var_req_builder.header("X-TBA-Auth-Key", local_var_value);
472    };
473
474    let local_var_req = local_var_req_builder.build()?;
475    let local_var_resp = local_var_client.execute(local_var_req).await?;
476
477    let local_var_status = local_var_resp.status();
478    let local_var_content = local_var_resp.text().await?;
479
480    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
481        serde_json::from_str(&local_var_content).map_err(Error::from)
482    } else {
483        let local_var_entity: Option<GetTeamDistrictsError> = serde_json::from_str(&local_var_content).ok();
484        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
485        Err(Error::ResponseError(local_var_error))
486    }
487}
488