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>;
35
36 async fn get_latest_organization_report<'a>(
38 &self,
39 organization_id: uuid::Uuid,
40 ) -> Result<(), Error>;
41
42 async fn get_organization_report<'a>(
44 &self,
45 organization_id: uuid::Uuid,
46 report_id: uuid::Uuid,
47 ) -> Result<(), Error>;
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>;
55
56 async fn get_organization_report_data<'a>(
58 &self,
59 organization_id: uuid::Uuid,
60 report_id: uuid::Uuid,
61 ) -> Result<(), Error>;
62
63 async fn get_organization_report_summary<'a>(
65 &self,
66 organization_id: uuid::Uuid,
67 report_id: uuid::Uuid,
68 ) -> Result<(), Error>;
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<Vec<models::OrganizationReportSummaryDataResponse>, Error>;
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>;
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>;
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>;
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>;
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> {
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 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
151 }
152
153 async fn get_latest_organization_report<'a>(
154 &self,
155 organization_id: uuid::Uuid,
156 ) -> Result<(), Error> {
157 let local_var_configuration = &self.configuration;
158
159 let local_var_client = &local_var_configuration.client;
160
161 let local_var_uri_str = format!(
162 "{}/reports/organizations/{organizationId}/latest",
163 local_var_configuration.base_path,
164 organizationId = organization_id
165 );
166 let mut local_var_req_builder =
167 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
168
169 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
170
171 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
172 }
173
174 async fn get_organization_report<'a>(
175 &self,
176 organization_id: uuid::Uuid,
177 report_id: uuid::Uuid,
178 ) -> Result<(), Error> {
179 let local_var_configuration = &self.configuration;
180
181 let local_var_client = &local_var_configuration.client;
182
183 let local_var_uri_str = format!(
184 "{}/reports/organizations/{organizationId}/{reportId}",
185 local_var_configuration.base_path,
186 organizationId = organization_id,
187 reportId = report_id
188 );
189 let mut local_var_req_builder =
190 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
191
192 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
193
194 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
195 }
196
197 async fn get_organization_report_application_data<'a>(
198 &self,
199 organization_id: uuid::Uuid,
200 report_id: uuid::Uuid,
201 ) -> Result<(), Error> {
202 let local_var_configuration = &self.configuration;
203
204 let local_var_client = &local_var_configuration.client;
205
206 let local_var_uri_str = format!(
207 "{}/reports/organizations/{organizationId}/data/application/{reportId}",
208 local_var_configuration.base_path,
209 organizationId = organization_id,
210 reportId = report_id
211 );
212 let mut local_var_req_builder =
213 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
214
215 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
216
217 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
218 }
219
220 async fn get_organization_report_data<'a>(
221 &self,
222 organization_id: uuid::Uuid,
223 report_id: uuid::Uuid,
224 ) -> Result<(), Error> {
225 let local_var_configuration = &self.configuration;
226
227 let local_var_client = &local_var_configuration.client;
228
229 let local_var_uri_str = format!(
230 "{}/reports/organizations/{organizationId}/data/report/{reportId}",
231 local_var_configuration.base_path,
232 organizationId = organization_id,
233 reportId = report_id
234 );
235 let mut local_var_req_builder =
236 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
237
238 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
239
240 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
241 }
242
243 async fn get_organization_report_summary<'a>(
244 &self,
245 organization_id: uuid::Uuid,
246 report_id: uuid::Uuid,
247 ) -> Result<(), Error> {
248 let local_var_configuration = &self.configuration;
249
250 let local_var_client = &local_var_configuration.client;
251
252 let local_var_uri_str = format!(
253 "{}/reports/organizations/{organizationId}/data/summary/{reportId}",
254 local_var_configuration.base_path,
255 organizationId = organization_id,
256 reportId = report_id
257 );
258 let mut local_var_req_builder =
259 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
260
261 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
262
263 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
264 }
265
266 async fn get_organization_report_summary_data_by_date_range<'a>(
267 &self,
268 organization_id: uuid::Uuid,
269 start_date: Option<String>,
270 end_date: Option<String>,
271 ) -> Result<Vec<models::OrganizationReportSummaryDataResponse>, Error> {
272 let local_var_configuration = &self.configuration;
273
274 let local_var_client = &local_var_configuration.client;
275
276 let local_var_uri_str = format!(
277 "{}/reports/organizations/{organizationId}/data/summary",
278 local_var_configuration.base_path,
279 organizationId = organization_id
280 );
281 let mut local_var_req_builder =
282 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
283
284 if let Some(ref param_value) = start_date {
285 local_var_req_builder =
286 local_var_req_builder.query(&[("startDate", ¶m_value.to_string())]);
287 }
288 if let Some(ref param_value) = end_date {
289 local_var_req_builder =
290 local_var_req_builder.query(&[("endDate", ¶m_value.to_string())]);
291 }
292 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
293
294 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
295 }
296
297 async fn update_organization_report<'a>(
298 &self,
299 organization_id: uuid::Uuid,
300 report_id: &'a str,
301 update_organization_report_request: Option<models::UpdateOrganizationReportRequest>,
302 ) -> Result<(), Error> {
303 let local_var_configuration = &self.configuration;
304
305 let local_var_client = &local_var_configuration.client;
306
307 let local_var_uri_str = format!(
308 "{}/reports/organizations/{organizationId}/{reportId}",
309 local_var_configuration.base_path,
310 organizationId = organization_id,
311 reportId = crate::apis::urlencode(report_id)
312 );
313 let mut local_var_req_builder =
314 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
315
316 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
317 local_var_req_builder = local_var_req_builder.json(&update_organization_report_request);
318
319 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
320 }
321
322 async fn update_organization_report_application_data<'a>(
323 &self,
324 organization_id: uuid::Uuid,
325 report_id: uuid::Uuid,
326 update_organization_report_application_data_request: Option<
327 models::UpdateOrganizationReportApplicationDataRequest,
328 >,
329 ) -> Result<(), Error> {
330 let local_var_configuration = &self.configuration;
331
332 let local_var_client = &local_var_configuration.client;
333
334 let local_var_uri_str = format!(
335 "{}/reports/organizations/{organizationId}/data/application/{reportId}",
336 local_var_configuration.base_path,
337 organizationId = organization_id,
338 reportId = report_id
339 );
340 let mut local_var_req_builder =
341 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
342
343 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
344 local_var_req_builder =
345 local_var_req_builder.json(&update_organization_report_application_data_request);
346
347 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
348 }
349
350 async fn update_organization_report_data<'a>(
351 &self,
352 organization_id: uuid::Uuid,
353 report_id: uuid::Uuid,
354 update_organization_report_data_request: Option<
355 models::UpdateOrganizationReportDataRequest,
356 >,
357 ) -> Result<(), Error> {
358 let local_var_configuration = &self.configuration;
359
360 let local_var_client = &local_var_configuration.client;
361
362 let local_var_uri_str = format!(
363 "{}/reports/organizations/{organizationId}/data/report/{reportId}",
364 local_var_configuration.base_path,
365 organizationId = organization_id,
366 reportId = report_id
367 );
368 let mut local_var_req_builder =
369 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
370
371 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
372 local_var_req_builder =
373 local_var_req_builder.json(&update_organization_report_data_request);
374
375 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
376 }
377
378 async fn update_organization_report_summary<'a>(
379 &self,
380 organization_id: uuid::Uuid,
381 report_id: uuid::Uuid,
382 update_organization_report_summary_request: Option<
383 models::UpdateOrganizationReportSummaryRequest,
384 >,
385 ) -> Result<(), Error> {
386 let local_var_configuration = &self.configuration;
387
388 let local_var_client = &local_var_configuration.client;
389
390 let local_var_uri_str = format!(
391 "{}/reports/organizations/{organizationId}/data/summary/{reportId}",
392 local_var_configuration.base_path,
393 organizationId = organization_id,
394 reportId = report_id
395 );
396 let mut local_var_req_builder =
397 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
398
399 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
400 local_var_req_builder =
401 local_var_req_builder.json(&update_organization_report_summary_request);
402
403 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
404 }
405}