1use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum ApiV3QueueBulkDeleteError {
22 UnknownValue(serde_json::Value),
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum ApiV3QueueGetError {
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum ApiV3QueueIdDeleteError {
36 UnknownValue(serde_json::Value),
37}
38
39
40pub async fn api_v3_queue_bulk_delete(configuration: &configuration::Configuration, remove_from_client: Option<bool>, blocklist: Option<bool>, skip_redownload: Option<bool>, change_category: Option<bool>, queue_bulk_resource: Option<models::QueueBulkResource>) -> Result<(), Error<ApiV3QueueBulkDeleteError>> {
41 let local_var_configuration = configuration;
42
43 let local_var_client = &local_var_configuration.client;
44
45 let local_var_uri_str = format!("{}/api/v3/queue/bulk", local_var_configuration.base_path);
46 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
47
48 if let Some(ref local_var_str) = remove_from_client {
49 local_var_req_builder = local_var_req_builder.query(&[("removeFromClient", &local_var_str.to_string())]);
50 }
51 if let Some(ref local_var_str) = blocklist {
52 local_var_req_builder = local_var_req_builder.query(&[("blocklist", &local_var_str.to_string())]);
53 }
54 if let Some(ref local_var_str) = skip_redownload {
55 local_var_req_builder = local_var_req_builder.query(&[("skipRedownload", &local_var_str.to_string())]);
56 }
57 if let Some(ref local_var_str) = change_category {
58 local_var_req_builder = local_var_req_builder.query(&[("changeCategory", &local_var_str.to_string())]);
59 }
60 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
61 let local_var_key = local_var_apikey.key.clone();
62 let local_var_value = match local_var_apikey.prefix {
63 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
64 None => local_var_key,
65 };
66 local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
67 }
68 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
69 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
70 }
71 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
72 let local_var_key = local_var_apikey.key.clone();
73 let local_var_value = match local_var_apikey.prefix {
74 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
75 None => local_var_key,
76 };
77 local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
78 };
79 local_var_req_builder = local_var_req_builder.json(&queue_bulk_resource);
80
81 let local_var_req = local_var_req_builder.build()?;
82 let local_var_resp = local_var_client.execute(local_var_req).await?;
83
84 let local_var_status = local_var_resp.status();
85 let local_var_content = local_var_resp.text().await?;
86
87 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
88 Ok(())
89 } else {
90 let local_var_entity: Option<ApiV3QueueBulkDeleteError> = serde_json::from_str(&local_var_content).ok();
91 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
92 Err(Error::ResponseError(local_var_error))
93 }
94}
95
96pub async fn api_v3_queue_get(configuration: &configuration::Configuration, page: Option<i32>, page_size: Option<i32>, sort_key: Option<&str>, sort_direction: Option<models::SortDirection>, include_unknown_series_items: Option<bool>, include_series: Option<bool>, include_episode: Option<bool>, series_ids: Option<Vec<i32>>, protocol: Option<models::DownloadProtocol>, languages: Option<Vec<i32>>, quality: Option<i32>) -> Result<models::QueueResourcePagingResource, Error<ApiV3QueueGetError>> {
97 let local_var_configuration = configuration;
98
99 let local_var_client = &local_var_configuration.client;
100
101 let local_var_uri_str = format!("{}/api/v3/queue", local_var_configuration.base_path);
102 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
103
104 if let Some(ref local_var_str) = page {
105 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
106 }
107 if let Some(ref local_var_str) = page_size {
108 local_var_req_builder = local_var_req_builder.query(&[("pageSize", &local_var_str.to_string())]);
109 }
110 if let Some(ref local_var_str) = sort_key {
111 local_var_req_builder = local_var_req_builder.query(&[("sortKey", &local_var_str.to_string())]);
112 }
113 if let Some(ref local_var_str) = sort_direction {
114 local_var_req_builder = local_var_req_builder.query(&[("sortDirection", &local_var_str.to_string())]);
115 }
116 if let Some(ref local_var_str) = include_unknown_series_items {
117 local_var_req_builder = local_var_req_builder.query(&[("includeUnknownSeriesItems", &local_var_str.to_string())]);
118 }
119 if let Some(ref local_var_str) = include_series {
120 local_var_req_builder = local_var_req_builder.query(&[("includeSeries", &local_var_str.to_string())]);
121 }
122 if let Some(ref local_var_str) = include_episode {
123 local_var_req_builder = local_var_req_builder.query(&[("includeEpisode", &local_var_str.to_string())]);
124 }
125 if let Some(ref local_var_str) = series_ids {
126 local_var_req_builder = match "multi" {
127 "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)>>()),
128 _ => local_var_req_builder.query(&[("seriesIds", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
129 };
130 }
131 if let Some(ref local_var_str) = protocol {
132 local_var_req_builder = local_var_req_builder.query(&[("protocol", &local_var_str.to_string())]);
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 = local_var_req_builder.query(&[("quality", &local_var_str.to_string())]);
142 }
143 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
144 let local_var_key = local_var_apikey.key.clone();
145 let local_var_value = match local_var_apikey.prefix {
146 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
147 None => local_var_key,
148 };
149 local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
150 }
151 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
152 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
153 }
154 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
155 let local_var_key = local_var_apikey.key.clone();
156 let local_var_value = match local_var_apikey.prefix {
157 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
158 None => local_var_key,
159 };
160 local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
161 };
162
163 let local_var_req = local_var_req_builder.build()?;
164 let local_var_resp = local_var_client.execute(local_var_req).await?;
165
166 let local_var_status = local_var_resp.status();
167 let local_var_content = local_var_resp.text().await?;
168
169 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
170 serde_json::from_str(&local_var_content).map_err(Error::from)
171 } else {
172 let local_var_entity: Option<ApiV3QueueGetError> = serde_json::from_str(&local_var_content).ok();
173 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
174 Err(Error::ResponseError(local_var_error))
175 }
176}
177
178pub async fn api_v3_queue_id_delete(configuration: &configuration::Configuration, id: i32, remove_from_client: Option<bool>, blocklist: Option<bool>, skip_redownload: Option<bool>, change_category: Option<bool>) -> Result<(), Error<ApiV3QueueIdDeleteError>> {
179 let local_var_configuration = configuration;
180
181 let local_var_client = &local_var_configuration.client;
182
183 let local_var_uri_str = format!("{}/api/v3/queue/{id}", local_var_configuration.base_path, id=id);
184 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
185
186 if let Some(ref local_var_str) = remove_from_client {
187 local_var_req_builder = local_var_req_builder.query(&[("removeFromClient", &local_var_str.to_string())]);
188 }
189 if let Some(ref local_var_str) = blocklist {
190 local_var_req_builder = local_var_req_builder.query(&[("blocklist", &local_var_str.to_string())]);
191 }
192 if let Some(ref local_var_str) = skip_redownload {
193 local_var_req_builder = local_var_req_builder.query(&[("skipRedownload", &local_var_str.to_string())]);
194 }
195 if let Some(ref local_var_str) = change_category {
196 local_var_req_builder = local_var_req_builder.query(&[("changeCategory", &local_var_str.to_string())]);
197 }
198 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
199 let local_var_key = local_var_apikey.key.clone();
200 let local_var_value = match local_var_apikey.prefix {
201 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
202 None => local_var_key,
203 };
204 local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
205 }
206 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
207 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
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.header("X-Api-Key", local_var_value);
216 };
217
218 let local_var_req = local_var_req_builder.build()?;
219 let local_var_resp = local_var_client.execute(local_var_req).await?;
220
221 let local_var_status = local_var_resp.status();
222 let local_var_content = local_var_resp.text().await?;
223
224 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
225 Ok(())
226 } else {
227 let local_var_entity: Option<ApiV3QueueIdDeleteError> = serde_json::from_str(&local_var_content).ok();
228 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
229 Err(Error::ResponseError(local_var_error))
230 }
231}
232