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 SendsApi: Send + Sync {
29 async fn access<'a>(
31 &self,
32 id: &'a str,
33 send_access_request_model: Option<models::SendAccessRequestModel>,
34 ) -> Result<models::SendAccessResponseModel, Error>;
35
36 async fn access_using_auth<'a>(
38 &self,
39 access_token: &'a str,
40 ) -> Result<models::SendAccessResponseModel, Error>;
41
42 async fn azure_validate_file(&self) -> Result<(), Error>;
44
45 async fn delete<'a>(&self, id: &'a str) -> Result<(), Error>;
47
48 async fn get<'a>(&self, id: &'a str) -> Result<models::SendResponseModel, Error>;
50
51 async fn get_all(&self) -> Result<models::SendResponseModelListResponseModel, Error>;
53
54 async fn get_send_file_download_data<'a>(
56 &self,
57 encoded_send_id: &'a str,
58 file_id: &'a str,
59 send_access_request_model: Option<models::SendAccessRequestModel>,
60 ) -> Result<models::SendFileDownloadDataResponseModel, Error>;
61
62 async fn get_send_file_download_data_using_auth<'a>(
64 &self,
65 file_id: &'a str,
66 access_token: &'a str,
67 ) -> Result<models::SendFileDownloadDataResponseModel, Error>;
68
69 async fn post<'a>(
71 &self,
72 send_request_model: Option<models::SendRequestModel>,
73 ) -> Result<models::SendResponseModel, Error>;
74
75 async fn post_file<'a>(
77 &self,
78 send_request_model: Option<models::SendRequestModel>,
79 ) -> Result<models::SendFileUploadDataResponseModel, Error>;
80
81 async fn post_file_for_existing_send<'a>(
83 &self,
84 id: &'a str,
85 file_id: &'a str,
86 ) -> Result<(), Error>;
87
88 async fn put<'a>(
90 &self,
91 id: &'a str,
92 send_request_model: Option<models::SendRequestModel>,
93 ) -> Result<models::SendResponseModel, Error>;
94
95 async fn put_remove_auth<'a>(&self, id: &'a str) -> Result<models::SendResponseModel, Error>;
97
98 async fn put_remove_password<'a>(
100 &self,
101 id: &'a str,
102 ) -> Result<models::SendResponseModel, Error>;
103
104 async fn renew_file_upload<'a>(
106 &self,
107 id: &'a str,
108 file_id: &'a str,
109 ) -> Result<models::SendFileUploadDataResponseModel, Error>;
110}
111
112pub struct SendsApiClient {
113 configuration: Arc<configuration::Configuration>,
114}
115
116impl SendsApiClient {
117 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
118 Self { configuration }
119 }
120}
121
122#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
123#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
124impl SendsApi for SendsApiClient {
125 async fn access<'a>(
126 &self,
127 id: &'a str,
128 send_access_request_model: Option<models::SendAccessRequestModel>,
129 ) -> Result<models::SendAccessResponseModel, Error> {
130 let local_var_configuration = &self.configuration;
131
132 let local_var_client = &local_var_configuration.client;
133
134 let local_var_uri_str = format!(
135 "{}/sends/access/{id}",
136 local_var_configuration.base_path,
137 id = crate::apis::urlencode(id)
138 );
139 let mut local_var_req_builder =
140 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
141
142 local_var_req_builder = local_var_req_builder.json(&send_access_request_model);
143
144 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
145 }
146
147 async fn access_using_auth<'a>(
148 &self,
149 access_token: &'a str,
150 ) -> Result<models::SendAccessResponseModel, Error> {
151 let local_var_configuration = &self.configuration;
152
153 let local_var_client = &local_var_configuration.client;
154
155 let local_var_uri_str = format!("{}/sends/access", local_var_configuration.base_path);
156 let mut local_var_req_builder =
157 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
158
159 local_var_req_builder = local_var_req_builder.header(
160 reqwest::header::AUTHORIZATION,
161 format!("Bearer {}", access_token),
162 );
163
164 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
165 }
166
167 async fn azure_validate_file(&self) -> Result<(), Error> {
168 let local_var_configuration = &self.configuration;
169
170 let local_var_client = &local_var_configuration.client;
171
172 let local_var_uri_str = format!(
173 "{}/sends/file/validate/azure",
174 local_var_configuration.base_path
175 );
176 let mut local_var_req_builder =
177 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
178
179 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
180 }
181
182 async fn delete<'a>(&self, id: &'a str) -> Result<(), Error> {
183 let local_var_configuration = &self.configuration;
184
185 let local_var_client = &local_var_configuration.client;
186
187 let local_var_uri_str = format!(
188 "{}/sends/{id}",
189 local_var_configuration.base_path,
190 id = crate::apis::urlencode(id)
191 );
192 let mut local_var_req_builder =
193 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
194
195 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
196
197 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
198 }
199
200 async fn get<'a>(&self, id: &'a str) -> Result<models::SendResponseModel, Error> {
201 let local_var_configuration = &self.configuration;
202
203 let local_var_client = &local_var_configuration.client;
204
205 let local_var_uri_str = format!(
206 "{}/sends/{id}",
207 local_var_configuration.base_path,
208 id = crate::apis::urlencode(id)
209 );
210 let mut local_var_req_builder =
211 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
212
213 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
214
215 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
216 }
217
218 async fn get_all(&self) -> Result<models::SendResponseModelListResponseModel, Error> {
219 let local_var_configuration = &self.configuration;
220
221 let local_var_client = &local_var_configuration.client;
222
223 let local_var_uri_str = format!("{}/sends", local_var_configuration.base_path);
224 let mut local_var_req_builder =
225 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
226
227 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
228
229 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
230 }
231
232 async fn get_send_file_download_data<'a>(
233 &self,
234 encoded_send_id: &'a str,
235 file_id: &'a str,
236 send_access_request_model: Option<models::SendAccessRequestModel>,
237 ) -> Result<models::SendFileDownloadDataResponseModel, Error> {
238 let local_var_configuration = &self.configuration;
239
240 let local_var_client = &local_var_configuration.client;
241
242 let local_var_uri_str = format!(
243 "{}/sends/{encodedSendId}/access/file/{fileId}",
244 local_var_configuration.base_path,
245 encodedSendId = crate::apis::urlencode(encoded_send_id),
246 fileId = crate::apis::urlencode(file_id)
247 );
248 let mut local_var_req_builder =
249 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
250
251 local_var_req_builder = local_var_req_builder.json(&send_access_request_model);
252
253 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
254 }
255
256 async fn get_send_file_download_data_using_auth<'a>(
257 &self,
258 file_id: &'a str,
259 access_token: &'a str,
260 ) -> Result<models::SendFileDownloadDataResponseModel, Error> {
261 let local_var_configuration = &self.configuration;
262
263 let local_var_client = &local_var_configuration.client;
264
265 let local_var_uri_str = format!(
266 "{}/sends/access/file/{fileId}",
267 local_var_configuration.base_path,
268 fileId = crate::apis::urlencode(file_id)
269 );
270 let mut local_var_req_builder =
271 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
272
273 local_var_req_builder = local_var_req_builder.header(
274 reqwest::header::AUTHORIZATION,
275 format!("Bearer {}", access_token),
276 );
277
278 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
279 }
280
281 async fn post<'a>(
282 &self,
283 send_request_model: Option<models::SendRequestModel>,
284 ) -> Result<models::SendResponseModel, Error> {
285 let local_var_configuration = &self.configuration;
286
287 let local_var_client = &local_var_configuration.client;
288
289 let local_var_uri_str = format!("{}/sends", local_var_configuration.base_path);
290 let mut local_var_req_builder =
291 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
292
293 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
294 local_var_req_builder = local_var_req_builder.json(&send_request_model);
295
296 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
297 }
298
299 async fn post_file<'a>(
300 &self,
301 send_request_model: Option<models::SendRequestModel>,
302 ) -> Result<models::SendFileUploadDataResponseModel, 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!("{}/sends/file/v2", local_var_configuration.base_path);
308 let mut local_var_req_builder =
309 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
310
311 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
312 local_var_req_builder = local_var_req_builder.json(&send_request_model);
313
314 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
315 }
316
317 async fn post_file_for_existing_send<'a>(
318 &self,
319 id: &'a str,
320 file_id: &'a str,
321 ) -> Result<(), Error> {
322 let local_var_configuration = &self.configuration;
323
324 let local_var_client = &local_var_configuration.client;
325
326 let local_var_uri_str = format!(
327 "{}/sends/{id}/file/{fileId}",
328 local_var_configuration.base_path,
329 id = crate::apis::urlencode(id),
330 fileId = crate::apis::urlencode(file_id)
331 );
332 let mut local_var_req_builder =
333 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
334
335 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
336
337 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
338 }
339
340 async fn put<'a>(
341 &self,
342 id: &'a str,
343 send_request_model: Option<models::SendRequestModel>,
344 ) -> Result<models::SendResponseModel, Error> {
345 let local_var_configuration = &self.configuration;
346
347 let local_var_client = &local_var_configuration.client;
348
349 let local_var_uri_str = format!(
350 "{}/sends/{id}",
351 local_var_configuration.base_path,
352 id = crate::apis::urlencode(id)
353 );
354 let mut local_var_req_builder =
355 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
356
357 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
358 local_var_req_builder = local_var_req_builder.json(&send_request_model);
359
360 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
361 }
362
363 async fn put_remove_auth<'a>(&self, id: &'a str) -> Result<models::SendResponseModel, Error> {
364 let local_var_configuration = &self.configuration;
365
366 let local_var_client = &local_var_configuration.client;
367
368 let local_var_uri_str = format!(
369 "{}/sends/{id}/remove-auth",
370 local_var_configuration.base_path,
371 id = crate::apis::urlencode(id)
372 );
373 let mut local_var_req_builder =
374 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
375
376 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
377
378 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
379 }
380
381 async fn put_remove_password<'a>(
382 &self,
383 id: &'a str,
384 ) -> Result<models::SendResponseModel, Error> {
385 let local_var_configuration = &self.configuration;
386
387 let local_var_client = &local_var_configuration.client;
388
389 let local_var_uri_str = format!(
390 "{}/sends/{id}/remove-password",
391 local_var_configuration.base_path,
392 id = crate::apis::urlencode(id)
393 );
394 let mut local_var_req_builder =
395 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
396
397 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
398
399 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
400 }
401
402 async fn renew_file_upload<'a>(
403 &self,
404 id: &'a str,
405 file_id: &'a str,
406 ) -> Result<models::SendFileUploadDataResponseModel, Error> {
407 let local_var_configuration = &self.configuration;
408
409 let local_var_client = &local_var_configuration.client;
410
411 let local_var_uri_str = format!(
412 "{}/sends/{id}/file/{fileId}",
413 local_var_configuration.base_path,
414 id = crate::apis::urlencode(id),
415 fileId = crate::apis::urlencode(file_id)
416 );
417 let mut local_var_req_builder =
418 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
419
420 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
421
422 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
423 }
424}