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::{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_user_agent) = local_var_configuration.user_agent {
89            local_var_req_builder = local_var_req_builder
90                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
91        }
92        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
93            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
94        };
95        local_var_req_builder = local_var_req_builder.json(&push_update_request_model);
96
97        let local_var_req = local_var_req_builder.build()?;
98        let local_var_resp = local_var_client.execute(local_var_req).await?;
99
100        let local_var_status = local_var_resp.status();
101        let local_var_content = local_var_resp.text().await?;
102
103        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
104            Ok(())
105        } else {
106            let local_var_entity: Option<AddOrganizationError> =
107                serde_json::from_str(&local_var_content).ok();
108            let local_var_error = ResponseContent {
109                status: local_var_status,
110                content: local_var_content,
111                entity: local_var_entity,
112            };
113            Err(Error::ResponseError(local_var_error))
114        }
115    }
116
117    async fn delete<'a>(
118        &self,
119        push_device_request_model: Option<models::PushDeviceRequestModel>,
120    ) -> Result<(), Error<DeleteError>> {
121        let local_var_configuration = &self.configuration;
122
123        let local_var_client = &local_var_configuration.client;
124
125        let local_var_uri_str = format!("{}/push/delete", local_var_configuration.base_path);
126        let mut local_var_req_builder =
127            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
128
129        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
130            local_var_req_builder = local_var_req_builder
131                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
132        }
133        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
134            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
135        };
136        local_var_req_builder = local_var_req_builder.json(&push_device_request_model);
137
138        let local_var_req = local_var_req_builder.build()?;
139        let local_var_resp = local_var_client.execute(local_var_req).await?;
140
141        let local_var_status = local_var_resp.status();
142        let local_var_content = local_var_resp.text().await?;
143
144        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
145            Ok(())
146        } else {
147            let local_var_entity: Option<DeleteError> =
148                serde_json::from_str(&local_var_content).ok();
149            let local_var_error = ResponseContent {
150                status: local_var_status,
151                content: local_var_content,
152                entity: local_var_entity,
153            };
154            Err(Error::ResponseError(local_var_error))
155        }
156    }
157
158    async fn delete_organization<'a>(
159        &self,
160        push_update_request_model: Option<models::PushUpdateRequestModel>,
161    ) -> Result<(), Error<DeleteOrganizationError>> {
162        let local_var_configuration = &self.configuration;
163
164        let local_var_client = &local_var_configuration.client;
165
166        let local_var_uri_str = format!(
167            "{}/push/delete-organization",
168            local_var_configuration.base_path
169        );
170        let mut local_var_req_builder =
171            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
172
173        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
174            local_var_req_builder = local_var_req_builder
175                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
176        }
177        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
178            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
179        };
180        local_var_req_builder = local_var_req_builder.json(&push_update_request_model);
181
182        let local_var_req = local_var_req_builder.build()?;
183        let local_var_resp = local_var_client.execute(local_var_req).await?;
184
185        let local_var_status = local_var_resp.status();
186        let local_var_content = local_var_resp.text().await?;
187
188        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
189            Ok(())
190        } else {
191            let local_var_entity: Option<DeleteOrganizationError> =
192                serde_json::from_str(&local_var_content).ok();
193            let local_var_error = ResponseContent {
194                status: local_var_status,
195                content: local_var_content,
196                entity: local_var_entity,
197            };
198            Err(Error::ResponseError(local_var_error))
199        }
200    }
201
202    async fn register<'a>(
203        &self,
204        push_registration_request_model: Option<models::PushRegistrationRequestModel>,
205    ) -> Result<(), Error<RegisterError>> {
206        let local_var_configuration = &self.configuration;
207
208        let local_var_client = &local_var_configuration.client;
209
210        let local_var_uri_str = format!("{}/push/register", local_var_configuration.base_path);
211        let mut local_var_req_builder =
212            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
213
214        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
215            local_var_req_builder = local_var_req_builder
216                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
217        }
218        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
219            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
220        };
221        local_var_req_builder = local_var_req_builder.json(&push_registration_request_model);
222
223        let local_var_req = local_var_req_builder.build()?;
224        let local_var_resp = local_var_client.execute(local_var_req).await?;
225
226        let local_var_status = local_var_resp.status();
227        let local_var_content = local_var_resp.text().await?;
228
229        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
230            Ok(())
231        } else {
232            let local_var_entity: Option<RegisterError> =
233                serde_json::from_str(&local_var_content).ok();
234            let local_var_error = ResponseContent {
235                status: local_var_status,
236                content: local_var_content,
237                entity: local_var_entity,
238            };
239            Err(Error::ResponseError(local_var_error))
240        }
241    }
242
243    async fn send<'a>(
244        &self,
245        json_element_push_send_request_model: Option<models::JsonElementPushSendRequestModel>,
246    ) -> Result<(), Error<SendError>> {
247        let local_var_configuration = &self.configuration;
248
249        let local_var_client = &local_var_configuration.client;
250
251        let local_var_uri_str = format!("{}/push/send", local_var_configuration.base_path);
252        let mut local_var_req_builder =
253            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
254
255        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
256            local_var_req_builder = local_var_req_builder
257                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
258        }
259        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
260            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
261        };
262        local_var_req_builder = local_var_req_builder.json(&json_element_push_send_request_model);
263
264        let local_var_req = local_var_req_builder.build()?;
265        let local_var_resp = local_var_client.execute(local_var_req).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<SendError> = serde_json::from_str(&local_var_content).ok();
274            let local_var_error = ResponseContent {
275                status: local_var_status,
276                content: local_var_content,
277                entity: local_var_entity,
278            };
279            Err(Error::ResponseError(local_var_error))
280        }
281    }
282}
283
284/// struct for typed errors of method [`PushApi::add_organization`]
285#[derive(Debug, Clone, Serialize, Deserialize)]
286#[serde(untagged)]
287pub enum AddOrganizationError {
288    UnknownValue(serde_json::Value),
289}
290/// struct for typed errors of method [`PushApi::delete`]
291#[derive(Debug, Clone, Serialize, Deserialize)]
292#[serde(untagged)]
293pub enum DeleteError {
294    UnknownValue(serde_json::Value),
295}
296/// struct for typed errors of method [`PushApi::delete_organization`]
297#[derive(Debug, Clone, Serialize, Deserialize)]
298#[serde(untagged)]
299pub enum DeleteOrganizationError {
300    UnknownValue(serde_json::Value),
301}
302/// struct for typed errors of method [`PushApi::register`]
303#[derive(Debug, Clone, Serialize, Deserialize)]
304#[serde(untagged)]
305pub enum RegisterError {
306    UnknownValue(serde_json::Value),
307}
308/// struct for typed errors of method [`PushApi::send`]
309#[derive(Debug, Clone, Serialize, Deserialize)]
310#[serde(untagged)]
311pub enum SendError {
312    UnknownValue(serde_json::Value),
313}