1use super::{Error, configuration};
12use crate::apis::ContentType;
13use crate::{apis::ResponseContent, models};
14use async_trait::async_trait;
15#[cfg(feature = "mockall")]
16use mockall::automock;
17use reqwest;
18use serde::{Deserialize, Serialize, de::Error as _};
19use std::sync::Arc;
20
21#[cfg_attr(feature = "mockall", automock)]
22#[async_trait]
23pub trait SitemapsApi: Send + Sync {
24 async fn create_sitemap_event_subscription(
28 &self,
29 ) -> Result<(), Error<CreateSitemapEventSubscriptionError>>;
30
31 async fn get_sitemap_by_name<
35 'sitemapname,
36 'accept_language,
37 'r_type,
38 'jsoncallback,
39 'include_hidden,
40 >(
41 &self,
42 sitemapname: &'sitemapname str,
43 accept_language: Option<&'accept_language str>,
44 r#type: Option<&'r_type str>,
45 jsoncallback: Option<&'jsoncallback str>,
46 include_hidden: Option<bool>,
47 ) -> Result<models::SitemapDto, Error<GetSitemapByNameError>>;
48
49 async fn get_sitemap_events<'subscriptionid, 'sitemap>(
53 &self,
54 subscriptionid: &'subscriptionid str,
55 sitemap: Option<&'sitemap str>,
56 ) -> Result<(), Error<GetSitemapEventsError>>;
57
58 async fn get_sitemap_events1<'subscriptionid, 'sitemap, 'pageid>(
62 &self,
63 subscriptionid: &'subscriptionid str,
64 sitemap: Option<&'sitemap str>,
65 pageid: Option<&'pageid str>,
66 ) -> Result<(), Error<GetSitemapEvents1Error>>;
67
68 async fn get_sitemaps(&self) -> Result<Vec<models::SitemapDto>, Error<GetSitemapsError>>;
72
73 async fn poll_data_for_page<
77 'sitemapname,
78 'pageid,
79 'accept_language,
80 'subscriptionid,
81 'include_hidden,
82 >(
83 &self,
84 sitemapname: &'sitemapname str,
85 pageid: &'pageid str,
86 accept_language: Option<&'accept_language str>,
87 subscriptionid: Option<&'subscriptionid str>,
88 include_hidden: Option<bool>,
89 ) -> Result<models::PageDto, Error<PollDataForPageError>>;
90
91 async fn poll_data_for_sitemap<
95 'sitemapname,
96 'accept_language,
97 'subscriptionid,
98 'include_hidden,
99 >(
100 &self,
101 sitemapname: &'sitemapname str,
102 accept_language: Option<&'accept_language str>,
103 subscriptionid: Option<&'subscriptionid str>,
104 include_hidden: Option<bool>,
105 ) -> Result<models::SitemapDto, Error<PollDataForSitemapError>>;
106}
107
108pub struct SitemapsApiClient {
109 configuration: Arc<configuration::Configuration>,
110}
111
112impl SitemapsApiClient {
113 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
114 Self { configuration }
115 }
116}
117
118#[async_trait]
119impl SitemapsApi for SitemapsApiClient {
120 async fn create_sitemap_event_subscription(
121 &self,
122 ) -> Result<(), Error<CreateSitemapEventSubscriptionError>> {
123 let local_var_configuration = &self.configuration;
124
125 let local_var_client = &local_var_configuration.client;
126
127 let local_var_uri_str = format!(
128 "{}/sitemaps/events/subscribe",
129 local_var_configuration.base_path
130 );
131 let mut local_var_req_builder =
132 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
133
134 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
135 local_var_req_builder = local_var_req_builder
136 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
137 }
138
139 let local_var_req = local_var_req_builder.build()?;
140 let local_var_resp = local_var_client.execute(local_var_req).await?;
141
142 let local_var_status = local_var_resp.status();
143 let local_var_content = local_var_resp.text().await?;
144
145 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
146 Ok(())
147 } else {
148 let local_var_entity: Option<CreateSitemapEventSubscriptionError> =
149 serde_json::from_str(&local_var_content).ok();
150 let local_var_error = ResponseContent {
151 status: local_var_status,
152 content: local_var_content,
153 entity: local_var_entity,
154 };
155 Err(Error::ResponseError(local_var_error))
156 }
157 }
158
159 async fn get_sitemap_by_name<
160 'sitemapname,
161 'accept_language,
162 'r_type,
163 'jsoncallback,
164 'include_hidden,
165 >(
166 &self,
167 sitemapname: &'sitemapname str,
168 accept_language: Option<&'accept_language str>,
169 r#type: Option<&'r_type str>,
170 jsoncallback: Option<&'jsoncallback str>,
171 include_hidden: Option<bool>,
172 ) -> Result<models::SitemapDto, Error<GetSitemapByNameError>> {
173 let local_var_configuration = &self.configuration;
174
175 let local_var_client = &local_var_configuration.client;
176
177 let local_var_uri_str = format!(
178 "{}/sitemaps/{sitemapname}",
179 local_var_configuration.base_path,
180 sitemapname = crate::apis::urlencode(sitemapname)
181 );
182 let mut local_var_req_builder =
183 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
184
185 if let Some(ref local_var_str) = r#type {
186 local_var_req_builder =
187 local_var_req_builder.query(&[("type", &local_var_str.to_string())]);
188 }
189 if let Some(ref local_var_str) = jsoncallback {
190 local_var_req_builder =
191 local_var_req_builder.query(&[("jsoncallback", &local_var_str.to_string())]);
192 }
193 if let Some(ref local_var_str) = include_hidden {
194 local_var_req_builder =
195 local_var_req_builder.query(&[("includeHidden", &local_var_str.to_string())]);
196 }
197 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
198 local_var_req_builder = local_var_req_builder
199 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
200 }
201 if let Some(local_var_param_value) = accept_language {
202 local_var_req_builder =
203 local_var_req_builder.header("Accept-Language", local_var_param_value.to_string());
204 }
205
206 let local_var_req = local_var_req_builder.build()?;
207 let local_var_resp = local_var_client.execute(local_var_req).await?;
208
209 let local_var_status = local_var_resp.status();
210 let local_var_content_type = local_var_resp
211 .headers()
212 .get("content-type")
213 .and_then(|v| v.to_str().ok())
214 .unwrap_or("application/octet-stream");
215 let local_var_content_type = super::ContentType::from(local_var_content_type);
216 let local_var_content = local_var_resp.text().await?;
217
218 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
219 match local_var_content_type {
220 ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
221 ContentType::Text => {
222 return Err(Error::from(serde_json::Error::custom(
223 "Received `text/plain` content type response that cannot be converted to `models::SitemapDto`",
224 )));
225 }
226 ContentType::Unsupported(local_var_unknown_type) => {
227 return Err(Error::from(serde_json::Error::custom(format!(
228 "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::SitemapDto`"
229 ))));
230 }
231 }
232 } else {
233 let local_var_entity: Option<GetSitemapByNameError> =
234 serde_json::from_str(&local_var_content).ok();
235 let local_var_error = ResponseContent {
236 status: local_var_status,
237 content: local_var_content,
238 entity: local_var_entity,
239 };
240 Err(Error::ResponseError(local_var_error))
241 }
242 }
243
244 async fn get_sitemap_events<'subscriptionid, 'sitemap>(
245 &self,
246 subscriptionid: &'subscriptionid str,
247 sitemap: Option<&'sitemap str>,
248 ) -> Result<(), Error<GetSitemapEventsError>> {
249 let local_var_configuration = &self.configuration;
250
251 let local_var_client = &local_var_configuration.client;
252
253 let local_var_uri_str = format!(
254 "{}/sitemaps/events/{subscriptionid}/*",
255 local_var_configuration.base_path,
256 subscriptionid = crate::apis::urlencode(subscriptionid)
257 );
258 let mut local_var_req_builder =
259 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
260
261 if let Some(ref local_var_str) = sitemap {
262 local_var_req_builder =
263 local_var_req_builder.query(&[("sitemap", &local_var_str.to_string())]);
264 }
265 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
266 local_var_req_builder = local_var_req_builder
267 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
268 }
269
270 let local_var_req = local_var_req_builder.build()?;
271 let local_var_resp = local_var_client.execute(local_var_req).await?;
272
273 let local_var_status = local_var_resp.status();
274 let local_var_content = local_var_resp.text().await?;
275
276 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
277 Ok(())
278 } else {
279 let local_var_entity: Option<GetSitemapEventsError> =
280 serde_json::from_str(&local_var_content).ok();
281 let local_var_error = ResponseContent {
282 status: local_var_status,
283 content: local_var_content,
284 entity: local_var_entity,
285 };
286 Err(Error::ResponseError(local_var_error))
287 }
288 }
289
290 async fn get_sitemap_events1<'subscriptionid, 'sitemap, 'pageid>(
291 &self,
292 subscriptionid: &'subscriptionid str,
293 sitemap: Option<&'sitemap str>,
294 pageid: Option<&'pageid str>,
295 ) -> Result<(), Error<GetSitemapEvents1Error>> {
296 let local_var_configuration = &self.configuration;
297
298 let local_var_client = &local_var_configuration.client;
299
300 let local_var_uri_str = format!(
301 "{}/sitemaps/events/{subscriptionid}",
302 local_var_configuration.base_path,
303 subscriptionid = crate::apis::urlencode(subscriptionid)
304 );
305 let mut local_var_req_builder =
306 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
307
308 if let Some(ref local_var_str) = sitemap {
309 local_var_req_builder =
310 local_var_req_builder.query(&[("sitemap", &local_var_str.to_string())]);
311 }
312 if let Some(ref local_var_str) = pageid {
313 local_var_req_builder =
314 local_var_req_builder.query(&[("pageid", &local_var_str.to_string())]);
315 }
316 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
317 local_var_req_builder = local_var_req_builder
318 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
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<GetSitemapEvents1Error> =
331 serde_json::from_str(&local_var_content).ok();
332 let local_var_error = ResponseContent {
333 status: local_var_status,
334 content: local_var_content,
335 entity: local_var_entity,
336 };
337 Err(Error::ResponseError(local_var_error))
338 }
339 }
340
341 async fn get_sitemaps(&self) -> Result<Vec<models::SitemapDto>, Error<GetSitemapsError>> {
342 let local_var_configuration = &self.configuration;
343
344 let local_var_client = &local_var_configuration.client;
345
346 let local_var_uri_str = format!("{}/sitemaps", local_var_configuration.base_path);
347 let mut local_var_req_builder =
348 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
349
350 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
351 local_var_req_builder = local_var_req_builder
352 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
353 }
354
355 let local_var_req = local_var_req_builder.build()?;
356 let local_var_resp = local_var_client.execute(local_var_req).await?;
357
358 let local_var_status = local_var_resp.status();
359 let local_var_content_type = local_var_resp
360 .headers()
361 .get("content-type")
362 .and_then(|v| v.to_str().ok())
363 .unwrap_or("application/octet-stream");
364 let local_var_content_type = super::ContentType::from(local_var_content_type);
365 let local_var_content = local_var_resp.text().await?;
366
367 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
368 match local_var_content_type {
369 ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
370 ContentType::Text => {
371 return Err(Error::from(serde_json::Error::custom(
372 "Received `text/plain` content type response that cannot be converted to `Vec<models::SitemapDto>`",
373 )));
374 }
375 ContentType::Unsupported(local_var_unknown_type) => {
376 return Err(Error::from(serde_json::Error::custom(format!(
377 "Received `{local_var_unknown_type}` content type response that cannot be converted to `Vec<models::SitemapDto>`"
378 ))));
379 }
380 }
381 } else {
382 let local_var_entity: Option<GetSitemapsError> =
383 serde_json::from_str(&local_var_content).ok();
384 let local_var_error = ResponseContent {
385 status: local_var_status,
386 content: local_var_content,
387 entity: local_var_entity,
388 };
389 Err(Error::ResponseError(local_var_error))
390 }
391 }
392
393 async fn poll_data_for_page<
394 'sitemapname,
395 'pageid,
396 'accept_language,
397 'subscriptionid,
398 'include_hidden,
399 >(
400 &self,
401 sitemapname: &'sitemapname str,
402 pageid: &'pageid str,
403 accept_language: Option<&'accept_language str>,
404 subscriptionid: Option<&'subscriptionid str>,
405 include_hidden: Option<bool>,
406 ) -> Result<models::PageDto, Error<PollDataForPageError>> {
407 let local_var_configuration = &self.configuration;
408
409 let local_var_client = &local_var_configuration.client;
410
411 let local_var_uri_str = format!(
412 "{}/sitemaps/{sitemapname}/{pageid}",
413 local_var_configuration.base_path,
414 sitemapname = crate::apis::urlencode(sitemapname),
415 pageid = crate::apis::urlencode(pageid)
416 );
417 let mut local_var_req_builder =
418 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
419
420 if let Some(ref local_var_str) = subscriptionid {
421 local_var_req_builder =
422 local_var_req_builder.query(&[("subscriptionid", &local_var_str.to_string())]);
423 }
424 if let Some(ref local_var_str) = include_hidden {
425 local_var_req_builder =
426 local_var_req_builder.query(&[("includeHidden", &local_var_str.to_string())]);
427 }
428 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
429 local_var_req_builder = local_var_req_builder
430 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
431 }
432 if let Some(local_var_param_value) = accept_language {
433 local_var_req_builder =
434 local_var_req_builder.header("Accept-Language", local_var_param_value.to_string());
435 }
436
437 let local_var_req = local_var_req_builder.build()?;
438 let local_var_resp = local_var_client.execute(local_var_req).await?;
439
440 let local_var_status = local_var_resp.status();
441 let local_var_content_type = local_var_resp
442 .headers()
443 .get("content-type")
444 .and_then(|v| v.to_str().ok())
445 .unwrap_or("application/octet-stream");
446 let local_var_content_type = super::ContentType::from(local_var_content_type);
447 let local_var_content = local_var_resp.text().await?;
448
449 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
450 match local_var_content_type {
451 ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
452 ContentType::Text => {
453 return Err(Error::from(serde_json::Error::custom(
454 "Received `text/plain` content type response that cannot be converted to `models::PageDto`",
455 )));
456 }
457 ContentType::Unsupported(local_var_unknown_type) => {
458 return Err(Error::from(serde_json::Error::custom(format!(
459 "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::PageDto`"
460 ))));
461 }
462 }
463 } else {
464 let local_var_entity: Option<PollDataForPageError> =
465 serde_json::from_str(&local_var_content).ok();
466 let local_var_error = ResponseContent {
467 status: local_var_status,
468 content: local_var_content,
469 entity: local_var_entity,
470 };
471 Err(Error::ResponseError(local_var_error))
472 }
473 }
474
475 async fn poll_data_for_sitemap<
476 'sitemapname,
477 'accept_language,
478 'subscriptionid,
479 'include_hidden,
480 >(
481 &self,
482 sitemapname: &'sitemapname str,
483 accept_language: Option<&'accept_language str>,
484 subscriptionid: Option<&'subscriptionid str>,
485 include_hidden: Option<bool>,
486 ) -> Result<models::SitemapDto, Error<PollDataForSitemapError>> {
487 let local_var_configuration = &self.configuration;
488
489 let local_var_client = &local_var_configuration.client;
490
491 let local_var_uri_str = format!(
492 "{}/sitemaps/{sitemapname}/*",
493 local_var_configuration.base_path,
494 sitemapname = crate::apis::urlencode(sitemapname)
495 );
496 let mut local_var_req_builder =
497 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
498
499 if let Some(ref local_var_str) = subscriptionid {
500 local_var_req_builder =
501 local_var_req_builder.query(&[("subscriptionid", &local_var_str.to_string())]);
502 }
503 if let Some(ref local_var_str) = include_hidden {
504 local_var_req_builder =
505 local_var_req_builder.query(&[("includeHidden", &local_var_str.to_string())]);
506 }
507 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
508 local_var_req_builder = local_var_req_builder
509 .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
510 }
511 if let Some(local_var_param_value) = accept_language {
512 local_var_req_builder =
513 local_var_req_builder.header("Accept-Language", local_var_param_value.to_string());
514 }
515
516 let local_var_req = local_var_req_builder.build()?;
517 let local_var_resp = local_var_client.execute(local_var_req).await?;
518
519 let local_var_status = local_var_resp.status();
520 let local_var_content_type = local_var_resp
521 .headers()
522 .get("content-type")
523 .and_then(|v| v.to_str().ok())
524 .unwrap_or("application/octet-stream");
525 let local_var_content_type = super::ContentType::from(local_var_content_type);
526 let local_var_content = local_var_resp.text().await?;
527
528 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
529 match local_var_content_type {
530 ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
531 ContentType::Text => {
532 return Err(Error::from(serde_json::Error::custom(
533 "Received `text/plain` content type response that cannot be converted to `models::SitemapDto`",
534 )));
535 }
536 ContentType::Unsupported(local_var_unknown_type) => {
537 return Err(Error::from(serde_json::Error::custom(format!(
538 "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::SitemapDto`"
539 ))));
540 }
541 }
542 } else {
543 let local_var_entity: Option<PollDataForSitemapError> =
544 serde_json::from_str(&local_var_content).ok();
545 let local_var_error = ResponseContent {
546 status: local_var_status,
547 content: local_var_content,
548 entity: local_var_entity,
549 };
550 Err(Error::ResponseError(local_var_error))
551 }
552 }
553}
554
555#[derive(Debug, Clone, Serialize, Deserialize)]
557#[serde(untagged)]
558pub enum CreateSitemapEventSubscriptionError {
559 Status503(),
560 UnknownValue(serde_json::Value),
561}
562
563#[derive(Debug, Clone, Serialize, Deserialize)]
565#[serde(untagged)]
566pub enum GetSitemapByNameError {
567 UnknownValue(serde_json::Value),
568}
569
570#[derive(Debug, Clone, Serialize, Deserialize)]
572#[serde(untagged)]
573pub enum GetSitemapEventsError {
574 Status400(),
575 Status404(),
576 UnknownValue(serde_json::Value),
577}
578
579#[derive(Debug, Clone, Serialize, Deserialize)]
581#[serde(untagged)]
582pub enum GetSitemapEvents1Error {
583 Status400(),
584 Status404(),
585 UnknownValue(serde_json::Value),
586}
587
588#[derive(Debug, Clone, Serialize, Deserialize)]
590#[serde(untagged)]
591pub enum GetSitemapsError {
592 UnknownValue(serde_json::Value),
593}
594
595#[derive(Debug, Clone, Serialize, Deserialize)]
597#[serde(untagged)]
598pub enum PollDataForPageError {
599 Status400(),
600 Status404(),
601 UnknownValue(serde_json::Value),
602}
603
604#[derive(Debug, Clone, Serialize, Deserialize)]
606#[serde(untagged)]
607pub enum PollDataForSitemapError {
608 Status400(),
609 Status404(),
610 UnknownValue(serde_json::Value),
611}