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 DeleteNotificationError {
22 Status401(models::AuthError),
23 Status404(),
24 UnknownValue(serde_json::Value),
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum DeleteNotificationsError {
31 Status401(models::AuthError),
32 Status404(),
33 UnknownValue(serde_json::Value),
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(untagged)]
39pub enum GetNotificationError {
40 Status401(models::AuthError),
41 Status404(),
42 UnknownValue(serde_json::Value),
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum GetNotificationsError {
49 Status401(models::AuthError),
50 Status404(),
51 UnknownValue(serde_json::Value),
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
56#[serde(untagged)]
57pub enum GetUserNotificationsError {
58 Status401(models::AuthError),
59 Status404(),
60 UnknownValue(serde_json::Value),
61}
62
63#[derive(Debug, Clone, Serialize, Deserialize)]
65#[serde(untagged)]
66pub enum ReadNotificationError {
67 Status401(models::AuthError),
68 Status404(),
69 UnknownValue(serde_json::Value),
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
74#[serde(untagged)]
75pub enum ReadNotificationsError {
76 Status401(models::AuthError),
77 Status404(),
78 UnknownValue(serde_json::Value),
79}
80
81
82pub async fn delete_notification(configuration: &configuration::Configuration, id: &str) -> Result<(), Error<DeleteNotificationError>> {
83 let local_var_configuration = configuration;
84
85 let local_var_client = &local_var_configuration.client;
86
87 let local_var_uri_str = format!("{}/notification/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
88 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
89
90 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
91 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
92 }
93 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
94 let local_var_key = local_var_apikey.key.clone();
95 let local_var_value = match local_var_apikey.prefix {
96 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
97 None => local_var_key,
98 };
99 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
100 };
101
102 let local_var_req = local_var_req_builder.build()?;
103 let local_var_resp = local_var_client.execute(local_var_req).await?;
104
105 let local_var_status = local_var_resp.status();
106 let local_var_content = local_var_resp.text().await?;
107
108 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
109 Ok(())
110 } else {
111 let local_var_entity: Option<DeleteNotificationError> = serde_json::from_str(&local_var_content).ok();
112 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
113 Err(Error::ResponseError(local_var_error))
114 }
115}
116
117pub async fn delete_notifications(configuration: &configuration::Configuration, ids: &str) -> Result<(), Error<DeleteNotificationsError>> {
118 let local_var_configuration = configuration;
119
120 let local_var_client = &local_var_configuration.client;
121
122 let local_var_uri_str = format!("{}/notifications", local_var_configuration.base_path);
123 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
124
125 local_var_req_builder = local_var_req_builder.query(&[("ids", &ids.to_string())]);
126 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
127 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
128 }
129 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
130 let local_var_key = local_var_apikey.key.clone();
131 let local_var_value = match local_var_apikey.prefix {
132 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
133 None => local_var_key,
134 };
135 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
136 };
137
138 let local_var_req = local_var_req_builder.build()?;
139 let local_var_resp = local_var_client.execute(local_var_req).await?;
140
141 let local_var_status = local_var_resp.status();
142 let local_var_content = local_var_resp.text().await?;
143
144 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
145 Ok(())
146 } else {
147 let local_var_entity: Option<DeleteNotificationsError> = serde_json::from_str(&local_var_content).ok();
148 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
149 Err(Error::ResponseError(local_var_error))
150 }
151}
152
153pub async fn get_notification(configuration: &configuration::Configuration, id: &str) -> Result<models::Notification, Error<GetNotificationError>> {
154 let local_var_configuration = configuration;
155
156 let local_var_client = &local_var_configuration.client;
157
158 let local_var_uri_str = format!("{}/notification/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
159 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
160
161 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
162 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
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.header("Authorization", local_var_value);
171 };
172
173 let local_var_req = local_var_req_builder.build()?;
174 let local_var_resp = local_var_client.execute(local_var_req).await?;
175
176 let local_var_status = local_var_resp.status();
177 let local_var_content = local_var_resp.text().await?;
178
179 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
180 serde_json::from_str(&local_var_content).map_err(Error::from)
181 } else {
182 let local_var_entity: Option<GetNotificationError> = serde_json::from_str(&local_var_content).ok();
183 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
184 Err(Error::ResponseError(local_var_error))
185 }
186}
187
188pub async fn get_notifications(configuration: &configuration::Configuration, ids: &str) -> Result<Vec<models::Notification>, Error<GetNotificationsError>> {
189 let local_var_configuration = configuration;
190
191 let local_var_client = &local_var_configuration.client;
192
193 let local_var_uri_str = format!("{}/notifications", local_var_configuration.base_path);
194 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
195
196 local_var_req_builder = local_var_req_builder.query(&[("ids", &ids.to_string())]);
197 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
198 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
199 }
200 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
201 let local_var_key = local_var_apikey.key.clone();
202 let local_var_value = match local_var_apikey.prefix {
203 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
204 None => local_var_key,
205 };
206 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
207 };
208
209 let local_var_req = local_var_req_builder.build()?;
210 let local_var_resp = local_var_client.execute(local_var_req).await?;
211
212 let local_var_status = local_var_resp.status();
213 let local_var_content = local_var_resp.text().await?;
214
215 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
216 serde_json::from_str(&local_var_content).map_err(Error::from)
217 } else {
218 let local_var_entity: Option<GetNotificationsError> = serde_json::from_str(&local_var_content).ok();
219 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
220 Err(Error::ResponseError(local_var_error))
221 }
222}
223
224pub async fn get_user_notifications(configuration: &configuration::Configuration, id_pipe_username: &str) -> Result<Vec<models::Notification>, Error<GetUserNotificationsError>> {
225 let local_var_configuration = configuration;
226
227 let local_var_client = &local_var_configuration.client;
228
229 let local_var_uri_str = format!("{}/user/{term_2}/notifications", local_var_configuration.base_path, term_2=crate::apis::urlencode(id_pipe_username));
230 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
231
232 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
233 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
234 }
235 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
236 let local_var_key = local_var_apikey.key.clone();
237 let local_var_value = match local_var_apikey.prefix {
238 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
239 None => local_var_key,
240 };
241 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
242 };
243
244 let local_var_req = local_var_req_builder.build()?;
245 let local_var_resp = local_var_client.execute(local_var_req).await?;
246
247 let local_var_status = local_var_resp.status();
248 let local_var_content = local_var_resp.text().await?;
249
250 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
251 serde_json::from_str(&local_var_content).map_err(Error::from)
252 } else {
253 let local_var_entity: Option<GetUserNotificationsError> = serde_json::from_str(&local_var_content).ok();
254 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
255 Err(Error::ResponseError(local_var_error))
256 }
257}
258
259pub async fn read_notification(configuration: &configuration::Configuration, id: &str) -> Result<(), Error<ReadNotificationError>> {
260 let local_var_configuration = configuration;
261
262 let local_var_client = &local_var_configuration.client;
263
264 let local_var_uri_str = format!("{}/notification/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
265 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
266
267 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
268 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
269 }
270 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
271 let local_var_key = local_var_apikey.key.clone();
272 let local_var_value = match local_var_apikey.prefix {
273 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
274 None => local_var_key,
275 };
276 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
277 };
278
279 let local_var_req = local_var_req_builder.build()?;
280 let local_var_resp = local_var_client.execute(local_var_req).await?;
281
282 let local_var_status = local_var_resp.status();
283 let local_var_content = local_var_resp.text().await?;
284
285 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
286 Ok(())
287 } else {
288 let local_var_entity: Option<ReadNotificationError> = serde_json::from_str(&local_var_content).ok();
289 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
290 Err(Error::ResponseError(local_var_error))
291 }
292}
293
294pub async fn read_notifications(configuration: &configuration::Configuration, ids: &str) -> Result<(), Error<ReadNotificationsError>> {
295 let local_var_configuration = configuration;
296
297 let local_var_client = &local_var_configuration.client;
298
299 let local_var_uri_str = format!("{}/notifications", local_var_configuration.base_path);
300 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
301
302 local_var_req_builder = local_var_req_builder.query(&[("ids", &ids.to_string())]);
303 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
304 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
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.header("Authorization", local_var_value);
313 };
314
315 let local_var_req = local_var_req_builder.build()?;
316 let local_var_resp = local_var_client.execute(local_var_req).await?;
317
318 let local_var_status = local_var_resp.status();
319 let local_var_content = local_var_resp.text().await?;
320
321 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
322 Ok(())
323 } else {
324 let local_var_entity: Option<ReadNotificationsError> = serde_json::from_str(&local_var_content).ok();
325 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
326 Err(Error::ResponseError(local_var_error))
327 }
328}
329