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 DeleteThreadMessageError {
22 Status401(models::AuthError),
23 Status404(),
24 UnknownValue(serde_json::Value),
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum GetOpenReportsError {
31 Status401(models::AuthError),
32 Status404(),
33 UnknownValue(serde_json::Value),
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(untagged)]
39pub enum GetReportError {
40 Status401(models::AuthError),
41 Status404(),
42 UnknownValue(serde_json::Value),
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum GetReportsError {
49 Status401(models::AuthError),
50 Status404(),
51 UnknownValue(serde_json::Value),
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
56#[serde(untagged)]
57pub enum GetThreadError {
58 Status404(),
59 UnknownValue(serde_json::Value),
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize)]
64#[serde(untagged)]
65pub enum GetThreadsError {
66 Status404(),
67 UnknownValue(serde_json::Value),
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
72#[serde(untagged)]
73pub enum ModifyReportError {
74 Status400(models::InvalidInputError),
75 Status401(models::AuthError),
76 Status404(),
77 UnknownValue(serde_json::Value),
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize)]
82#[serde(untagged)]
83pub enum SendThreadMessageError {
84 Status400(models::InvalidInputError),
85 Status404(),
86 UnknownValue(serde_json::Value),
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
91#[serde(untagged)]
92pub enum SubmitReportError {
93 Status400(models::InvalidInputError),
94 Status401(models::AuthError),
95 UnknownValue(serde_json::Value),
96}
97
98
99pub async fn delete_thread_message(configuration: &configuration::Configuration, id: &str) -> Result<(), Error<DeleteThreadMessageError>> {
100 let local_var_configuration = configuration;
101
102 let local_var_client = &local_var_configuration.client;
103
104 let local_var_uri_str = format!("{}/message/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
105 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
106
107 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
108 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
109 }
110 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
111 let local_var_key = local_var_apikey.key.clone();
112 let local_var_value = match local_var_apikey.prefix {
113 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
114 None => local_var_key,
115 };
116 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
117 };
118
119 let local_var_req = local_var_req_builder.build()?;
120 let local_var_resp = local_var_client.execute(local_var_req).await?;
121
122 let local_var_status = local_var_resp.status();
123 let local_var_content = local_var_resp.text().await?;
124
125 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
126 Ok(())
127 } else {
128 let local_var_entity: Option<DeleteThreadMessageError> = serde_json::from_str(&local_var_content).ok();
129 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
130 Err(Error::ResponseError(local_var_error))
131 }
132}
133
134pub async fn get_open_reports(configuration: &configuration::Configuration, count: Option<i32>) -> Result<Vec<models::Report>, Error<GetOpenReportsError>> {
135 let local_var_configuration = configuration;
136
137 let local_var_client = &local_var_configuration.client;
138
139 let local_var_uri_str = format!("{}/report", local_var_configuration.base_path);
140 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
141
142 if let Some(ref local_var_str) = count {
143 local_var_req_builder = local_var_req_builder.query(&[("count", &local_var_str.to_string())]);
144 }
145 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
146 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
147 }
148 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
149 let local_var_key = local_var_apikey.key.clone();
150 let local_var_value = match local_var_apikey.prefix {
151 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
152 None => local_var_key,
153 };
154 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
155 };
156
157 let local_var_req = local_var_req_builder.build()?;
158 let local_var_resp = local_var_client.execute(local_var_req).await?;
159
160 let local_var_status = local_var_resp.status();
161 let local_var_content = local_var_resp.text().await?;
162
163 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
164 serde_json::from_str(&local_var_content).map_err(Error::from)
165 } else {
166 let local_var_entity: Option<GetOpenReportsError> = serde_json::from_str(&local_var_content).ok();
167 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
168 Err(Error::ResponseError(local_var_error))
169 }
170}
171
172pub async fn get_report(configuration: &configuration::Configuration, id: &str) -> Result<models::Report, Error<GetReportError>> {
173 let local_var_configuration = configuration;
174
175 let local_var_client = &local_var_configuration.client;
176
177 let local_var_uri_str = format!("{}/report/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
178 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
179
180 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
181 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
182 }
183 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
184 let local_var_key = local_var_apikey.key.clone();
185 let local_var_value = match local_var_apikey.prefix {
186 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
187 None => local_var_key,
188 };
189 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
190 };
191
192 let local_var_req = local_var_req_builder.build()?;
193 let local_var_resp = local_var_client.execute(local_var_req).await?;
194
195 let local_var_status = local_var_resp.status();
196 let local_var_content = local_var_resp.text().await?;
197
198 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
199 serde_json::from_str(&local_var_content).map_err(Error::from)
200 } else {
201 let local_var_entity: Option<GetReportError> = serde_json::from_str(&local_var_content).ok();
202 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
203 Err(Error::ResponseError(local_var_error))
204 }
205}
206
207pub async fn get_reports(configuration: &configuration::Configuration, ids: &str) -> Result<Vec<models::Report>, Error<GetReportsError>> {
208 let local_var_configuration = configuration;
209
210 let local_var_client = &local_var_configuration.client;
211
212 let local_var_uri_str = format!("{}/reports", local_var_configuration.base_path);
213 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
214
215 local_var_req_builder = local_var_req_builder.query(&[("ids", &ids.to_string())]);
216 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
217 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
218 }
219 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
220 let local_var_key = local_var_apikey.key.clone();
221 let local_var_value = match local_var_apikey.prefix {
222 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
223 None => local_var_key,
224 };
225 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
226 };
227
228 let local_var_req = local_var_req_builder.build()?;
229 let local_var_resp = local_var_client.execute(local_var_req).await?;
230
231 let local_var_status = local_var_resp.status();
232 let local_var_content = local_var_resp.text().await?;
233
234 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
235 serde_json::from_str(&local_var_content).map_err(Error::from)
236 } else {
237 let local_var_entity: Option<GetReportsError> = serde_json::from_str(&local_var_content).ok();
238 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
239 Err(Error::ResponseError(local_var_error))
240 }
241}
242
243pub async fn get_thread(configuration: &configuration::Configuration, id: &str) -> Result<models::Thread, Error<GetThreadError>> {
244 let local_var_configuration = configuration;
245
246 let local_var_client = &local_var_configuration.client;
247
248 let local_var_uri_str = format!("{}/thread/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
249 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
250
251 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
252 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
253 }
254 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
255 let local_var_key = local_var_apikey.key.clone();
256 let local_var_value = match local_var_apikey.prefix {
257 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
258 None => local_var_key,
259 };
260 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
261 };
262
263 let local_var_req = local_var_req_builder.build()?;
264 let local_var_resp = local_var_client.execute(local_var_req).await?;
265
266 let local_var_status = local_var_resp.status();
267 let local_var_content = local_var_resp.text().await?;
268
269 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
270 serde_json::from_str(&local_var_content).map_err(Error::from)
271 } else {
272 let local_var_entity: Option<GetThreadError> = serde_json::from_str(&local_var_content).ok();
273 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
274 Err(Error::ResponseError(local_var_error))
275 }
276}
277
278pub async fn get_threads(configuration: &configuration::Configuration, ids: &str) -> Result<Vec<models::Thread>, Error<GetThreadsError>> {
279 let local_var_configuration = configuration;
280
281 let local_var_client = &local_var_configuration.client;
282
283 let local_var_uri_str = format!("{}/threads", local_var_configuration.base_path);
284 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
285
286 local_var_req_builder = local_var_req_builder.query(&[("ids", &ids.to_string())]);
287 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
288 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
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.header("Authorization", local_var_value);
297 };
298
299 let local_var_req = local_var_req_builder.build()?;
300 let local_var_resp = local_var_client.execute(local_var_req).await?;
301
302 let local_var_status = local_var_resp.status();
303 let local_var_content = local_var_resp.text().await?;
304
305 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
306 serde_json::from_str(&local_var_content).map_err(Error::from)
307 } else {
308 let local_var_entity: Option<GetThreadsError> = serde_json::from_str(&local_var_content).ok();
309 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
310 Err(Error::ResponseError(local_var_error))
311 }
312}
313
314pub async fn modify_report(configuration: &configuration::Configuration, id: &str, modify_report_request: Option<models::ModifyReportRequest>) -> Result<(), Error<ModifyReportError>> {
315 let local_var_configuration = configuration;
316
317 let local_var_client = &local_var_configuration.client;
318
319 let local_var_uri_str = format!("{}/report/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
320 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
321
322 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
323 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
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 local_var_req_builder = local_var_req_builder.json(&modify_report_request);
334
335 let local_var_req = local_var_req_builder.build()?;
336 let local_var_resp = local_var_client.execute(local_var_req).await?;
337
338 let local_var_status = local_var_resp.status();
339 let local_var_content = local_var_resp.text().await?;
340
341 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
342 Ok(())
343 } else {
344 let local_var_entity: Option<ModifyReportError> = serde_json::from_str(&local_var_content).ok();
345 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
346 Err(Error::ResponseError(local_var_error))
347 }
348}
349
350pub async fn send_thread_message(configuration: &configuration::Configuration, id: &str, thread_message_body: Option<models::ThreadMessageBody>) -> Result<models::Thread, Error<SendThreadMessageError>> {
351 let local_var_configuration = configuration;
352
353 let local_var_client = &local_var_configuration.client;
354
355 let local_var_uri_str = format!("{}/thread/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
356 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
357
358 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
359 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
360 }
361 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
362 let local_var_key = local_var_apikey.key.clone();
363 let local_var_value = match local_var_apikey.prefix {
364 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
365 None => local_var_key,
366 };
367 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
368 };
369 local_var_req_builder = local_var_req_builder.json(&thread_message_body);
370
371 let local_var_req = local_var_req_builder.build()?;
372 let local_var_resp = local_var_client.execute(local_var_req).await?;
373
374 let local_var_status = local_var_resp.status();
375 let local_var_content = local_var_resp.text().await?;
376
377 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
378 serde_json::from_str(&local_var_content).map_err(Error::from)
379 } else {
380 let local_var_entity: Option<SendThreadMessageError> = serde_json::from_str(&local_var_content).ok();
381 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
382 Err(Error::ResponseError(local_var_error))
383 }
384}
385
386pub async fn submit_report(configuration: &configuration::Configuration, creatable_report: Option<models::CreatableReport>) -> Result<models::Report, Error<SubmitReportError>> {
388 let local_var_configuration = configuration;
389
390 let local_var_client = &local_var_configuration.client;
391
392 let local_var_uri_str = format!("{}/report", local_var_configuration.base_path);
393 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
394
395 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
396 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
397 }
398 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
399 let local_var_key = local_var_apikey.key.clone();
400 let local_var_value = match local_var_apikey.prefix {
401 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
402 None => local_var_key,
403 };
404 local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
405 };
406 local_var_req_builder = local_var_req_builder.json(&creatable_report);
407
408 let local_var_req = local_var_req_builder.build()?;
409 let local_var_resp = local_var_client.execute(local_var_req).await?;
410
411 let local_var_status = local_var_resp.status();
412 let local_var_content = local_var_resp.text().await?;
413
414 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
415 serde_json::from_str(&local_var_content).map_err(Error::from)
416 } else {
417 let local_var_entity: Option<SubmitReportError> = serde_json::from_str(&local_var_content).ok();
418 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
419 Err(Error::ResponseError(local_var_error))
420 }
421}
422