1use reqwest;
13
14use crate::apis::ResponseContent;
15use crate::models::{DownloadProtocol, SortDirection};
16use super::{Error, configuration};
17
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
21#[serde(untagged)]
22pub enum ApiV3QueueBulkDeleteError {
23 UnknownValue(serde_json::Value),
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum ApiV3QueueGetError {
30 UnknownValue(serde_json::Value),
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(untagged)]
36pub enum ApiV3QueueIdDeleteError {
37 UnknownValue(serde_json::Value),
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(untagged)]
43pub enum ApiV3QueueIdGetError {
44 UnknownValue(serde_json::Value),
45}
46
47
48pub async fn api_v3_queue_bulk_delete(configuration: &configuration::Configuration, remove_from_client: Option<bool>, blocklist: Option<bool>, skip_redownload: Option<bool>, queue_bulk_resource: Option<crate::models::QueueBulkResource>) -> Result<(), Error<ApiV3QueueBulkDeleteError>> {
49 let local_var_configuration = configuration;
50
51 let local_var_client = &local_var_configuration.client;
52
53 let local_var_uri_str = format!("{}/api/v3/queue/bulk", local_var_configuration.base_path);
54 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
55
56 if let Some(ref local_var_str) = remove_from_client {
57 local_var_req_builder = local_var_req_builder.query(&[("removeFromClient", &local_var_str.to_string())]);
58 }
59 if let Some(ref local_var_str) = blocklist {
60 local_var_req_builder = local_var_req_builder.query(&[("blocklist", &local_var_str.to_string())]);
61 }
62 if let Some(ref local_var_str) = skip_redownload {
63 local_var_req_builder = local_var_req_builder.query(&[("skipRedownload", &local_var_str.to_string())]);
64 }
65 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
66 let local_var_key = local_var_apikey.key.clone();
67 let local_var_value = match local_var_apikey.prefix {
68 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
69 None => local_var_key,
70 };
71 local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
72 }
73 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
74 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
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.header("X-Api-Key", local_var_value);
83 };
84 local_var_req_builder = local_var_req_builder.json(&queue_bulk_resource);
85
86 let local_var_req = local_var_req_builder.build()?;
87 let local_var_resp = local_var_client.execute(local_var_req).await?;
88
89 let local_var_status = local_var_resp.status();
90 let local_var_content = local_var_resp.text().await?;
91
92 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
93 Ok(())
94 } else {
95 let local_var_entity: Option<ApiV3QueueBulkDeleteError> = serde_json::from_str(&local_var_content).ok();
96 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
97 Err(Error::ResponseError(local_var_error))
98 }
99}
100
101pub async fn api_v3_queue_get(configuration: &configuration::Configuration, page: Option<i32>, page_size: Option<i32>, sort_key: Option<&str>, sort_direction: Option<SortDirection>, include_unknown_movie_items: Option<bool>, include_movie: Option<bool>, movie_ids: Option<Vec<i32>>, protocol: Option<DownloadProtocol>, languages: Option<Vec<i32>>, quality: Option<i32>) -> Result<crate::models::QueueResourcePagingResource, Error<ApiV3QueueGetError>> {
102 let local_var_configuration = configuration;
103
104 let local_var_client = &local_var_configuration.client;
105
106 let local_var_uri_str = format!("{}/api/v3/queue", local_var_configuration.base_path);
107 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
108
109 if let Some(ref local_var_str) = page {
110 local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
111 }
112 if let Some(ref local_var_str) = page_size {
113 local_var_req_builder = local_var_req_builder.query(&[("pageSize", &local_var_str.to_string())]);
114 }
115 if let Some(ref local_var_str) = sort_key {
116 local_var_req_builder = local_var_req_builder.query(&[("sortKey", &local_var_str.to_string())]);
117 }
118 if let Some(ref local_var_str) = sort_direction {
119 local_var_req_builder = local_var_req_builder.query(&[("sortDirection", &local_var_str.to_string())]);
120 }
121 if let Some(ref local_var_str) = include_unknown_movie_items {
122 local_var_req_builder = local_var_req_builder.query(&[("includeUnknownMovieItems", &local_var_str.to_string())]);
123 }
124 if let Some(ref local_var_str) = include_movie {
125 local_var_req_builder = local_var_req_builder.query(&[("includeMovie", &local_var_str.to_string())]);
126 }
127 if let Some(ref local_var_str) = movie_ids {
128 local_var_req_builder = match "multi" {
129 "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("movieIds".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
130 _ => local_var_req_builder.query(&[("movieIds", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
131 };
132 }
133 if let Some(ref local_var_str) = protocol {
134 local_var_req_builder = local_var_req_builder.query(&[("protocol", &local_var_str.to_string())]);
135 }
136 if let Some(ref local_var_str) = languages {
137 local_var_req_builder = match "multi" {
138 "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)>>()),
139 _ => local_var_req_builder.query(&[("languages", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
140 };
141 }
142 if let Some(ref local_var_str) = quality {
143 local_var_req_builder = local_var_req_builder.query(&[("quality", &local_var_str.to_string())]);
144 }
145 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
146 let local_var_key = local_var_apikey.key.clone();
147 let local_var_value = match local_var_apikey.prefix {
148 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
149 None => local_var_key,
150 };
151 local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
152 }
153 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
154 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
155 }
156 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
157 let local_var_key = local_var_apikey.key.clone();
158 let local_var_value = match local_var_apikey.prefix {
159 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
160 None => local_var_key,
161 };
162 local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
163 };
164
165 let local_var_req = local_var_req_builder.build()?;
166 let local_var_resp = local_var_client.execute(local_var_req).await?;
167
168 let local_var_status = local_var_resp.status();
169 let local_var_content = local_var_resp.text().await?;
170
171 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
172 serde_json::from_str(&local_var_content).map_err(Error::from)
173 } else {
174 let local_var_entity: Option<ApiV3QueueGetError> = serde_json::from_str(&local_var_content).ok();
175 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
176 Err(Error::ResponseError(local_var_error))
177 }
178}
179
180pub async fn api_v3_queue_id_delete(configuration: &configuration::Configuration, id: i32, remove_from_client: Option<bool>, blocklist: Option<bool>, skip_redownload: Option<bool>) -> Result<(), Error<ApiV3QueueIdDeleteError>> {
181 let local_var_configuration = configuration;
182
183 let local_var_client = &local_var_configuration.client;
184
185 let local_var_uri_str = format!("{}/api/v3/queue/{id}", local_var_configuration.base_path, id=id);
186 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
187
188 if let Some(ref local_var_str) = remove_from_client {
189 local_var_req_builder = local_var_req_builder.query(&[("removeFromClient", &local_var_str.to_string())]);
190 }
191 if let Some(ref local_var_str) = blocklist {
192 local_var_req_builder = local_var_req_builder.query(&[("blocklist", &local_var_str.to_string())]);
193 }
194 if let Some(ref local_var_str) = skip_redownload {
195 local_var_req_builder = local_var_req_builder.query(&[("skipRedownload", &local_var_str.to_string())]);
196 }
197 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
198 let local_var_key = local_var_apikey.key.clone();
199 let local_var_value = match local_var_apikey.prefix {
200 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
201 None => local_var_key,
202 };
203 local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
204 }
205 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
206 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
207 }
208 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
209 let local_var_key = local_var_apikey.key.clone();
210 let local_var_value = match local_var_apikey.prefix {
211 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
212 None => local_var_key,
213 };
214 local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
215 };
216
217 let local_var_req = local_var_req_builder.build()?;
218 let local_var_resp = local_var_client.execute(local_var_req).await?;
219
220 let local_var_status = local_var_resp.status();
221 let local_var_content = local_var_resp.text().await?;
222
223 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
224 Ok(())
225 } else {
226 let local_var_entity: Option<ApiV3QueueIdDeleteError> = serde_json::from_str(&local_var_content).ok();
227 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
228 Err(Error::ResponseError(local_var_error))
229 }
230}
231
232pub async fn api_v3_queue_id_get(configuration: &configuration::Configuration, id: i32) -> Result<crate::models::QueueResource, Error<ApiV3QueueIdGetError>> {
233 let local_var_configuration = configuration;
234
235 let local_var_client = &local_var_configuration.client;
236
237 let local_var_uri_str = format!("{}/api/v3/queue/{id}", local_var_configuration.base_path, id=id);
238 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
239
240 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
241 let local_var_key = local_var_apikey.key.clone();
242 let local_var_value = match local_var_apikey.prefix {
243 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
244 None => local_var_key,
245 };
246 local_var_req_builder = local_var_req_builder.query(&[("apikey", local_var_value)]);
247 }
248 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
249 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
250 }
251 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
252 let local_var_key = local_var_apikey.key.clone();
253 let local_var_value = match local_var_apikey.prefix {
254 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
255 None => local_var_key,
256 };
257 local_var_req_builder = local_var_req_builder.header("X-Api-Key", local_var_value);
258 };
259
260 let local_var_req = local_var_req_builder.build()?;
261 let local_var_resp = local_var_client.execute(local_var_req).await?;
262
263 let local_var_status = local_var_resp.status();
264 let local_var_content = local_var_resp.text().await?;
265
266 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
267 serde_json::from_str(&local_var_content).map_err(Error::from)
268 } else {
269 let local_var_entity: Option<ApiV3QueueIdGetError> = serde_json::from_str(&local_var_content).ok();
270 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
271 Err(Error::ResponseError(local_var_error))
272 }
273}
274