sonarr_api_rs/apis/
history_api.rs

1/*
2 * Sonarr
3 *
4 * Sonarr API docs - The v3 API docs apply to both v3 and v4 versions of Sonarr. Some functionality may only be available in v4 of the Sonarr application.
5 *
6 * The version of the OpenAPI document: 3.0.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`api_v3_history_failed_id_post`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum ApiV3HistoryFailedIdPostError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`api_v3_history_get`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum ApiV3HistoryGetError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`api_v3_history_series_get`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum ApiV3HistorySeriesGetError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`api_v3_history_since_get`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum ApiV3HistorySinceGetError {
43    UnknownValue(serde_json::Value),
44}
45
46
47pub async fn api_v3_history_failed_id_post(configuration: &configuration::Configuration, id: i32) -> Result<(), Error<ApiV3HistoryFailedIdPostError>> {
48    let local_var_configuration = configuration;
49
50    let local_var_client = &local_var_configuration.client;
51
52    let local_var_uri_str = format!("{}/api/v3/history/failed/{id}", local_var_configuration.base_path, id=id);
53    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
54
55    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
56        let local_var_key = local_var_apikey.key.clone();
57        let local_var_value = match local_var_apikey.prefix {
58            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
59            None => local_var_key,
60        };
61        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
62    }
63    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
64        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
65    }
66    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
67        let local_var_key = local_var_apikey.key.clone();
68        let local_var_value = match local_var_apikey.prefix {
69            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
70            None => local_var_key,
71        };
72        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
73    };
74
75    let local_var_req = local_var_req_builder.build()?;
76    let local_var_resp = local_var_client.execute(local_var_req).await?;
77
78    let local_var_status = local_var_resp.status();
79    let local_var_content = local_var_resp.text().await?;
80
81    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
82        Ok(())
83    } else {
84        let local_var_entity: Option<ApiV3HistoryFailedIdPostError> = serde_json::from_str(&local_var_content).ok();
85        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
86        Err(Error::ResponseError(local_var_error))
87    }
88}
89
90pub async fn api_v3_history_get(configuration: &configuration::Configuration, page: Option<i32>, page_size: Option<i32>, sort_key: Option<&str>, sort_direction: Option<models::SortDirection>, include_series: Option<bool>, include_episode: Option<bool>, event_type: Option<Vec<i32>>, episode_id: Option<i32>, download_id: Option<&str>, series_ids: Option<Vec<i32>>, languages: Option<Vec<i32>>, quality: Option<Vec<i32>>) -> Result<models::HistoryResourcePagingResource, Error<ApiV3HistoryGetError>> {
91    let local_var_configuration = configuration;
92
93    let local_var_client = &local_var_configuration.client;
94
95    let local_var_uri_str = format!("{}/api/v3/history", local_var_configuration.base_path);
96    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
97
98    if let Some(ref local_var_str) = page {
99        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
100    }
101    if let Some(ref local_var_str) = page_size {
102        local_var_req_builder = local_var_req_builder.query(&[("pageSize", &local_var_str.to_string())]);
103    }
104    if let Some(ref local_var_str) = sort_key {
105        local_var_req_builder = local_var_req_builder.query(&[("sortKey", &local_var_str.to_string())]);
106    }
107    if let Some(ref local_var_str) = sort_direction {
108        local_var_req_builder = local_var_req_builder.query(&[("sortDirection", &local_var_str.to_string())]);
109    }
110    if let Some(ref local_var_str) = include_series {
111        local_var_req_builder = local_var_req_builder.query(&[("includeSeries", &local_var_str.to_string())]);
112    }
113    if let Some(ref local_var_str) = include_episode {
114        local_var_req_builder = local_var_req_builder.query(&[("includeEpisode", &local_var_str.to_string())]);
115    }
116    if let Some(ref local_var_str) = event_type {
117        local_var_req_builder = match "multi" {
118            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("eventType".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
119            _ => local_var_req_builder.query(&[("eventType", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
120        };
121    }
122    if let Some(ref local_var_str) = episode_id {
123        local_var_req_builder = local_var_req_builder.query(&[("episodeId", &local_var_str.to_string())]);
124    }
125    if let Some(ref local_var_str) = download_id {
126        local_var_req_builder = local_var_req_builder.query(&[("downloadId", &local_var_str.to_string())]);
127    }
128    if let Some(ref local_var_str) = series_ids {
129        local_var_req_builder = match "multi" {
130            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("seriesIds".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
131            _ => local_var_req_builder.query(&[("seriesIds", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
132        };
133    }
134    if let Some(ref local_var_str) = languages {
135        local_var_req_builder = match "multi" {
136            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("languages".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
137            _ => local_var_req_builder.query(&[("languages", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
138        };
139    }
140    if let Some(ref local_var_str) = quality {
141        local_var_req_builder = match "multi" {
142            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("quality".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
143            _ => local_var_req_builder.query(&[("quality", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
144        };
145    }
146    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
147        let local_var_key = local_var_apikey.key.clone();
148        let local_var_value = match local_var_apikey.prefix {
149            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
150            None => local_var_key,
151        };
152        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
153    }
154    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
155        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
156    }
157    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
158        let local_var_key = local_var_apikey.key.clone();
159        let local_var_value = match local_var_apikey.prefix {
160            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
161            None => local_var_key,
162        };
163        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
164    };
165
166    let local_var_req = local_var_req_builder.build()?;
167    let local_var_resp = local_var_client.execute(local_var_req).await?;
168
169    let local_var_status = local_var_resp.status();
170    let local_var_content = local_var_resp.text().await?;
171
172    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
173        serde_json::from_str(&local_var_content).map_err(Error::from)
174    } else {
175        let local_var_entity: Option<ApiV3HistoryGetError> = serde_json::from_str(&local_var_content).ok();
176        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
177        Err(Error::ResponseError(local_var_error))
178    }
179}
180
181pub async fn api_v3_history_series_get(configuration: &configuration::Configuration, series_id: Option<i32>, season_number: Option<i32>, event_type: Option<models::EpisodeHistoryEventType>, include_series: Option<bool>, include_episode: Option<bool>) -> Result<Vec<models::HistoryResource>, Error<ApiV3HistorySeriesGetError>> {
182    let local_var_configuration = configuration;
183
184    let local_var_client = &local_var_configuration.client;
185
186    let local_var_uri_str = format!("{}/api/v3/history/series", local_var_configuration.base_path);
187    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
188
189    if let Some(ref local_var_str) = series_id {
190        local_var_req_builder = local_var_req_builder.query(&[("seriesId", &local_var_str.to_string())]);
191    }
192    if let Some(ref local_var_str) = season_number {
193        local_var_req_builder = local_var_req_builder.query(&[("seasonNumber", &local_var_str.to_string())]);
194    }
195    if let Some(ref local_var_str) = event_type {
196        local_var_req_builder = local_var_req_builder.query(&[("eventType", &local_var_str.to_string())]);
197    }
198    if let Some(ref local_var_str) = include_series {
199        local_var_req_builder = local_var_req_builder.query(&[("includeSeries", &local_var_str.to_string())]);
200    }
201    if let Some(ref local_var_str) = include_episode {
202        local_var_req_builder = local_var_req_builder.query(&[("includeEpisode", &local_var_str.to_string())]);
203    }
204    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
205        let local_var_key = local_var_apikey.key.clone();
206        let local_var_value = match local_var_apikey.prefix {
207            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
208            None => local_var_key,
209        };
210        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
211    }
212    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
213        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
214    }
215    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
216        let local_var_key = local_var_apikey.key.clone();
217        let local_var_value = match local_var_apikey.prefix {
218            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
219            None => local_var_key,
220        };
221        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
222    };
223
224    let local_var_req = local_var_req_builder.build()?;
225    let local_var_resp = local_var_client.execute(local_var_req).await?;
226
227    let local_var_status = local_var_resp.status();
228    let local_var_content = local_var_resp.text().await?;
229
230    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
231        serde_json::from_str(&local_var_content).map_err(Error::from)
232    } else {
233        let local_var_entity: Option<ApiV3HistorySeriesGetError> = serde_json::from_str(&local_var_content).ok();
234        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
235        Err(Error::ResponseError(local_var_error))
236    }
237}
238
239pub async fn api_v3_history_since_get(configuration: &configuration::Configuration, date: Option<String>, event_type: Option<models::EpisodeHistoryEventType>, include_series: Option<bool>, include_episode: Option<bool>) -> Result<Vec<models::HistoryResource>, Error<ApiV3HistorySinceGetError>> {
240    let local_var_configuration = configuration;
241
242    let local_var_client = &local_var_configuration.client;
243
244    let local_var_uri_str = format!("{}/api/v3/history/since", local_var_configuration.base_path);
245    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
246
247    if let Some(ref local_var_str) = date {
248        local_var_req_builder = local_var_req_builder.query(&[("date", &local_var_str.to_string())]);
249    }
250    if let Some(ref local_var_str) = event_type {
251        local_var_req_builder = local_var_req_builder.query(&[("eventType", &local_var_str.to_string())]);
252    }
253    if let Some(ref local_var_str) = include_series {
254        local_var_req_builder = local_var_req_builder.query(&[("includeSeries", &local_var_str.to_string())]);
255    }
256    if let Some(ref local_var_str) = include_episode {
257        local_var_req_builder = local_var_req_builder.query(&[("includeEpisode", &local_var_str.to_string())]);
258    }
259    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
260        let local_var_key = local_var_apikey.key.clone();
261        let local_var_value = match local_var_apikey.prefix {
262            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
263            None => local_var_key,
264        };
265        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
266    }
267    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
268        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
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-Api-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<ApiV3HistorySinceGetError> = 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