bitwarden_api_api/apis/
push_api.rs

1/*
2 * Bitwarden Internal API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: latest
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use 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 PushApi: Send + Sync {
29    /// PUT /push/add-organization
30    async fn add_organization<'a>(
31        &self,
32        push_update_request_model: Option<models::PushUpdateRequestModel>,
33    ) -> Result<(), Error<AddOrganizationError>>;
34
35    /// POST /push/delete
36    async fn delete<'a>(
37        &self,
38        push_device_request_model: Option<models::PushDeviceRequestModel>,
39    ) -> Result<(), Error<DeleteError>>;
40
41    /// PUT /push/delete-organization
42    async fn delete_organization<'a>(
43        &self,
44        push_update_request_model: Option<models::PushUpdateRequestModel>,
45    ) -> Result<(), Error<DeleteOrganizationError>>;
46
47    /// POST /push/register
48    async fn register<'a>(
49        &self,
50        push_registration_request_model: Option<models::PushRegistrationRequestModel>,
51    ) -> Result<(), Error<RegisterError>>;
52
53    /// POST /push/send
54    async fn send<'a>(
55        &self,
56        json_element_push_send_request_model: Option<models::JsonElementPushSendRequestModel>,
57    ) -> Result<(), Error<SendError>>;
58}
59
60pub struct PushApiClient {
61    configuration: Arc<configuration::Configuration>,
62}
63
64impl PushApiClient {
65    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
66        Self { configuration }
67    }
68}
69
70#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
71#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
72impl PushApi for PushApiClient {
73    async fn add_organization<'a>(
74        &self,
75        push_update_request_model: Option<models::PushUpdateRequestModel>,
76    ) -> Result<(), Error<AddOrganizationError>> {
77        let local_var_configuration = &self.configuration;
78
79        let local_var_client = &local_var_configuration.client;
80
81        let local_var_uri_str = format!(
82            "{}/push/add-organization",
83            local_var_configuration.base_path
84        );
85        let mut local_var_req_builder =
86            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
87
88        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
89            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
90        };
91        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
92        local_var_req_builder = local_var_req_builder.json(&push_update_request_model);
93
94        let local_var_req = local_var_req_builder.build()?;
95        let local_var_resp = local_var_client.execute(local_var_req).await?;
96
97        let local_var_status = local_var_resp.status();
98        let local_var_content = local_var_resp.text().await?;
99
100        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
101            Ok(())
102        } else {
103            let local_var_entity: Option<AddOrganizationError> =
104                serde_json::from_str(&local_var_content).ok();
105            let local_var_error = ResponseContent {
106                status: local_var_status,
107                content: local_var_content,
108                entity: local_var_entity,
109            };
110            Err(Error::ResponseError(local_var_error))
111        }
112    }
113
114    async fn delete<'a>(
115        &self,
116        push_device_request_model: Option<models::PushDeviceRequestModel>,
117    ) -> Result<(), Error<DeleteError>> {
118        let local_var_configuration = &self.configuration;
119
120        let local_var_client = &local_var_configuration.client;
121
122        let local_var_uri_str = format!("{}/push/delete", local_var_configuration.base_path);
123        let mut local_var_req_builder =
124            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
125
126        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
127            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
128        };
129        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
130        local_var_req_builder = local_var_req_builder.json(&push_device_request_model);
131
132        let local_var_req = local_var_req_builder.build()?;
133        let local_var_resp = local_var_client.execute(local_var_req).await?;
134
135        let local_var_status = local_var_resp.status();
136        let local_var_content = local_var_resp.text().await?;
137
138        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
139            Ok(())
140        } else {
141            let local_var_entity: Option<DeleteError> =
142                serde_json::from_str(&local_var_content).ok();
143            let local_var_error = ResponseContent {
144                status: local_var_status,
145                content: local_var_content,
146                entity: local_var_entity,
147            };
148            Err(Error::ResponseError(local_var_error))
149        }
150    }
151
152    async fn delete_organization<'a>(
153        &self,
154        push_update_request_model: Option<models::PushUpdateRequestModel>,
155    ) -> Result<(), Error<DeleteOrganizationError>> {
156        let local_var_configuration = &self.configuration;
157
158        let local_var_client = &local_var_configuration.client;
159
160        let local_var_uri_str = format!(
161            "{}/push/delete-organization",
162            local_var_configuration.base_path
163        );
164        let mut local_var_req_builder =
165            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
166
167        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
168            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
169        };
170        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
171        local_var_req_builder = local_var_req_builder.json(&push_update_request_model);
172
173        let local_var_req = local_var_req_builder.build()?;
174        let local_var_resp = local_var_client.execute(local_var_req).await?;
175
176        let local_var_status = local_var_resp.status();
177        let local_var_content = local_var_resp.text().await?;
178
179        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
180            Ok(())
181        } else {
182            let local_var_entity: Option<DeleteOrganizationError> =
183                serde_json::from_str(&local_var_content).ok();
184            let local_var_error = ResponseContent {
185                status: local_var_status,
186                content: local_var_content,
187                entity: local_var_entity,
188            };
189            Err(Error::ResponseError(local_var_error))
190        }
191    }
192
193    async fn register<'a>(
194        &self,
195        push_registration_request_model: Option<models::PushRegistrationRequestModel>,
196    ) -> Result<(), Error<RegisterError>> {
197        let local_var_configuration = &self.configuration;
198
199        let local_var_client = &local_var_configuration.client;
200
201        let local_var_uri_str = format!("{}/push/register", local_var_configuration.base_path);
202        let mut local_var_req_builder =
203            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
204
205        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
206            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
207        };
208        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
209        local_var_req_builder = local_var_req_builder.json(&push_registration_request_model);
210
211        let local_var_req = local_var_req_builder.build()?;
212        let local_var_resp = local_var_client.execute(local_var_req).await?;
213
214        let local_var_status = local_var_resp.status();
215        let local_var_content = local_var_resp.text().await?;
216
217        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
218            Ok(())
219        } else {
220            let local_var_entity: Option<RegisterError> =
221                serde_json::from_str(&local_var_content).ok();
222            let local_var_error = ResponseContent {
223                status: local_var_status,
224                content: local_var_content,
225                entity: local_var_entity,
226            };
227            Err(Error::ResponseError(local_var_error))
228        }
229    }
230
231    async fn send<'a>(
232        &self,
233        json_element_push_send_request_model: Option<models::JsonElementPushSendRequestModel>,
234    ) -> Result<(), Error<SendError>> {
235        let local_var_configuration = &self.configuration;
236
237        let local_var_client = &local_var_configuration.client;
238
239        let local_var_uri_str = format!("{}/push/send", local_var_configuration.base_path);
240        let mut local_var_req_builder =
241            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
242
243        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
244            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
245        };
246        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
247        local_var_req_builder = local_var_req_builder.json(&json_element_push_send_request_model);
248
249        let local_var_req = local_var_req_builder.build()?;
250        let local_var_resp = local_var_client.execute(local_var_req).await?;
251
252        let local_var_status = local_var_resp.status();
253        let local_var_content = local_var_resp.text().await?;
254
255        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
256            Ok(())
257        } else {
258            let local_var_entity: Option<SendError> = serde_json::from_str(&local_var_content).ok();
259            let local_var_error = ResponseContent {
260                status: local_var_status,
261                content: local_var_content,
262                entity: local_var_entity,
263            };
264            Err(Error::ResponseError(local_var_error))
265        }
266    }
267}
268
269/// struct for typed errors of method [`PushApi::add_organization`]
270#[derive(Debug, Clone, Serialize, Deserialize)]
271#[serde(untagged)]
272pub enum AddOrganizationError {
273    UnknownValue(serde_json::Value),
274}
275/// struct for typed errors of method [`PushApi::delete`]
276#[derive(Debug, Clone, Serialize, Deserialize)]
277#[serde(untagged)]
278pub enum DeleteError {
279    UnknownValue(serde_json::Value),
280}
281/// struct for typed errors of method [`PushApi::delete_organization`]
282#[derive(Debug, Clone, Serialize, Deserialize)]
283#[serde(untagged)]
284pub enum DeleteOrganizationError {
285    UnknownValue(serde_json::Value),
286}
287/// struct for typed errors of method [`PushApi::register`]
288#[derive(Debug, Clone, Serialize, Deserialize)]
289#[serde(untagged)]
290pub enum RegisterError {
291    UnknownValue(serde_json::Value),
292}
293/// struct for typed errors of method [`PushApi::send`]
294#[derive(Debug, Clone, Serialize, Deserialize)]
295#[serde(untagged)]
296pub enum SendError {
297    UnknownValue(serde_json::Value),
298}