gitea_rs/apis/
notification_api.rs

1/*
2 * Gitea API.
3 *
4 * This documentation describes the Gitea API.
5 *
6 * The version of the OpenAPI document: 1.19.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`notify_get_list`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum NotifyGetListError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`notify_get_repo_list`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum NotifyGetRepoListError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`notify_get_thread`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum NotifyGetThreadError {
36    Status403(),
37    Status404(),
38    UnknownValue(serde_json::Value),
39}
40
41/// struct for typed errors of method [`notify_new_available`]
42#[derive(Debug, Clone, Serialize, Deserialize)]
43#[serde(untagged)]
44pub enum NotifyNewAvailableError {
45    UnknownValue(serde_json::Value),
46}
47
48/// struct for typed errors of method [`notify_read_list`]
49#[derive(Debug, Clone, Serialize, Deserialize)]
50#[serde(untagged)]
51pub enum NotifyReadListError {
52    UnknownValue(serde_json::Value),
53}
54
55/// struct for typed errors of method [`notify_read_repo_list`]
56#[derive(Debug, Clone, Serialize, Deserialize)]
57#[serde(untagged)]
58pub enum NotifyReadRepoListError {
59    UnknownValue(serde_json::Value),
60}
61
62/// struct for typed errors of method [`notify_read_thread`]
63#[derive(Debug, Clone, Serialize, Deserialize)]
64#[serde(untagged)]
65pub enum NotifyReadThreadError {
66    Status403(),
67    Status404(),
68    UnknownValue(serde_json::Value),
69}
70
71
72pub async fn notify_get_list(configuration: &configuration::Configuration, all: Option<bool>, status_types: Option<Vec<String>>, subject_type: Option<Vec<String>>, since: Option<String>, before: Option<String>, page: Option<i32>, limit: Option<i32>) -> Result<Vec<crate::models::NotificationThread>, Error<NotifyGetListError>> {
73    let local_var_configuration = configuration;
74
75    let local_var_client = &local_var_configuration.client;
76
77    let local_var_uri_str = format!("{}/notifications", local_var_configuration.base_path);
78    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
79
80    if let Some(ref local_var_str) = all {
81        local_var_req_builder = local_var_req_builder.query(&[("all", &local_var_str.to_string())]);
82    }
83    if let Some(ref local_var_str) = status_types {
84        local_var_req_builder = match "multi" {
85            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("status-types".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
86            _ => local_var_req_builder.query(&[("status-types", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
87        };
88    }
89    if let Some(ref local_var_str) = subject_type {
90        local_var_req_builder = match "multi" {
91            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("subject-type".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
92            _ => local_var_req_builder.query(&[("subject-type", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
93        };
94    }
95    if let Some(ref local_var_str) = since {
96        local_var_req_builder = local_var_req_builder.query(&[("since", &local_var_str.to_string())]);
97    }
98    if let Some(ref local_var_str) = before {
99        local_var_req_builder = local_var_req_builder.query(&[("before", &local_var_str.to_string())]);
100    }
101    if let Some(ref local_var_str) = page {
102        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
103    }
104    if let Some(ref local_var_str) = limit {
105        local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
106    }
107    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
108        let local_var_key = local_var_apikey.key.clone();
109        let local_var_value = match local_var_apikey.prefix {
110            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
111            None => local_var_key,
112        };
113        local_var_req_builder = local_var_req_builder.query(&[("access_token", local_var_value)]);
114    }
115    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
116        let local_var_key = local_var_apikey.key.clone();
117        let local_var_value = match local_var_apikey.prefix {
118            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
119            None => local_var_key,
120        };
121        local_var_req_builder = local_var_req_builder.query(&[("sudo", local_var_value)]);
122    }
123    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
124        let local_var_key = local_var_apikey.key.clone();
125        let local_var_value = match local_var_apikey.prefix {
126            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
127            None => local_var_key,
128        };
129        local_var_req_builder = local_var_req_builder.query(&[("token", local_var_value)]);
130    }
131    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
132        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
133    }
134    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
135        let local_var_key = local_var_apikey.key.clone();
136        let local_var_value = match local_var_apikey.prefix {
137            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
138            None => local_var_key,
139        };
140        local_var_req_builder = local_var_req_builder.header("X-GITEA-OTP", local_var_value);
141    };
142    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
143        let local_var_key = local_var_apikey.key.clone();
144        let local_var_value = match local_var_apikey.prefix {
145            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
146            None => local_var_key,
147        };
148        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
149    };
150    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
151        let local_var_key = local_var_apikey.key.clone();
152        let local_var_value = match local_var_apikey.prefix {
153            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
154            None => local_var_key,
155        };
156        local_var_req_builder = local_var_req_builder.header("Sudo", local_var_value);
157    };
158    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
159        local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
160    };
161
162    let local_var_req = local_var_req_builder.build()?;
163    let local_var_resp = local_var_client.execute(local_var_req).await?;
164
165    let local_var_status = local_var_resp.status();
166    let local_var_content = local_var_resp.text().await?;
167
168    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
169        serde_json::from_str(&local_var_content).map_err(Error::from)
170    } else {
171        let local_var_entity: Option<NotifyGetListError> = serde_json::from_str(&local_var_content).ok();
172        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
173        Err(Error::ResponseError(local_var_error))
174    }
175}
176
177pub async fn notify_get_repo_list(configuration: &configuration::Configuration, owner: &str, repo: &str, all: Option<bool>, status_types: Option<Vec<String>>, subject_type: Option<Vec<String>>, since: Option<String>, before: Option<String>, page: Option<i32>, limit: Option<i32>) -> Result<Vec<crate::models::NotificationThread>, Error<NotifyGetRepoListError>> {
178    let local_var_configuration = configuration;
179
180    let local_var_client = &local_var_configuration.client;
181
182    let local_var_uri_str = format!("{}/repos/{owner}/{repo}/notifications", local_var_configuration.base_path, owner=crate::apis::urlencode(owner), repo=crate::apis::urlencode(repo));
183    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
184
185    if let Some(ref local_var_str) = all {
186        local_var_req_builder = local_var_req_builder.query(&[("all", &local_var_str.to_string())]);
187    }
188    if let Some(ref local_var_str) = status_types {
189        local_var_req_builder = match "multi" {
190            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("status-types".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
191            _ => local_var_req_builder.query(&[("status-types", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
192        };
193    }
194    if let Some(ref local_var_str) = subject_type {
195        local_var_req_builder = match "multi" {
196            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("subject-type".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
197            _ => local_var_req_builder.query(&[("subject-type", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
198        };
199    }
200    if let Some(ref local_var_str) = since {
201        local_var_req_builder = local_var_req_builder.query(&[("since", &local_var_str.to_string())]);
202    }
203    if let Some(ref local_var_str) = before {
204        local_var_req_builder = local_var_req_builder.query(&[("before", &local_var_str.to_string())]);
205    }
206    if let Some(ref local_var_str) = page {
207        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
208    }
209    if let Some(ref local_var_str) = limit {
210        local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
211    }
212    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
213        let local_var_key = local_var_apikey.key.clone();
214        let local_var_value = match local_var_apikey.prefix {
215            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
216            None => local_var_key,
217        };
218        local_var_req_builder = local_var_req_builder.query(&[("access_token", local_var_value)]);
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.query(&[("sudo", local_var_value)]);
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.query(&[("token", local_var_value)]);
235    }
236    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
237        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
238    }
239    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
240        let local_var_key = local_var_apikey.key.clone();
241        let local_var_value = match local_var_apikey.prefix {
242            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
243            None => local_var_key,
244        };
245        local_var_req_builder = local_var_req_builder.header("X-GITEA-OTP", local_var_value);
246    };
247    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
248        let local_var_key = local_var_apikey.key.clone();
249        let local_var_value = match local_var_apikey.prefix {
250            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
251            None => local_var_key,
252        };
253        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
254    };
255    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
256        let local_var_key = local_var_apikey.key.clone();
257        let local_var_value = match local_var_apikey.prefix {
258            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
259            None => local_var_key,
260        };
261        local_var_req_builder = local_var_req_builder.header("Sudo", local_var_value);
262    };
263    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
264        local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
265    };
266
267    let local_var_req = local_var_req_builder.build()?;
268    let local_var_resp = local_var_client.execute(local_var_req).await?;
269
270    let local_var_status = local_var_resp.status();
271    let local_var_content = local_var_resp.text().await?;
272
273    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
274        serde_json::from_str(&local_var_content).map_err(Error::from)
275    } else {
276        let local_var_entity: Option<NotifyGetRepoListError> = serde_json::from_str(&local_var_content).ok();
277        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
278        Err(Error::ResponseError(local_var_error))
279    }
280}
281
282pub async fn notify_get_thread(configuration: &configuration::Configuration, id: &str) -> Result<crate::models::NotificationThread, Error<NotifyGetThreadError>> {
283    let local_var_configuration = configuration;
284
285    let local_var_client = &local_var_configuration.client;
286
287    let local_var_uri_str = format!("{}/notifications/threads/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
288    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
289
290    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
291        let local_var_key = local_var_apikey.key.clone();
292        let local_var_value = match local_var_apikey.prefix {
293            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
294            None => local_var_key,
295        };
296        local_var_req_builder = local_var_req_builder.query(&[("access_token", local_var_value)]);
297    }
298    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
299        let local_var_key = local_var_apikey.key.clone();
300        let local_var_value = match local_var_apikey.prefix {
301            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
302            None => local_var_key,
303        };
304        local_var_req_builder = local_var_req_builder.query(&[("sudo", local_var_value)]);
305    }
306    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
307        let local_var_key = local_var_apikey.key.clone();
308        let local_var_value = match local_var_apikey.prefix {
309            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
310            None => local_var_key,
311        };
312        local_var_req_builder = local_var_req_builder.query(&[("token", local_var_value)]);
313    }
314    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
315        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
316    }
317    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
318        let local_var_key = local_var_apikey.key.clone();
319        let local_var_value = match local_var_apikey.prefix {
320            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
321            None => local_var_key,
322        };
323        local_var_req_builder = local_var_req_builder.header("X-GITEA-OTP", local_var_value);
324    };
325    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
326        let local_var_key = local_var_apikey.key.clone();
327        let local_var_value = match local_var_apikey.prefix {
328            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
329            None => local_var_key,
330        };
331        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
332    };
333    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
334        let local_var_key = local_var_apikey.key.clone();
335        let local_var_value = match local_var_apikey.prefix {
336            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
337            None => local_var_key,
338        };
339        local_var_req_builder = local_var_req_builder.header("Sudo", local_var_value);
340    };
341    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
342        local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
343    };
344
345    let local_var_req = local_var_req_builder.build()?;
346    let local_var_resp = local_var_client.execute(local_var_req).await?;
347
348    let local_var_status = local_var_resp.status();
349    let local_var_content = local_var_resp.text().await?;
350
351    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
352        serde_json::from_str(&local_var_content).map_err(Error::from)
353    } else {
354        let local_var_entity: Option<NotifyGetThreadError> = serde_json::from_str(&local_var_content).ok();
355        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
356        Err(Error::ResponseError(local_var_error))
357    }
358}
359
360pub async fn notify_new_available(configuration: &configuration::Configuration, ) -> Result<crate::models::NotificationCount, Error<NotifyNewAvailableError>> {
361    let local_var_configuration = configuration;
362
363    let local_var_client = &local_var_configuration.client;
364
365    let local_var_uri_str = format!("{}/notifications/new", local_var_configuration.base_path);
366    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
367
368    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
369        let local_var_key = local_var_apikey.key.clone();
370        let local_var_value = match local_var_apikey.prefix {
371            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
372            None => local_var_key,
373        };
374        local_var_req_builder = local_var_req_builder.query(&[("access_token", local_var_value)]);
375    }
376    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
377        let local_var_key = local_var_apikey.key.clone();
378        let local_var_value = match local_var_apikey.prefix {
379            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
380            None => local_var_key,
381        };
382        local_var_req_builder = local_var_req_builder.query(&[("sudo", local_var_value)]);
383    }
384    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
385        let local_var_key = local_var_apikey.key.clone();
386        let local_var_value = match local_var_apikey.prefix {
387            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
388            None => local_var_key,
389        };
390        local_var_req_builder = local_var_req_builder.query(&[("token", local_var_value)]);
391    }
392    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
393        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
394    }
395    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
396        let local_var_key = local_var_apikey.key.clone();
397        let local_var_value = match local_var_apikey.prefix {
398            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
399            None => local_var_key,
400        };
401        local_var_req_builder = local_var_req_builder.header("X-GITEA-OTP", local_var_value);
402    };
403    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
404        let local_var_key = local_var_apikey.key.clone();
405        let local_var_value = match local_var_apikey.prefix {
406            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
407            None => local_var_key,
408        };
409        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
410    };
411    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
412        let local_var_key = local_var_apikey.key.clone();
413        let local_var_value = match local_var_apikey.prefix {
414            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
415            None => local_var_key,
416        };
417        local_var_req_builder = local_var_req_builder.header("Sudo", local_var_value);
418    };
419    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
420        local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
421    };
422
423    let local_var_req = local_var_req_builder.build()?;
424    let local_var_resp = local_var_client.execute(local_var_req).await?;
425
426    let local_var_status = local_var_resp.status();
427    let local_var_content = local_var_resp.text().await?;
428
429    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
430        serde_json::from_str(&local_var_content).map_err(Error::from)
431    } else {
432        let local_var_entity: Option<NotifyNewAvailableError> = serde_json::from_str(&local_var_content).ok();
433        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
434        Err(Error::ResponseError(local_var_error))
435    }
436}
437
438pub async fn notify_read_list(configuration: &configuration::Configuration, last_read_at: Option<String>, all: Option<&str>, status_types: Option<Vec<String>>, to_status: Option<&str>) -> Result<Vec<crate::models::NotificationThread>, Error<NotifyReadListError>> {
439    let local_var_configuration = configuration;
440
441    let local_var_client = &local_var_configuration.client;
442
443    let local_var_uri_str = format!("{}/notifications", local_var_configuration.base_path);
444    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
445
446    if let Some(ref local_var_str) = last_read_at {
447        local_var_req_builder = local_var_req_builder.query(&[("last_read_at", &local_var_str.to_string())]);
448    }
449    if let Some(ref local_var_str) = all {
450        local_var_req_builder = local_var_req_builder.query(&[("all", &local_var_str.to_string())]);
451    }
452    if let Some(ref local_var_str) = status_types {
453        local_var_req_builder = match "multi" {
454            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("status-types".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
455            _ => local_var_req_builder.query(&[("status-types", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
456        };
457    }
458    if let Some(ref local_var_str) = to_status {
459        local_var_req_builder = local_var_req_builder.query(&[("to-status", &local_var_str.to_string())]);
460    }
461    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
462        let local_var_key = local_var_apikey.key.clone();
463        let local_var_value = match local_var_apikey.prefix {
464            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
465            None => local_var_key,
466        };
467        local_var_req_builder = local_var_req_builder.query(&[("access_token", local_var_value)]);
468    }
469    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
470        let local_var_key = local_var_apikey.key.clone();
471        let local_var_value = match local_var_apikey.prefix {
472            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
473            None => local_var_key,
474        };
475        local_var_req_builder = local_var_req_builder.query(&[("sudo", local_var_value)]);
476    }
477    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
478        let local_var_key = local_var_apikey.key.clone();
479        let local_var_value = match local_var_apikey.prefix {
480            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
481            None => local_var_key,
482        };
483        local_var_req_builder = local_var_req_builder.query(&[("token", local_var_value)]);
484    }
485    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
486        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
487    }
488    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
489        let local_var_key = local_var_apikey.key.clone();
490        let local_var_value = match local_var_apikey.prefix {
491            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
492            None => local_var_key,
493        };
494        local_var_req_builder = local_var_req_builder.header("X-GITEA-OTP", local_var_value);
495    };
496    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
497        let local_var_key = local_var_apikey.key.clone();
498        let local_var_value = match local_var_apikey.prefix {
499            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
500            None => local_var_key,
501        };
502        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
503    };
504    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
505        let local_var_key = local_var_apikey.key.clone();
506        let local_var_value = match local_var_apikey.prefix {
507            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
508            None => local_var_key,
509        };
510        local_var_req_builder = local_var_req_builder.header("Sudo", local_var_value);
511    };
512    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
513        local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
514    };
515
516    let local_var_req = local_var_req_builder.build()?;
517    let local_var_resp = local_var_client.execute(local_var_req).await?;
518
519    let local_var_status = local_var_resp.status();
520    let local_var_content = local_var_resp.text().await?;
521
522    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
523        serde_json::from_str(&local_var_content).map_err(Error::from)
524    } else {
525        let local_var_entity: Option<NotifyReadListError> = serde_json::from_str(&local_var_content).ok();
526        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
527        Err(Error::ResponseError(local_var_error))
528    }
529}
530
531pub async fn notify_read_repo_list(configuration: &configuration::Configuration, owner: &str, repo: &str, all: Option<&str>, status_types: Option<Vec<String>>, to_status: Option<&str>, last_read_at: Option<String>) -> Result<Vec<crate::models::NotificationThread>, Error<NotifyReadRepoListError>> {
532    let local_var_configuration = configuration;
533
534    let local_var_client = &local_var_configuration.client;
535
536    let local_var_uri_str = format!("{}/repos/{owner}/{repo}/notifications", local_var_configuration.base_path, owner=crate::apis::urlencode(owner), repo=crate::apis::urlencode(repo));
537    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
538
539    if let Some(ref local_var_str) = all {
540        local_var_req_builder = local_var_req_builder.query(&[("all", &local_var_str.to_string())]);
541    }
542    if let Some(ref local_var_str) = status_types {
543        local_var_req_builder = match "multi" {
544            "multi" => local_var_req_builder.query(&local_var_str.into_iter().map(|p| ("status-types".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
545            _ => local_var_req_builder.query(&[("status-types", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
546        };
547    }
548    if let Some(ref local_var_str) = to_status {
549        local_var_req_builder = local_var_req_builder.query(&[("to-status", &local_var_str.to_string())]);
550    }
551    if let Some(ref local_var_str) = last_read_at {
552        local_var_req_builder = local_var_req_builder.query(&[("last_read_at", &local_var_str.to_string())]);
553    }
554    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
555        let local_var_key = local_var_apikey.key.clone();
556        let local_var_value = match local_var_apikey.prefix {
557            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
558            None => local_var_key,
559        };
560        local_var_req_builder = local_var_req_builder.query(&[("access_token", local_var_value)]);
561    }
562    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
563        let local_var_key = local_var_apikey.key.clone();
564        let local_var_value = match local_var_apikey.prefix {
565            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
566            None => local_var_key,
567        };
568        local_var_req_builder = local_var_req_builder.query(&[("sudo", local_var_value)]);
569    }
570    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
571        let local_var_key = local_var_apikey.key.clone();
572        let local_var_value = match local_var_apikey.prefix {
573            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
574            None => local_var_key,
575        };
576        local_var_req_builder = local_var_req_builder.query(&[("token", local_var_value)]);
577    }
578    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
579        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
580    }
581    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
582        let local_var_key = local_var_apikey.key.clone();
583        let local_var_value = match local_var_apikey.prefix {
584            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
585            None => local_var_key,
586        };
587        local_var_req_builder = local_var_req_builder.header("X-GITEA-OTP", local_var_value);
588    };
589    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
590        let local_var_key = local_var_apikey.key.clone();
591        let local_var_value = match local_var_apikey.prefix {
592            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
593            None => local_var_key,
594        };
595        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
596    };
597    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
598        let local_var_key = local_var_apikey.key.clone();
599        let local_var_value = match local_var_apikey.prefix {
600            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
601            None => local_var_key,
602        };
603        local_var_req_builder = local_var_req_builder.header("Sudo", local_var_value);
604    };
605    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
606        local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
607    };
608
609    let local_var_req = local_var_req_builder.build()?;
610    let local_var_resp = local_var_client.execute(local_var_req).await?;
611
612    let local_var_status = local_var_resp.status();
613    let local_var_content = local_var_resp.text().await?;
614
615    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
616        serde_json::from_str(&local_var_content).map_err(Error::from)
617    } else {
618        let local_var_entity: Option<NotifyReadRepoListError> = serde_json::from_str(&local_var_content).ok();
619        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
620        Err(Error::ResponseError(local_var_error))
621    }
622}
623
624pub async fn notify_read_thread(configuration: &configuration::Configuration, id: &str, to_status: Option<&str>) -> Result<crate::models::NotificationThread, Error<NotifyReadThreadError>> {
625    let local_var_configuration = configuration;
626
627    let local_var_client = &local_var_configuration.client;
628
629    let local_var_uri_str = format!("{}/notifications/threads/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
630    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
631
632    if let Some(ref local_var_str) = to_status {
633        local_var_req_builder = local_var_req_builder.query(&[("to-status", &local_var_str.to_string())]);
634    }
635    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
636        let local_var_key = local_var_apikey.key.clone();
637        let local_var_value = match local_var_apikey.prefix {
638            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
639            None => local_var_key,
640        };
641        local_var_req_builder = local_var_req_builder.query(&[("access_token", local_var_value)]);
642    }
643    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
644        let local_var_key = local_var_apikey.key.clone();
645        let local_var_value = match local_var_apikey.prefix {
646            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
647            None => local_var_key,
648        };
649        local_var_req_builder = local_var_req_builder.query(&[("sudo", local_var_value)]);
650    }
651    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
652        let local_var_key = local_var_apikey.key.clone();
653        let local_var_value = match local_var_apikey.prefix {
654            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
655            None => local_var_key,
656        };
657        local_var_req_builder = local_var_req_builder.query(&[("token", local_var_value)]);
658    }
659    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
660        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
661    }
662    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
663        let local_var_key = local_var_apikey.key.clone();
664        let local_var_value = match local_var_apikey.prefix {
665            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
666            None => local_var_key,
667        };
668        local_var_req_builder = local_var_req_builder.header("X-GITEA-OTP", local_var_value);
669    };
670    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
671        let local_var_key = local_var_apikey.key.clone();
672        let local_var_value = match local_var_apikey.prefix {
673            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
674            None => local_var_key,
675        };
676        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
677    };
678    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
679        let local_var_key = local_var_apikey.key.clone();
680        let local_var_value = match local_var_apikey.prefix {
681            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
682            None => local_var_key,
683        };
684        local_var_req_builder = local_var_req_builder.header("Sudo", local_var_value);
685    };
686    if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
687        local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
688    };
689
690    let local_var_req = local_var_req_builder.build()?;
691    let local_var_resp = local_var_client.execute(local_var_req).await?;
692
693    let local_var_status = local_var_resp.status();
694    let local_var_content = local_var_resp.text().await?;
695
696    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
697        serde_json::from_str(&local_var_content).map_err(Error::from)
698    } else {
699        let local_var_entity: Option<NotifyReadThreadError> = serde_json::from_str(&local_var_content).ok();
700        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
701        Err(Error::ResponseError(local_var_error))
702    }
703}
704