1use std::sync::Arc;
12
13use async_trait::async_trait;
14#[cfg(feature = "mockall")]
15use mockall::automock;
16use reqwest;
17use serde::{Deserialize, Serialize, de::Error as _};
18
19use super::{Error, configuration};
20use crate::{
21 apis::{AuthRequired, ContentType, ResponseContent},
22 models,
23};
24
25#[cfg_attr(feature = "mockall", automock)]
26#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
27#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
28pub trait OrganizationReportsApi: Send + Sync {
29 async fn create_organization_report<'a>(
31 &self,
32 organization_id: uuid::Uuid,
33 add_organization_report_request: Option<models::AddOrganizationReportRequest>,
34 ) -> Result<(), Error<CreateOrganizationReportError>>;
35
36 async fn get_latest_organization_report<'a>(
38 &self,
39 organization_id: uuid::Uuid,
40 ) -> Result<(), Error<GetLatestOrganizationReportError>>;
41
42 async fn get_organization_report<'a>(
44 &self,
45 organization_id: uuid::Uuid,
46 report_id: uuid::Uuid,
47 ) -> Result<(), Error<GetOrganizationReportError>>;
48
49 async fn get_organization_report_application_data<'a>(
51 &self,
52 organization_id: uuid::Uuid,
53 report_id: uuid::Uuid,
54 ) -> Result<(), Error<GetOrganizationReportApplicationDataError>>;
55
56 async fn get_organization_report_data<'a>(
58 &self,
59 organization_id: uuid::Uuid,
60 report_id: uuid::Uuid,
61 ) -> Result<(), Error<GetOrganizationReportDataError>>;
62
63 async fn get_organization_report_summary<'a>(
65 &self,
66 organization_id: uuid::Uuid,
67 report_id: uuid::Uuid,
68 ) -> Result<(), Error<GetOrganizationReportSummaryError>>;
69
70 async fn get_organization_report_summary_data_by_date_range<'a>(
72 &self,
73 organization_id: uuid::Uuid,
74 start_date: Option<String>,
75 end_date: Option<String>,
76 ) -> Result<(), Error<GetOrganizationReportSummaryDataByDateRangeError>>;
77
78 async fn update_organization_report<'a>(
80 &self,
81 organization_id: uuid::Uuid,
82 report_id: &'a str,
83 update_organization_report_request: Option<models::UpdateOrganizationReportRequest>,
84 ) -> Result<(), Error<UpdateOrganizationReportError>>;
85
86 async fn update_organization_report_application_data<'a>(
88 &self,
89 organization_id: uuid::Uuid,
90 report_id: uuid::Uuid,
91 update_organization_report_application_data_request: Option<
92 models::UpdateOrganizationReportApplicationDataRequest,
93 >,
94 ) -> Result<(), Error<UpdateOrganizationReportApplicationDataError>>;
95
96 async fn update_organization_report_data<'a>(
98 &self,
99 organization_id: uuid::Uuid,
100 report_id: uuid::Uuid,
101 update_organization_report_data_request: Option<
102 models::UpdateOrganizationReportDataRequest,
103 >,
104 ) -> Result<(), Error<UpdateOrganizationReportDataError>>;
105
106 async fn update_organization_report_summary<'a>(
108 &self,
109 organization_id: uuid::Uuid,
110 report_id: uuid::Uuid,
111 update_organization_report_summary_request: Option<
112 models::UpdateOrganizationReportSummaryRequest,
113 >,
114 ) -> Result<(), Error<UpdateOrganizationReportSummaryError>>;
115}
116
117pub struct OrganizationReportsApiClient {
118 configuration: Arc<configuration::Configuration>,
119}
120
121impl OrganizationReportsApiClient {
122 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
123 Self { configuration }
124 }
125}
126
127#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
128#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
129impl OrganizationReportsApi for OrganizationReportsApiClient {
130 async fn create_organization_report<'a>(
131 &self,
132 organization_id: uuid::Uuid,
133 add_organization_report_request: Option<models::AddOrganizationReportRequest>,
134 ) -> Result<(), Error<CreateOrganizationReportError>> {
135 let local_var_configuration = &self.configuration;
136
137 let local_var_client = &local_var_configuration.client;
138
139 let local_var_uri_str = format!(
140 "{}/reports/organizations/{organizationId}",
141 local_var_configuration.base_path,
142 organizationId = organization_id
143 );
144 let mut local_var_req_builder =
145 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
146
147 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
148 local_var_req_builder = local_var_req_builder.json(&add_organization_report_request);
149
150 let local_var_resp = local_var_req_builder.send().await?;
151
152 let local_var_status = local_var_resp.status();
153 let local_var_content = local_var_resp.text().await?;
154
155 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
156 Ok(())
157 } else {
158 let local_var_entity: Option<CreateOrganizationReportError> =
159 serde_json::from_str(&local_var_content).ok();
160 let local_var_error = ResponseContent {
161 status: local_var_status,
162 content: local_var_content,
163 entity: local_var_entity,
164 };
165 Err(Error::ResponseError(local_var_error))
166 }
167 }
168
169 async fn get_latest_organization_report<'a>(
170 &self,
171 organization_id: uuid::Uuid,
172 ) -> Result<(), Error<GetLatestOrganizationReportError>> {
173 let local_var_configuration = &self.configuration;
174
175 let local_var_client = &local_var_configuration.client;
176
177 let local_var_uri_str = format!(
178 "{}/reports/organizations/{organizationId}/latest",
179 local_var_configuration.base_path,
180 organizationId = organization_id
181 );
182 let mut local_var_req_builder =
183 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
184
185 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
186
187 let local_var_resp = local_var_req_builder.send().await?;
188
189 let local_var_status = local_var_resp.status();
190 let local_var_content = local_var_resp.text().await?;
191
192 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
193 Ok(())
194 } else {
195 let local_var_entity: Option<GetLatestOrganizationReportError> =
196 serde_json::from_str(&local_var_content).ok();
197 let local_var_error = ResponseContent {
198 status: local_var_status,
199 content: local_var_content,
200 entity: local_var_entity,
201 };
202 Err(Error::ResponseError(local_var_error))
203 }
204 }
205
206 async fn get_organization_report<'a>(
207 &self,
208 organization_id: uuid::Uuid,
209 report_id: uuid::Uuid,
210 ) -> Result<(), Error<GetOrganizationReportError>> {
211 let local_var_configuration = &self.configuration;
212
213 let local_var_client = &local_var_configuration.client;
214
215 let local_var_uri_str = format!(
216 "{}/reports/organizations/{organizationId}/{reportId}",
217 local_var_configuration.base_path,
218 organizationId = organization_id,
219 reportId = report_id
220 );
221 let mut local_var_req_builder =
222 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
223
224 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
225
226 let local_var_resp = local_var_req_builder.send().await?;
227
228 let local_var_status = local_var_resp.status();
229 let local_var_content = local_var_resp.text().await?;
230
231 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
232 Ok(())
233 } else {
234 let local_var_entity: Option<GetOrganizationReportError> =
235 serde_json::from_str(&local_var_content).ok();
236 let local_var_error = ResponseContent {
237 status: local_var_status,
238 content: local_var_content,
239 entity: local_var_entity,
240 };
241 Err(Error::ResponseError(local_var_error))
242 }
243 }
244
245 async fn get_organization_report_application_data<'a>(
246 &self,
247 organization_id: uuid::Uuid,
248 report_id: uuid::Uuid,
249 ) -> Result<(), Error<GetOrganizationReportApplicationDataError>> {
250 let local_var_configuration = &self.configuration;
251
252 let local_var_client = &local_var_configuration.client;
253
254 let local_var_uri_str = format!(
255 "{}/reports/organizations/{organizationId}/data/application/{reportId}",
256 local_var_configuration.base_path,
257 organizationId = organization_id,
258 reportId = report_id
259 );
260 let mut local_var_req_builder =
261 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
262
263 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
264
265 let local_var_resp = local_var_req_builder.send().await?;
266
267 let local_var_status = local_var_resp.status();
268 let local_var_content = local_var_resp.text().await?;
269
270 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
271 Ok(())
272 } else {
273 let local_var_entity: Option<GetOrganizationReportApplicationDataError> =
274 serde_json::from_str(&local_var_content).ok();
275 let local_var_error = ResponseContent {
276 status: local_var_status,
277 content: local_var_content,
278 entity: local_var_entity,
279 };
280 Err(Error::ResponseError(local_var_error))
281 }
282 }
283
284 async fn get_organization_report_data<'a>(
285 &self,
286 organization_id: uuid::Uuid,
287 report_id: uuid::Uuid,
288 ) -> Result<(), Error<GetOrganizationReportDataError>> {
289 let local_var_configuration = &self.configuration;
290
291 let local_var_client = &local_var_configuration.client;
292
293 let local_var_uri_str = format!(
294 "{}/reports/organizations/{organizationId}/data/report/{reportId}",
295 local_var_configuration.base_path,
296 organizationId = organization_id,
297 reportId = report_id
298 );
299 let mut local_var_req_builder =
300 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
301
302 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
303
304 let local_var_resp = local_var_req_builder.send().await?;
305
306 let local_var_status = local_var_resp.status();
307 let local_var_content = local_var_resp.text().await?;
308
309 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
310 Ok(())
311 } else {
312 let local_var_entity: Option<GetOrganizationReportDataError> =
313 serde_json::from_str(&local_var_content).ok();
314 let local_var_error = ResponseContent {
315 status: local_var_status,
316 content: local_var_content,
317 entity: local_var_entity,
318 };
319 Err(Error::ResponseError(local_var_error))
320 }
321 }
322
323 async fn get_organization_report_summary<'a>(
324 &self,
325 organization_id: uuid::Uuid,
326 report_id: uuid::Uuid,
327 ) -> Result<(), Error<GetOrganizationReportSummaryError>> {
328 let local_var_configuration = &self.configuration;
329
330 let local_var_client = &local_var_configuration.client;
331
332 let local_var_uri_str = format!(
333 "{}/reports/organizations/{organizationId}/data/summary/{reportId}",
334 local_var_configuration.base_path,
335 organizationId = organization_id,
336 reportId = report_id
337 );
338 let mut local_var_req_builder =
339 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
340
341 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
342
343 let local_var_resp = local_var_req_builder.send().await?;
344
345 let local_var_status = local_var_resp.status();
346 let local_var_content = local_var_resp.text().await?;
347
348 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
349 Ok(())
350 } else {
351 let local_var_entity: Option<GetOrganizationReportSummaryError> =
352 serde_json::from_str(&local_var_content).ok();
353 let local_var_error = ResponseContent {
354 status: local_var_status,
355 content: local_var_content,
356 entity: local_var_entity,
357 };
358 Err(Error::ResponseError(local_var_error))
359 }
360 }
361
362 async fn get_organization_report_summary_data_by_date_range<'a>(
363 &self,
364 organization_id: uuid::Uuid,
365 start_date: Option<String>,
366 end_date: Option<String>,
367 ) -> Result<(), Error<GetOrganizationReportSummaryDataByDateRangeError>> {
368 let local_var_configuration = &self.configuration;
369
370 let local_var_client = &local_var_configuration.client;
371
372 let local_var_uri_str = format!(
373 "{}/reports/organizations/{organizationId}/data/summary",
374 local_var_configuration.base_path,
375 organizationId = organization_id
376 );
377 let mut local_var_req_builder =
378 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
379
380 if let Some(ref param_value) = start_date {
381 local_var_req_builder =
382 local_var_req_builder.query(&[("startDate", ¶m_value.to_string())]);
383 }
384 if let Some(ref param_value) = end_date {
385 local_var_req_builder =
386 local_var_req_builder.query(&[("endDate", ¶m_value.to_string())]);
387 }
388 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
389
390 let local_var_resp = local_var_req_builder.send().await?;
391
392 let local_var_status = local_var_resp.status();
393 let local_var_content = local_var_resp.text().await?;
394
395 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
396 Ok(())
397 } else {
398 let local_var_entity: Option<GetOrganizationReportSummaryDataByDateRangeError> =
399 serde_json::from_str(&local_var_content).ok();
400 let local_var_error = ResponseContent {
401 status: local_var_status,
402 content: local_var_content,
403 entity: local_var_entity,
404 };
405 Err(Error::ResponseError(local_var_error))
406 }
407 }
408
409 async fn update_organization_report<'a>(
410 &self,
411 organization_id: uuid::Uuid,
412 report_id: &'a str,
413 update_organization_report_request: Option<models::UpdateOrganizationReportRequest>,
414 ) -> Result<(), Error<UpdateOrganizationReportError>> {
415 let local_var_configuration = &self.configuration;
416
417 let local_var_client = &local_var_configuration.client;
418
419 let local_var_uri_str = format!(
420 "{}/reports/organizations/{organizationId}/{reportId}",
421 local_var_configuration.base_path,
422 organizationId = organization_id,
423 reportId = crate::apis::urlencode(report_id)
424 );
425 let mut local_var_req_builder =
426 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
427
428 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
429 local_var_req_builder = local_var_req_builder.json(&update_organization_report_request);
430
431 let local_var_resp = local_var_req_builder.send().await?;
432
433 let local_var_status = local_var_resp.status();
434 let local_var_content = local_var_resp.text().await?;
435
436 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
437 Ok(())
438 } else {
439 let local_var_entity: Option<UpdateOrganizationReportError> =
440 serde_json::from_str(&local_var_content).ok();
441 let local_var_error = ResponseContent {
442 status: local_var_status,
443 content: local_var_content,
444 entity: local_var_entity,
445 };
446 Err(Error::ResponseError(local_var_error))
447 }
448 }
449
450 async fn update_organization_report_application_data<'a>(
451 &self,
452 organization_id: uuid::Uuid,
453 report_id: uuid::Uuid,
454 update_organization_report_application_data_request: Option<
455 models::UpdateOrganizationReportApplicationDataRequest,
456 >,
457 ) -> Result<(), Error<UpdateOrganizationReportApplicationDataError>> {
458 let local_var_configuration = &self.configuration;
459
460 let local_var_client = &local_var_configuration.client;
461
462 let local_var_uri_str = format!(
463 "{}/reports/organizations/{organizationId}/data/application/{reportId}",
464 local_var_configuration.base_path,
465 organizationId = organization_id,
466 reportId = report_id
467 );
468 let mut local_var_req_builder =
469 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
470
471 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
472 local_var_req_builder =
473 local_var_req_builder.json(&update_organization_report_application_data_request);
474
475 let local_var_resp = local_var_req_builder.send().await?;
476
477 let local_var_status = local_var_resp.status();
478 let local_var_content = local_var_resp.text().await?;
479
480 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
481 Ok(())
482 } else {
483 let local_var_entity: Option<UpdateOrganizationReportApplicationDataError> =
484 serde_json::from_str(&local_var_content).ok();
485 let local_var_error = ResponseContent {
486 status: local_var_status,
487 content: local_var_content,
488 entity: local_var_entity,
489 };
490 Err(Error::ResponseError(local_var_error))
491 }
492 }
493
494 async fn update_organization_report_data<'a>(
495 &self,
496 organization_id: uuid::Uuid,
497 report_id: uuid::Uuid,
498 update_organization_report_data_request: Option<
499 models::UpdateOrganizationReportDataRequest,
500 >,
501 ) -> Result<(), Error<UpdateOrganizationReportDataError>> {
502 let local_var_configuration = &self.configuration;
503
504 let local_var_client = &local_var_configuration.client;
505
506 let local_var_uri_str = format!(
507 "{}/reports/organizations/{organizationId}/data/report/{reportId}",
508 local_var_configuration.base_path,
509 organizationId = organization_id,
510 reportId = report_id
511 );
512 let mut local_var_req_builder =
513 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
514
515 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
516 local_var_req_builder =
517 local_var_req_builder.json(&update_organization_report_data_request);
518
519 let local_var_resp = local_var_req_builder.send().await?;
520
521 let local_var_status = local_var_resp.status();
522 let local_var_content = local_var_resp.text().await?;
523
524 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
525 Ok(())
526 } else {
527 let local_var_entity: Option<UpdateOrganizationReportDataError> =
528 serde_json::from_str(&local_var_content).ok();
529 let local_var_error = ResponseContent {
530 status: local_var_status,
531 content: local_var_content,
532 entity: local_var_entity,
533 };
534 Err(Error::ResponseError(local_var_error))
535 }
536 }
537
538 async fn update_organization_report_summary<'a>(
539 &self,
540 organization_id: uuid::Uuid,
541 report_id: uuid::Uuid,
542 update_organization_report_summary_request: Option<
543 models::UpdateOrganizationReportSummaryRequest,
544 >,
545 ) -> Result<(), Error<UpdateOrganizationReportSummaryError>> {
546 let local_var_configuration = &self.configuration;
547
548 let local_var_client = &local_var_configuration.client;
549
550 let local_var_uri_str = format!(
551 "{}/reports/organizations/{organizationId}/data/summary/{reportId}",
552 local_var_configuration.base_path,
553 organizationId = organization_id,
554 reportId = report_id
555 );
556 let mut local_var_req_builder =
557 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
558
559 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
560 local_var_req_builder =
561 local_var_req_builder.json(&update_organization_report_summary_request);
562
563 let local_var_resp = local_var_req_builder.send().await?;
564
565 let local_var_status = local_var_resp.status();
566 let local_var_content = local_var_resp.text().await?;
567
568 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
569 Ok(())
570 } else {
571 let local_var_entity: Option<UpdateOrganizationReportSummaryError> =
572 serde_json::from_str(&local_var_content).ok();
573 let local_var_error = ResponseContent {
574 status: local_var_status,
575 content: local_var_content,
576 entity: local_var_entity,
577 };
578 Err(Error::ResponseError(local_var_error))
579 }
580 }
581}
582
583#[derive(Debug, Clone, Serialize, Deserialize)]
585#[serde(untagged)]
586pub enum CreateOrganizationReportError {
587 UnknownValue(serde_json::Value),
588}
589#[derive(Debug, Clone, Serialize, Deserialize)]
591#[serde(untagged)]
592pub enum GetLatestOrganizationReportError {
593 UnknownValue(serde_json::Value),
594}
595#[derive(Debug, Clone, Serialize, Deserialize)]
597#[serde(untagged)]
598pub enum GetOrganizationReportError {
599 UnknownValue(serde_json::Value),
600}
601#[derive(Debug, Clone, Serialize, Deserialize)]
604#[serde(untagged)]
605pub enum GetOrganizationReportApplicationDataError {
606 UnknownValue(serde_json::Value),
607}
608#[derive(Debug, Clone, Serialize, Deserialize)]
610#[serde(untagged)]
611pub enum GetOrganizationReportDataError {
612 UnknownValue(serde_json::Value),
613}
614#[derive(Debug, Clone, Serialize, Deserialize)]
616#[serde(untagged)]
617pub enum GetOrganizationReportSummaryError {
618 UnknownValue(serde_json::Value),
619}
620#[derive(Debug, Clone, Serialize, Deserialize)]
623#[serde(untagged)]
624pub enum GetOrganizationReportSummaryDataByDateRangeError {
625 UnknownValue(serde_json::Value),
626}
627#[derive(Debug, Clone, Serialize, Deserialize)]
629#[serde(untagged)]
630pub enum UpdateOrganizationReportError {
631 UnknownValue(serde_json::Value),
632}
633#[derive(Debug, Clone, Serialize, Deserialize)]
636#[serde(untagged)]
637pub enum UpdateOrganizationReportApplicationDataError {
638 UnknownValue(serde_json::Value),
639}
640#[derive(Debug, Clone, Serialize, Deserialize)]
642#[serde(untagged)]
643pub enum UpdateOrganizationReportDataError {
644 UnknownValue(serde_json::Value),
645}
646#[derive(Debug, Clone, Serialize, Deserialize)]
648#[serde(untagged)]
649pub enum UpdateOrganizationReportSummaryError {
650 UnknownValue(serde_json::Value),
651}