1use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum CreateSmsCampaignError {
22 Status400(crate::models::ErrorModel),
23 UnknownValue(serde_json::Value),
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum DeleteSmsCampaignError {
30 Status404(crate::models::ErrorModel),
31 Status400(crate::models::ErrorModel),
32 UnknownValue(serde_json::Value),
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37#[serde(untagged)]
38pub enum GetSmsCampaignError {
39 Status400(crate::models::ErrorModel),
40 Status404(crate::models::ErrorModel),
41 UnknownValue(serde_json::Value),
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(untagged)]
47pub enum GetSmsCampaignsError {
48 Status400(crate::models::ErrorModel),
49 UnknownValue(serde_json::Value),
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
54#[serde(untagged)]
55pub enum RequestSmsRecipientExportError {
56 Status400(crate::models::ErrorModel),
57 Status404(crate::models::ErrorModel),
58 UnknownValue(serde_json::Value),
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
63#[serde(untagged)]
64pub enum SendSmsCampaignNowError {
65 Status400(crate::models::ErrorModel),
66 Status402(crate::models::ErrorModel),
67 Status404(crate::models::ErrorModel),
68 UnknownValue(serde_json::Value),
69}
70
71#[derive(Debug, Clone, Serialize, Deserialize)]
73#[serde(untagged)]
74pub enum SendSmsReportError {
75 Status400(crate::models::ErrorModel),
76 Status404(crate::models::ErrorModel),
77 UnknownValue(serde_json::Value),
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize)]
82#[serde(untagged)]
83pub enum SendTestSmsError {
84 Status400(crate::models::PostSendSmsTestFailed),
85 Status404(crate::models::ErrorModel),
86 UnknownValue(serde_json::Value),
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
91#[serde(untagged)]
92pub enum UpdateSmsCampaignError {
93 Status400(crate::models::ErrorModel),
94 Status404(crate::models::ErrorModel),
95 UnknownValue(serde_json::Value),
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize)]
100#[serde(untagged)]
101pub enum UpdateSmsCampaignStatusError {
102 Status400(crate::models::ErrorModel),
103 Status404(crate::models::ErrorModel),
104 UnknownValue(serde_json::Value),
105}
106
107
108pub async fn create_sms_campaign(configuration: &configuration::Configuration, create_sms_campaign: crate::models::CreateSmsCampaign) -> Result<crate::models::CreateModel, Error<CreateSmsCampaignError>> {
109 let local_var_configuration = configuration;
110
111 let local_var_client = &local_var_configuration.client;
112
113 let local_var_uri_str = format!("{}/smsCampaigns", local_var_configuration.base_path);
114 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
115
116 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
117 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
118 }
119 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
120 let local_var_key = local_var_apikey.key.clone();
121 let local_var_value = match local_var_apikey.prefix {
122 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
123 None => local_var_key,
124 };
125 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
126 };
127 local_var_req_builder = local_var_req_builder.json(&create_sms_campaign);
128
129 let local_var_req = local_var_req_builder.build()?;
130 let local_var_resp = local_var_client.execute(local_var_req).await?;
131
132 let local_var_status = local_var_resp.status();
133 let local_var_content = local_var_resp.text().await?;
134
135 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
136 serde_json::from_str(&local_var_content).map_err(Error::from)
137 } else {
138 let local_var_entity: Option<CreateSmsCampaignError> = serde_json::from_str(&local_var_content).ok();
139 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
140 Err(Error::ResponseError(local_var_error))
141 }
142}
143
144pub async fn delete_sms_campaign(configuration: &configuration::Configuration, campaign_id: i64) -> Result<(), Error<DeleteSmsCampaignError>> {
145 let local_var_configuration = configuration;
146
147 let local_var_client = &local_var_configuration.client;
148
149 let local_var_uri_str = format!("{}/smsCampaigns/{campaignId}", local_var_configuration.base_path, campaignId=campaign_id);
150 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
151
152 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
153 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
154 }
155 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
156 let local_var_key = local_var_apikey.key.clone();
157 let local_var_value = match local_var_apikey.prefix {
158 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
159 None => local_var_key,
160 };
161 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
162 };
163
164 let local_var_req = local_var_req_builder.build()?;
165 let local_var_resp = local_var_client.execute(local_var_req).await?;
166
167 let local_var_status = local_var_resp.status();
168 let local_var_content = local_var_resp.text().await?;
169
170 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
171 Ok(())
172 } else {
173 let local_var_entity: Option<DeleteSmsCampaignError> = serde_json::from_str(&local_var_content).ok();
174 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
175 Err(Error::ResponseError(local_var_error))
176 }
177}
178
179pub async fn get_sms_campaign(configuration: &configuration::Configuration, campaign_id: i64) -> Result<crate::models::GetSmsCampaign, Error<GetSmsCampaignError>> {
180 let local_var_configuration = configuration;
181
182 let local_var_client = &local_var_configuration.client;
183
184 let local_var_uri_str = format!("{}/smsCampaigns/{campaignId}", local_var_configuration.base_path, campaignId=campaign_id);
185 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
186
187 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
188 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
189 }
190 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
191 let local_var_key = local_var_apikey.key.clone();
192 let local_var_value = match local_var_apikey.prefix {
193 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
194 None => local_var_key,
195 };
196 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
197 };
198
199 let local_var_req = local_var_req_builder.build()?;
200 let local_var_resp = local_var_client.execute(local_var_req).await?;
201
202 let local_var_status = local_var_resp.status();
203 let local_var_content = local_var_resp.text().await?;
204
205 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
206 serde_json::from_str(&local_var_content).map_err(Error::from)
207 } else {
208 let local_var_entity: Option<GetSmsCampaignError> = serde_json::from_str(&local_var_content).ok();
209 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
210 Err(Error::ResponseError(local_var_error))
211 }
212}
213
214pub async fn get_sms_campaigns(configuration: &configuration::Configuration, status: Option<&str>, start_date: Option<String>, end_date: Option<String>, limit: Option<i64>, offset: Option<i64>) -> Result<crate::models::GetSmsCampaigns, Error<GetSmsCampaignsError>> {
215 let local_var_configuration = configuration;
216
217 let local_var_client = &local_var_configuration.client;
218
219 let local_var_uri_str = format!("{}/smsCampaigns", local_var_configuration.base_path);
220 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
221
222 if let Some(ref local_var_str) = status {
223 local_var_req_builder = local_var_req_builder.query(&[("status", &local_var_str.to_string())]);
224 }
225 if let Some(ref local_var_str) = start_date {
226 local_var_req_builder = local_var_req_builder.query(&[("startDate", &local_var_str.to_string())]);
227 }
228 if let Some(ref local_var_str) = end_date {
229 local_var_req_builder = local_var_req_builder.query(&[("endDate", &local_var_str.to_string())]);
230 }
231 if let Some(ref local_var_str) = limit {
232 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
233 }
234 if let Some(ref local_var_str) = offset {
235 local_var_req_builder = local_var_req_builder.query(&[("offset", &local_var_str.to_string())]);
236 }
237 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
238 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
239 }
240 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
241 let local_var_key = local_var_apikey.key.clone();
242 let local_var_value = match local_var_apikey.prefix {
243 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
244 None => local_var_key,
245 };
246 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
247 };
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 serde_json::from_str(&local_var_content).map_err(Error::from)
257 } else {
258 let local_var_entity: Option<GetSmsCampaignsError> = serde_json::from_str(&local_var_content).ok();
259 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
260 Err(Error::ResponseError(local_var_error))
261 }
262}
263
264pub async fn request_sms_recipient_export(configuration: &configuration::Configuration, campaign_id: i64, recipient_export: Option<crate::models::RequestSmsRecipientExport>) -> Result<crate::models::CreatedProcessId, Error<RequestSmsRecipientExportError>> {
266 let local_var_configuration = configuration;
267
268 let local_var_client = &local_var_configuration.client;
269
270 let local_var_uri_str = format!("{}/smsCampaigns/{campaignId}/exportRecipients", local_var_configuration.base_path, campaignId=campaign_id);
271 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
272
273 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
274 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
275 }
276 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
277 let local_var_key = local_var_apikey.key.clone();
278 let local_var_value = match local_var_apikey.prefix {
279 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
280 None => local_var_key,
281 };
282 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
283 };
284 local_var_req_builder = local_var_req_builder.json(&recipient_export);
285
286 let local_var_req = local_var_req_builder.build()?;
287 let local_var_resp = local_var_client.execute(local_var_req).await?;
288
289 let local_var_status = local_var_resp.status();
290 let local_var_content = local_var_resp.text().await?;
291
292 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
293 serde_json::from_str(&local_var_content).map_err(Error::from)
294 } else {
295 let local_var_entity: Option<RequestSmsRecipientExportError> = serde_json::from_str(&local_var_content).ok();
296 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
297 Err(Error::ResponseError(local_var_error))
298 }
299}
300
301pub async fn send_sms_campaign_now(configuration: &configuration::Configuration, campaign_id: i64) -> Result<(), Error<SendSmsCampaignNowError>> {
302 let local_var_configuration = configuration;
303
304 let local_var_client = &local_var_configuration.client;
305
306 let local_var_uri_str = format!("{}/smsCampaigns/{campaignId}/sendNow", local_var_configuration.base_path, campaignId=campaign_id);
307 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
308
309 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
310 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
311 }
312 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
313 let local_var_key = local_var_apikey.key.clone();
314 let local_var_value = match local_var_apikey.prefix {
315 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
316 None => local_var_key,
317 };
318 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
319 };
320
321 let local_var_req = local_var_req_builder.build()?;
322 let local_var_resp = local_var_client.execute(local_var_req).await?;
323
324 let local_var_status = local_var_resp.status();
325 let local_var_content = local_var_resp.text().await?;
326
327 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
328 Ok(())
329 } else {
330 let local_var_entity: Option<SendSmsCampaignNowError> = serde_json::from_str(&local_var_content).ok();
331 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
332 Err(Error::ResponseError(local_var_error))
333 }
334}
335
336pub async fn send_sms_report(configuration: &configuration::Configuration, campaign_id: i64, send_report: crate::models::SendReport) -> Result<(), Error<SendSmsReportError>> {
338 let local_var_configuration = configuration;
339
340 let local_var_client = &local_var_configuration.client;
341
342 let local_var_uri_str = format!("{}/smsCampaigns/{campaignId}/sendReport", local_var_configuration.base_path, campaignId=campaign_id);
343 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
344
345 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
346 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
347 }
348 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
349 let local_var_key = local_var_apikey.key.clone();
350 let local_var_value = match local_var_apikey.prefix {
351 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
352 None => local_var_key,
353 };
354 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
355 };
356 local_var_req_builder = local_var_req_builder.json(&send_report);
357
358 let local_var_req = local_var_req_builder.build()?;
359 let local_var_resp = local_var_client.execute(local_var_req).await?;
360
361 let local_var_status = local_var_resp.status();
362 let local_var_content = local_var_resp.text().await?;
363
364 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
365 Ok(())
366 } else {
367 let local_var_entity: Option<SendSmsReportError> = serde_json::from_str(&local_var_content).ok();
368 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
369 Err(Error::ResponseError(local_var_error))
370 }
371}
372
373pub async fn send_test_sms(configuration: &configuration::Configuration, campaign_id: i64, phone_number: crate::models::SendTestSms) -> Result<(), Error<SendTestSmsError>> {
374 let local_var_configuration = configuration;
375
376 let local_var_client = &local_var_configuration.client;
377
378 let local_var_uri_str = format!("{}/smsCampaigns/{campaignId}/sendTest", local_var_configuration.base_path, campaignId=campaign_id);
379 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
380
381 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
382 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
383 }
384 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
385 let local_var_key = local_var_apikey.key.clone();
386 let local_var_value = match local_var_apikey.prefix {
387 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
388 None => local_var_key,
389 };
390 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
391 };
392 local_var_req_builder = local_var_req_builder.json(&phone_number);
393
394 let local_var_req = local_var_req_builder.build()?;
395 let local_var_resp = local_var_client.execute(local_var_req).await?;
396
397 let local_var_status = local_var_resp.status();
398 let local_var_content = local_var_resp.text().await?;
399
400 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
401 Ok(())
402 } else {
403 let local_var_entity: Option<SendTestSmsError> = serde_json::from_str(&local_var_content).ok();
404 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
405 Err(Error::ResponseError(local_var_error))
406 }
407}
408
409pub async fn update_sms_campaign(configuration: &configuration::Configuration, campaign_id: i64, update_sms_campaign: crate::models::UpdateSmsCampaign) -> Result<(), Error<UpdateSmsCampaignError>> {
410 let local_var_configuration = configuration;
411
412 let local_var_client = &local_var_configuration.client;
413
414 let local_var_uri_str = format!("{}/smsCampaigns/{campaignId}", local_var_configuration.base_path, campaignId=campaign_id);
415 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
416
417 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
418 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
419 }
420 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
421 let local_var_key = local_var_apikey.key.clone();
422 let local_var_value = match local_var_apikey.prefix {
423 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
424 None => local_var_key,
425 };
426 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
427 };
428 local_var_req_builder = local_var_req_builder.json(&update_sms_campaign);
429
430 let local_var_req = local_var_req_builder.build()?;
431 let local_var_resp = local_var_client.execute(local_var_req).await?;
432
433 let local_var_status = local_var_resp.status();
434 let local_var_content = local_var_resp.text().await?;
435
436 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
437 Ok(())
438 } else {
439 let local_var_entity: Option<UpdateSmsCampaignError> = serde_json::from_str(&local_var_content).ok();
440 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
441 Err(Error::ResponseError(local_var_error))
442 }
443}
444
445pub async fn update_sms_campaign_status(configuration: &configuration::Configuration, campaign_id: i64, status: crate::models::UpdateCampaignStatus) -> Result<(), Error<UpdateSmsCampaignStatusError>> {
446 let local_var_configuration = configuration;
447
448 let local_var_client = &local_var_configuration.client;
449
450 let local_var_uri_str = format!("{}/smsCampaigns/{campaignId}/status", local_var_configuration.base_path, campaignId=campaign_id);
451 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
452
453 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
454 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
455 }
456 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
457 let local_var_key = local_var_apikey.key.clone();
458 let local_var_value = match local_var_apikey.prefix {
459 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
460 None => local_var_key,
461 };
462 local_var_req_builder = local_var_req_builder.header("api-key", local_var_value);
463 };
464 local_var_req_builder = local_var_req_builder.json(&status);
465
466 let local_var_req = local_var_req_builder.build()?;
467 let local_var_resp = local_var_client.execute(local_var_req).await?;
468
469 let local_var_status = local_var_resp.status();
470 let local_var_content = local_var_resp.text().await?;
471
472 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
473 Ok(())
474 } else {
475 let local_var_entity: Option<UpdateSmsCampaignStatusError> = serde_json::from_str(&local_var_content).ok();
476 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
477 Err(Error::ResponseError(local_var_error))
478 }
479}
480