sonarr_api_rs/apis/
episode_file_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_episodefile_bulk_delete`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum ApiV3EpisodefileBulkDeleteError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`api_v3_episodefile_bulk_put`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum ApiV3EpisodefileBulkPutError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`api_v3_episodefile_editor_put`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum ApiV3EpisodefileEditorPutError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`api_v3_episodefile_get`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum ApiV3EpisodefileGetError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`api_v3_episodefile_id_delete`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum ApiV3EpisodefileIdDeleteError {
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method [`api_v3_episodefile_id_get`]
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum ApiV3EpisodefileIdGetError {
57    UnknownValue(serde_json::Value),
58}
59
60/// struct for typed errors of method [`api_v3_episodefile_id_put`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum ApiV3EpisodefileIdPutError {
64    UnknownValue(serde_json::Value),
65}
66
67
68pub async fn api_v3_episodefile_bulk_delete(configuration: &configuration::Configuration, episode_file_list_resource: Option<models::EpisodeFileListResource>) -> Result<(), Error<ApiV3EpisodefileBulkDeleteError>> {
69    let local_var_configuration = configuration;
70
71    let local_var_client = &local_var_configuration.client;
72
73    let local_var_uri_str = format!("{}/api/v3/episodefile/bulk", local_var_configuration.base_path);
74    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
75
76    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
77        let local_var_key = local_var_apikey.key.clone();
78        let local_var_value = match local_var_apikey.prefix {
79            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
80            None => local_var_key,
81        };
82        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
83    }
84    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
85        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
86    }
87    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
88        let local_var_key = local_var_apikey.key.clone();
89        let local_var_value = match local_var_apikey.prefix {
90            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
91            None => local_var_key,
92        };
93        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
94    };
95    local_var_req_builder = local_var_req_builder.json(&episode_file_list_resource);
96
97    let local_var_req = local_var_req_builder.build()?;
98    let local_var_resp = local_var_client.execute(local_var_req).await?;
99
100    let local_var_status = local_var_resp.status();
101    let local_var_content = local_var_resp.text().await?;
102
103    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
104        Ok(())
105    } else {
106        let local_var_entity: Option<ApiV3EpisodefileBulkDeleteError> = serde_json::from_str(&local_var_content).ok();
107        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
108        Err(Error::ResponseError(local_var_error))
109    }
110}
111
112pub async fn api_v3_episodefile_bulk_put(configuration: &configuration::Configuration, episode_file_resource: Option<Vec<models::EpisodeFileResource>>) -> Result<(), Error<ApiV3EpisodefileBulkPutError>> {
113    let local_var_configuration = configuration;
114
115    let local_var_client = &local_var_configuration.client;
116
117    let local_var_uri_str = format!("{}/api/v3/episodefile/bulk", local_var_configuration.base_path);
118    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
119
120    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
121        let local_var_key = local_var_apikey.key.clone();
122        let local_var_value = match local_var_apikey.prefix {
123            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
124            None => local_var_key,
125        };
126        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
127    }
128    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
129        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
130    }
131    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
132        let local_var_key = local_var_apikey.key.clone();
133        let local_var_value = match local_var_apikey.prefix {
134            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
135            None => local_var_key,
136        };
137        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
138    };
139    local_var_req_builder = local_var_req_builder.json(&episode_file_resource);
140
141    let local_var_req = local_var_req_builder.build()?;
142    let local_var_resp = local_var_client.execute(local_var_req).await?;
143
144    let local_var_status = local_var_resp.status();
145    let local_var_content = local_var_resp.text().await?;
146
147    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
148        Ok(())
149    } else {
150        let local_var_entity: Option<ApiV3EpisodefileBulkPutError> = serde_json::from_str(&local_var_content).ok();
151        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
152        Err(Error::ResponseError(local_var_error))
153    }
154}
155
156pub async fn api_v3_episodefile_editor_put(configuration: &configuration::Configuration, episode_file_list_resource: Option<models::EpisodeFileListResource>) -> Result<(), Error<ApiV3EpisodefileEditorPutError>> {
157    let local_var_configuration = configuration;
158
159    let local_var_client = &local_var_configuration.client;
160
161    let local_var_uri_str = format!("{}/api/v3/episodefile/editor", local_var_configuration.base_path);
162    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
163
164    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
165        let local_var_key = local_var_apikey.key.clone();
166        let local_var_value = match local_var_apikey.prefix {
167            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
168            None => local_var_key,
169        };
170        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
171    }
172    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
173        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
174    }
175    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
176        let local_var_key = local_var_apikey.key.clone();
177        let local_var_value = match local_var_apikey.prefix {
178            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
179            None => local_var_key,
180        };
181        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
182    };
183    local_var_req_builder = local_var_req_builder.json(&episode_file_list_resource);
184
185    let local_var_req = local_var_req_builder.build()?;
186    let local_var_resp = local_var_client.execute(local_var_req).await?;
187
188    let local_var_status = local_var_resp.status();
189    let local_var_content = local_var_resp.text().await?;
190
191    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
192        Ok(())
193    } else {
194        let local_var_entity: Option<ApiV3EpisodefileEditorPutError> = serde_json::from_str(&local_var_content).ok();
195        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
196        Err(Error::ResponseError(local_var_error))
197    }
198}
199
200pub async fn api_v3_episodefile_get(configuration: &configuration::Configuration, series_id: Option<i32>, episode_file_ids: Option<Vec<i32>>) -> Result<Vec<models::EpisodeFileResource>, Error<ApiV3EpisodefileGetError>> {
201    let local_var_configuration = configuration;
202
203    let local_var_client = &local_var_configuration.client;
204
205    let local_var_uri_str = format!("{}/api/v3/episodefile", local_var_configuration.base_path);
206    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
207
208    if let Some(ref local_var_str) = series_id {
209        local_var_req_builder = local_var_req_builder.query(&[("seriesId", &local_var_str.to_string())]);
210    }
211    if let Some(ref local_var_str) = episode_file_ids {
212        local_var_req_builder = match "multi" {
213            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("episodeFileIds".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
214            _ => local_var_req_builder.query(&[("episodeFileIds", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
215        };
216    }
217    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
218        let local_var_key = local_var_apikey.key.clone();
219        let local_var_value = match local_var_apikey.prefix {
220            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
221            None => local_var_key,
222        };
223        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
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(ref local_var_apikey) = local_var_configuration.api_key {
229        let local_var_key = local_var_apikey.key.clone();
230        let local_var_value = match local_var_apikey.prefix {
231            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
232            None => local_var_key,
233        };
234        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
235    };
236
237    let local_var_req = local_var_req_builder.build()?;
238    let local_var_resp = local_var_client.execute(local_var_req).await?;
239
240    let local_var_status = local_var_resp.status();
241    let local_var_content = local_var_resp.text().await?;
242
243    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
244        serde_json::from_str(&local_var_content).map_err(Error::from)
245    } else {
246        let local_var_entity: Option<ApiV3EpisodefileGetError> = serde_json::from_str(&local_var_content).ok();
247        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
248        Err(Error::ResponseError(local_var_error))
249    }
250}
251
252pub async fn api_v3_episodefile_id_delete(configuration: &configuration::Configuration, id: i32) -> Result<(), Error<ApiV3EpisodefileIdDeleteError>> {
253    let local_var_configuration = configuration;
254
255    let local_var_client = &local_var_configuration.client;
256
257    let local_var_uri_str = format!("{}/api/v3/episodefile/{id}", local_var_configuration.base_path, id=id);
258    let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
259
260    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
261        let local_var_key = local_var_apikey.key.clone();
262        let local_var_value = match local_var_apikey.prefix {
263            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
264            None => local_var_key,
265        };
266        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
267    }
268    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
269        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
270    }
271    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
272        let local_var_key = local_var_apikey.key.clone();
273        let local_var_value = match local_var_apikey.prefix {
274            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
275            None => local_var_key,
276        };
277        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
278    };
279
280    let local_var_req = local_var_req_builder.build()?;
281    let local_var_resp = local_var_client.execute(local_var_req).await?;
282
283    let local_var_status = local_var_resp.status();
284    let local_var_content = local_var_resp.text().await?;
285
286    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
287        Ok(())
288    } else {
289        let local_var_entity: Option<ApiV3EpisodefileIdDeleteError> = serde_json::from_str(&local_var_content).ok();
290        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
291        Err(Error::ResponseError(local_var_error))
292    }
293}
294
295pub async fn api_v3_episodefile_id_get(configuration: &configuration::Configuration, id: i32) -> Result<models::EpisodeFileResource, Error<ApiV3EpisodefileIdGetError>> {
296    let local_var_configuration = configuration;
297
298    let local_var_client = &local_var_configuration.client;
299
300    let local_var_uri_str = format!("{}/api/v3/episodefile/{id}", local_var_configuration.base_path, id=id);
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_apikey) = local_var_configuration.api_key {
304        let local_var_key = local_var_apikey.key.clone();
305        let local_var_value = match local_var_apikey.prefix {
306            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
307            None => local_var_key,
308        };
309        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
310    }
311    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
312        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
313    }
314    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
315        let local_var_key = local_var_apikey.key.clone();
316        let local_var_value = match local_var_apikey.prefix {
317            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
318            None => local_var_key,
319        };
320        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
321    };
322
323    let local_var_req = local_var_req_builder.build()?;
324    let local_var_resp = local_var_client.execute(local_var_req).await?;
325
326    let local_var_status = local_var_resp.status();
327    let local_var_content = local_var_resp.text().await?;
328
329    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
330        serde_json::from_str(&local_var_content).map_err(Error::from)
331    } else {
332        let local_var_entity: Option<ApiV3EpisodefileIdGetError> = serde_json::from_str(&local_var_content).ok();
333        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
334        Err(Error::ResponseError(local_var_error))
335    }
336}
337
338pub async fn api_v3_episodefile_id_put(configuration: &configuration::Configuration, id: &str, episode_file_resource: Option<models::EpisodeFileResource>) -> Result<models::EpisodeFileResource, Error<ApiV3EpisodefileIdPutError>> {
339    let local_var_configuration = configuration;
340
341    let local_var_client = &local_var_configuration.client;
342
343    let local_var_uri_str = format!("{}/api/v3/episodefile/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
344    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
345
346    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
347        let local_var_key = local_var_apikey.key.clone();
348        let local_var_value = match local_var_apikey.prefix {
349            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
350            None => local_var_key,
351        };
352        local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
353    }
354    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
355        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
356    }
357    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
358        let local_var_key = local_var_apikey.key.clone();
359        let local_var_value = match local_var_apikey.prefix {
360            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
361            None => local_var_key,
362        };
363        local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
364    };
365    local_var_req_builder = local_var_req_builder.json(&episode_file_resource);
366
367    let local_var_req = local_var_req_builder.build()?;
368    let local_var_resp = local_var_client.execute(local_var_req).await?;
369
370    let local_var_status = local_var_resp.status();
371    let local_var_content = local_var_resp.text().await?;
372
373    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
374        serde_json::from_str(&local_var_content).map_err(Error::from)
375    } else {
376        let local_var_entity: Option<ApiV3EpisodefileIdPutError> = serde_json::from_str(&local_var_content).ok();
377        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
378        Err(Error::ResponseError(local_var_error))
379    }
380}
381