1use super::{configuration, ContentType, Error};
12use crate::{apis::ResponseContent, models};
13use reqwest;
14use serde::{de::Error as _, Deserialize, Serialize};
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum CreateWebhookError {
20 Status400(models::ErrorModel),
21 UnknownValue(serde_json::Value),
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum DeleteWebhookError {
28 Status400(models::ErrorModel),
29 Status404(models::ErrorModel),
30 UnknownValue(serde_json::Value),
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(untagged)]
36pub enum ExportWebhooksHistoryError {
37 Status400(models::ErrorModel),
38 UnknownValue(serde_json::Value),
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
43#[serde(untagged)]
44pub enum GetWebhookError {
45 Status400(models::ErrorModel),
46 Status404(models::ErrorModel),
47 UnknownValue(serde_json::Value),
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
52#[serde(untagged)]
53pub enum GetWebhooksError {
54 Status400(models::ErrorModel),
55 UnknownValue(serde_json::Value),
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum UpdateWebhookError {
62 Status400(models::ErrorModel),
63 Status404(models::ErrorModel),
64 UnknownValue(serde_json::Value),
65}
66
67pub async fn create_webhook(
68 configuration: &configuration::Configuration,
69 create_webhook: models::CreateWebhook,
70) -> Result<models::CreateModel, Error<CreateWebhookError>> {
71 let p_create_webhook = create_webhook;
73
74 let uri_str = format!("{}/webhooks", configuration.base_path);
75 let mut req_builder = configuration
76 .client
77 .request(reqwest::Method::POST, &uri_str);
78
79 if let Some(ref user_agent) = configuration.user_agent {
80 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
81 }
82 if let Some(ref apikey) = configuration.api_key {
83 let key = apikey.key.clone();
84 let value = match apikey.prefix {
85 Some(ref prefix) => format!("{} {}", prefix, key),
86 None => key,
87 };
88 req_builder = req_builder.header("api-key", value);
89 };
90 req_builder = req_builder.json(&p_create_webhook);
91
92 let req = req_builder.build()?;
93 let resp = configuration.client.execute(req).await?;
94
95 let status = resp.status();
96 let content_type = resp
97 .headers()
98 .get("content-type")
99 .and_then(|v| v.to_str().ok())
100 .unwrap_or("application/octet-stream");
101 let content_type = super::ContentType::from(content_type);
102
103 if !status.is_client_error() && !status.is_server_error() {
104 let content = resp.text().await?;
105 match content_type {
106 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
107 ContentType::Text => Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::CreateModel`"))),
108 ContentType::Unsupported(unknown_type) => Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::CreateModel`")))),
109 }
110 } else {
111 let content = resp.text().await?;
112 let entity: Option<CreateWebhookError> = serde_json::from_str(&content).ok();
113 Err(Error::ResponseError(ResponseContent {
114 status,
115 content,
116 entity,
117 }))
118 }
119}
120
121pub async fn delete_webhook(
122 configuration: &configuration::Configuration,
123 webhook_id: i64,
124) -> Result<(), Error<DeleteWebhookError>> {
125 let p_webhook_id = webhook_id;
127
128 let uri_str = format!(
129 "{}/webhooks/{webhookId}",
130 configuration.base_path,
131 webhookId = p_webhook_id
132 );
133 let mut req_builder = configuration
134 .client
135 .request(reqwest::Method::DELETE, &uri_str);
136
137 if let Some(ref user_agent) = configuration.user_agent {
138 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
139 }
140 if let Some(ref apikey) = configuration.api_key {
141 let key = apikey.key.clone();
142 let value = match apikey.prefix {
143 Some(ref prefix) => format!("{} {}", prefix, key),
144 None => key,
145 };
146 req_builder = req_builder.header("api-key", value);
147 };
148
149 let req = req_builder.build()?;
150 let resp = configuration.client.execute(req).await?;
151
152 let status = resp.status();
153
154 if !status.is_client_error() && !status.is_server_error() {
155 Ok(())
156 } else {
157 let content = resp.text().await?;
158 let entity: Option<DeleteWebhookError> = serde_json::from_str(&content).ok();
159 Err(Error::ResponseError(ResponseContent {
160 status,
161 content,
162 entity,
163 }))
164 }
165}
166
167pub async fn export_webhooks_history(
169 configuration: &configuration::Configuration,
170 export_webhooks_history_request: models::ExportWebhooksHistoryRequest,
171) -> Result<models::CreatedProcessId, Error<ExportWebhooksHistoryError>> {
172 let p_export_webhooks_history_request = export_webhooks_history_request;
174
175 let uri_str = format!("{}/webhooks/export", configuration.base_path);
176 let mut req_builder = configuration
177 .client
178 .request(reqwest::Method::POST, &uri_str);
179
180 if let Some(ref user_agent) = configuration.user_agent {
181 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
182 }
183 if let Some(ref apikey) = configuration.api_key {
184 let key = apikey.key.clone();
185 let value = match apikey.prefix {
186 Some(ref prefix) => format!("{} {}", prefix, key),
187 None => key,
188 };
189 req_builder = req_builder.header("api-key", value);
190 };
191 req_builder = req_builder.json(&p_export_webhooks_history_request);
192
193 let req = req_builder.build()?;
194 let resp = configuration.client.execute(req).await?;
195
196 let status = resp.status();
197 let content_type = resp
198 .headers()
199 .get("content-type")
200 .and_then(|v| v.to_str().ok())
201 .unwrap_or("application/octet-stream");
202 let content_type = super::ContentType::from(content_type);
203
204 if !status.is_client_error() && !status.is_server_error() {
205 let content = resp.text().await?;
206 match content_type {
207 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
208 ContentType::Text => Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::CreatedProcessId`"))),
209 ContentType::Unsupported(unknown_type) => Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::CreatedProcessId`")))),
210 }
211 } else {
212 let content = resp.text().await?;
213 let entity: Option<ExportWebhooksHistoryError> = serde_json::from_str(&content).ok();
214 Err(Error::ResponseError(ResponseContent {
215 status,
216 content,
217 entity,
218 }))
219 }
220}
221
222pub async fn get_webhook(
223 configuration: &configuration::Configuration,
224 webhook_id: i64,
225) -> Result<models::GetWebhook, Error<GetWebhookError>> {
226 let p_webhook_id = webhook_id;
228
229 let uri_str = format!(
230 "{}/webhooks/{webhookId}",
231 configuration.base_path,
232 webhookId = p_webhook_id
233 );
234 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
235
236 if let Some(ref user_agent) = configuration.user_agent {
237 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
238 }
239 if let Some(ref apikey) = configuration.api_key {
240 let key = apikey.key.clone();
241 let value = match apikey.prefix {
242 Some(ref prefix) => format!("{} {}", prefix, key),
243 None => key,
244 };
245 req_builder = req_builder.header("api-key", value);
246 };
247
248 let req = req_builder.build()?;
249 let resp = configuration.client.execute(req).await?;
250
251 let status = resp.status();
252 let content_type = resp
253 .headers()
254 .get("content-type")
255 .and_then(|v| v.to_str().ok())
256 .unwrap_or("application/octet-stream");
257 let content_type = super::ContentType::from(content_type);
258
259 if !status.is_client_error() && !status.is_server_error() {
260 let content = resp.text().await?;
261 match content_type {
262 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
263 ContentType::Text => Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::GetWebhook`"))),
264 ContentType::Unsupported(unknown_type) => Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::GetWebhook`")))),
265 }
266 } else {
267 let content = resp.text().await?;
268 let entity: Option<GetWebhookError> = serde_json::from_str(&content).ok();
269 Err(Error::ResponseError(ResponseContent {
270 status,
271 content,
272 entity,
273 }))
274 }
275}
276
277pub async fn get_webhooks(
278 configuration: &configuration::Configuration,
279 r#type: Option<&str>,
280 sort: Option<&str>,
281) -> Result<models::GetWebhooks, Error<GetWebhooksError>> {
282 let p_type = r#type;
284 let p_sort = sort;
285
286 let uri_str = format!("{}/webhooks", configuration.base_path);
287 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
288
289 if let Some(ref param_value) = p_type {
290 req_builder = req_builder.query(&[("type", ¶m_value.to_string())]);
291 }
292 if let Some(ref param_value) = p_sort {
293 req_builder = req_builder.query(&[("sort", ¶m_value.to_string())]);
294 }
295 if let Some(ref user_agent) = configuration.user_agent {
296 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
297 }
298 if let Some(ref apikey) = configuration.api_key {
299 let key = apikey.key.clone();
300 let value = match apikey.prefix {
301 Some(ref prefix) => format!("{} {}", prefix, key),
302 None => key,
303 };
304 req_builder = req_builder.header("api-key", value);
305 };
306
307 let req = req_builder.build()?;
308 let resp = configuration.client.execute(req).await?;
309
310 let status = resp.status();
311 let content_type = resp
312 .headers()
313 .get("content-type")
314 .and_then(|v| v.to_str().ok())
315 .unwrap_or("application/octet-stream");
316 let content_type = super::ContentType::from(content_type);
317
318 if !status.is_client_error() && !status.is_server_error() {
319 let content = resp.text().await?;
320 match content_type {
321 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
322 ContentType::Text => Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::GetWebhooks`"))),
323 ContentType::Unsupported(unknown_type) => Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::GetWebhooks`")))),
324 }
325 } else {
326 let content = resp.text().await?;
327 let entity: Option<GetWebhooksError> = serde_json::from_str(&content).ok();
328 Err(Error::ResponseError(ResponseContent {
329 status,
330 content,
331 entity,
332 }))
333 }
334}
335
336pub async fn update_webhook(
337 configuration: &configuration::Configuration,
338 webhook_id: i64,
339 update_webhook: models::UpdateWebhook,
340) -> Result<(), Error<UpdateWebhookError>> {
341 let p_webhook_id = webhook_id;
343 let p_update_webhook = update_webhook;
344
345 let uri_str = format!(
346 "{}/webhooks/{webhookId}",
347 configuration.base_path,
348 webhookId = p_webhook_id
349 );
350 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
351
352 if let Some(ref user_agent) = configuration.user_agent {
353 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
354 }
355 if let Some(ref apikey) = configuration.api_key {
356 let key = apikey.key.clone();
357 let value = match apikey.prefix {
358 Some(ref prefix) => format!("{} {}", prefix, key),
359 None => key,
360 };
361 req_builder = req_builder.header("api-key", value);
362 };
363 req_builder = req_builder.json(&p_update_webhook);
364
365 let req = req_builder.build()?;
366 let resp = configuration.client.execute(req).await?;
367
368 let status = resp.status();
369
370 if !status.is_client_error() && !status.is_server_error() {
371 Ok(())
372 } else {
373 let content = resp.text().await?;
374 let entity: Option<UpdateWebhookError> = serde_json::from_str(&content).ok();
375 Err(Error::ResponseError(ResponseContent {
376 status,
377 content,
378 entity,
379 }))
380 }
381}