Skip to main content

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