sonarr_api_rs/apis/
series_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_series_get`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum ApiV3SeriesGetError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`api_v3_series_id_delete`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum ApiV3SeriesIdDeleteError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`api_v3_series_id_get`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum ApiV3SeriesIdGetError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`api_v3_series_id_put`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum ApiV3SeriesIdPutError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`api_v3_series_post`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum ApiV3SeriesPostError {
50    UnknownValue(serde_json::Value),
51}
52
53
54pub async fn api_v3_series_get(configuration: &configuration::Configuration, tvdb_id: Option<i32>, include_season_images: Option<bool>) -> Result<Vec<models::SeriesResource>, Error<ApiV3SeriesGetError>> {
55    let local_var_configuration = configuration;
56
57    let local_var_client = &local_var_configuration.client;
58
59    let local_var_uri_str = format!("{}/api/v3/series", local_var_configuration.base_path);
60    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
61
62    if let Some(ref local_var_str) = tvdb_id {
63        local_var_req_builder = local_var_req_builder.query(&[("tvdbId", &local_var_str.to_string())]);
64    }
65    if let Some(ref local_var_str) = include_season_images {
66        local_var_req_builder = local_var_req_builder.query(&[("includeSeasonImages", &local_var_str.to_string())]);
67    }
68    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
69        let local_var_key = local_var_apikey.key.clone();
70        let local_var_value = match local_var_apikey.prefix {
71            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
72            None => local_var_key,
73        };
74        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
75    }
76    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
77        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
78    }
79    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
80        let local_var_key = local_var_apikey.key.clone();
81        let local_var_value = match local_var_apikey.prefix {
82            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
83            None => local_var_key,
84        };
85        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
86    };
87
88    let local_var_req = local_var_req_builder.build()?;
89    let local_var_resp = local_var_client.execute(local_var_req).await?;
90
91    let local_var_status = local_var_resp.status();
92    let local_var_content = local_var_resp.text().await?;
93
94    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
95        serde_json::from_str(&local_var_content).map_err(Error::from)
96    } else {
97        let local_var_entity: Option<ApiV3SeriesGetError> = serde_json::from_str(&local_var_content).ok();
98        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
99        Err(Error::ResponseError(local_var_error))
100    }
101}
102
103pub async fn api_v3_series_id_delete(configuration: &configuration::Configuration, id: i32, delete_files: Option<bool>, add_import_list_exclusion: Option<bool>) -> Result<(), Error<ApiV3SeriesIdDeleteError>> {
104    let local_var_configuration = configuration;
105
106    let local_var_client = &local_var_configuration.client;
107
108    let local_var_uri_str = format!("{}/api/v3/series/{id}", local_var_configuration.base_path, id=id);
109    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
110
111    if let Some(ref local_var_str) = delete_files {
112        local_var_req_builder = local_var_req_builder.query(&[("deleteFiles", &local_var_str.to_string())]);
113    }
114    if let Some(ref local_var_str) = add_import_list_exclusion {
115        local_var_req_builder = local_var_req_builder.query(&[("addImportListExclusion", &local_var_str.to_string())]);
116    }
117    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
118        let local_var_key = local_var_apikey.key.clone();
119        let local_var_value = match local_var_apikey.prefix {
120            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
121            None => local_var_key,
122        };
123        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
124    }
125    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
126        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
127    }
128    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
129        let local_var_key = local_var_apikey.key.clone();
130        let local_var_value = match local_var_apikey.prefix {
131            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
132            None => local_var_key,
133        };
134        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
135    };
136
137    let local_var_req = local_var_req_builder.build()?;
138    let local_var_resp = local_var_client.execute(local_var_req).await?;
139
140    let local_var_status = local_var_resp.status();
141    let local_var_content = local_var_resp.text().await?;
142
143    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
144        Ok(())
145    } else {
146        let local_var_entity: Option<ApiV3SeriesIdDeleteError> = serde_json::from_str(&local_var_content).ok();
147        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
148        Err(Error::ResponseError(local_var_error))
149    }
150}
151
152pub async fn api_v3_series_id_get(configuration: &configuration::Configuration, id: i32, include_season_images: Option<bool>) -> Result<models::SeriesResource, Error<ApiV3SeriesIdGetError>> {
153    let local_var_configuration = configuration;
154
155    let local_var_client = &local_var_configuration.client;
156
157    let local_var_uri_str = format!("{}/api/v3/series/{id}", local_var_configuration.base_path, id=id);
158    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
159
160    if let Some(ref local_var_str) = include_season_images {
161        local_var_req_builder = local_var_req_builder.query(&[("includeSeasonImages", &local_var_str.to_string())]);
162    }
163    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
164        let local_var_key = local_var_apikey.key.clone();
165        let local_var_value = match local_var_apikey.prefix {
166            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
167            None => local_var_key,
168        };
169        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
170    }
171    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
172        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
173    }
174    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
175        let local_var_key = local_var_apikey.key.clone();
176        let local_var_value = match local_var_apikey.prefix {
177            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
178            None => local_var_key,
179        };
180        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
181    };
182
183    let local_var_req = local_var_req_builder.build()?;
184    let local_var_resp = local_var_client.execute(local_var_req).await?;
185
186    let local_var_status = local_var_resp.status();
187    let local_var_content = local_var_resp.text().await?;
188
189    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
190        serde_json::from_str(&local_var_content).map_err(Error::from)
191    } else {
192        let local_var_entity: Option<ApiV3SeriesIdGetError> = serde_json::from_str(&local_var_content).ok();
193        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
194        Err(Error::ResponseError(local_var_error))
195    }
196}
197
198pub async fn api_v3_series_id_put(configuration: &configuration::Configuration, id: &str, move_files: Option<bool>, series_resource: Option<models::SeriesResource>) -> Result<models::SeriesResource, Error<ApiV3SeriesIdPutError>> {
199    let local_var_configuration = configuration;
200
201    let local_var_client = &local_var_configuration.client;
202
203    let local_var_uri_str = format!("{}/api/v3/series/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
204    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
205
206    if let Some(ref local_var_str) = move_files {
207        local_var_req_builder = local_var_req_builder.query(&[("moveFiles", &local_var_str.to_string())]);
208    }
209    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
210        let local_var_key = local_var_apikey.key.clone();
211        let local_var_value = match local_var_apikey.prefix {
212            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
213            None => local_var_key,
214        };
215        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
216    }
217    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
218        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
219    }
220    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
221        let local_var_key = local_var_apikey.key.clone();
222        let local_var_value = match local_var_apikey.prefix {
223            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
224            None => local_var_key,
225        };
226        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
227    };
228    local_var_req_builder = local_var_req_builder.json(&series_resource);
229
230    let local_var_req = local_var_req_builder.build()?;
231    let local_var_resp = local_var_client.execute(local_var_req).await?;
232
233    let local_var_status = local_var_resp.status();
234    let local_var_content = local_var_resp.text().await?;
235
236    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
237        serde_json::from_str(&local_var_content).map_err(Error::from)
238    } else {
239        let local_var_entity: Option<ApiV3SeriesIdPutError> = serde_json::from_str(&local_var_content).ok();
240        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
241        Err(Error::ResponseError(local_var_error))
242    }
243}
244
245pub async fn api_v3_series_post(configuration: &configuration::Configuration, series_resource: Option<models::SeriesResource>) -> Result<models::SeriesResource, Error<ApiV3SeriesPostError>> {
246    let local_var_configuration = configuration;
247
248    let local_var_client = &local_var_configuration.client;
249
250    let local_var_uri_str = format!("{}/api/v3/series", local_var_configuration.base_path);
251    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
252
253    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
254        let local_var_key = local_var_apikey.key.clone();
255        let local_var_value = match local_var_apikey.prefix {
256            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
257            None => local_var_key,
258        };
259        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
260    }
261    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
262        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
263    }
264    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
265        let local_var_key = local_var_apikey.key.clone();
266        let local_var_value = match local_var_apikey.prefix {
267            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
268            None => local_var_key,
269        };
270        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
271    };
272    local_var_req_builder = local_var_req_builder.json(&series_resource);
273
274    let local_var_req = local_var_req_builder.build()?;
275    let local_var_resp = local_var_client.execute(local_var_req).await?;
276
277    let local_var_status = local_var_resp.status();
278    let local_var_content = local_var_resp.text().await?;
279
280    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
281        serde_json::from_str(&local_var_content).map_err(Error::from)
282    } else {
283        let local_var_entity: Option<ApiV3SeriesPostError> = serde_json::from_str(&local_var_content).ok();
284        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
285        Err(Error::ResponseError(local_var_error))
286    }
287}
288