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 PushApi: Send + Sync {
29 async fn add_organization<'a>(
31 &self,
32 push_update_request_model: Option<models::PushUpdateRequestModel>,
33 ) -> Result<(), Error<AddOrganizationError>>;
34
35 async fn delete<'a>(
37 &self,
38 push_device_request_model: Option<models::PushDeviceRequestModel>,
39 ) -> Result<(), Error<DeleteError>>;
40
41 async fn delete_organization<'a>(
43 &self,
44 push_update_request_model: Option<models::PushUpdateRequestModel>,
45 ) -> Result<(), Error<DeleteOrganizationError>>;
46
47 async fn register<'a>(
49 &self,
50 push_registration_request_model: Option<models::PushRegistrationRequestModel>,
51 ) -> Result<(), Error<RegisterError>>;
52
53 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#[derive(Debug, Clone, Serialize, Deserialize)]
251#[serde(untagged)]
252pub enum AddOrganizationError {
253 UnknownValue(serde_json::Value),
254}
255#[derive(Debug, Clone, Serialize, Deserialize)]
257#[serde(untagged)]
258pub enum DeleteError {
259 UnknownValue(serde_json::Value),
260}
261#[derive(Debug, Clone, Serialize, Deserialize)]
263#[serde(untagged)]
264pub enum DeleteOrganizationError {
265 UnknownValue(serde_json::Value),
266}
267#[derive(Debug, Clone, Serialize, Deserialize)]
269#[serde(untagged)]
270pub enum RegisterError {
271 UnknownValue(serde_json::Value),
272}
273#[derive(Debug, Clone, Serialize, Deserialize)]
275#[serde(untagged)]
276pub enum SendError {
277 UnknownValue(serde_json::Value),
278}