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