osdm_sys/apis/
offer_overview_api.rs1use reqwest;
13use serde::{Deserialize, Serialize, de::Error as _};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration, ContentType};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum GetOfferOverviewRouteError {
22 Status400(models::Problem),
23 Status401(models::Problem),
24 Status403(models::Problem),
25 Status404(models::Problem),
26 Status406(models::Problem),
27 Status415(models::Problem),
28 Status500(models::Problem),
29 Status501(models::Problem),
30 UnknownValue(serde_json::Value),
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(untagged)]
36pub enum GetOfferOverviewTripError {
37 Status400(models::Problem),
38 Status401(models::Problem),
39 Status403(models::Problem),
40 Status404(models::Problem),
41 Status406(models::Problem),
42 Status415(models::Problem),
43 Status500(models::Problem),
44 Status501(models::Problem),
45 UnknownValue(serde_json::Value),
46}
47
48
49pub async fn get_offer_overview_route(configuration: &configuration::Configuration, offer_overview_route_request: models::OfferOverviewRouteRequest, requestor: Option<&str>, accept_language: Option<&str>, traceparent: Option<&str>, tracestate: Option<&str>) -> Result<models::OfferOverviewRouteResponse, Error<GetOfferOverviewRouteError>> {
51 let p_body_offer_overview_route_request = offer_overview_route_request;
53 let p_header_requestor = requestor;
54 let p_header_accept_language = accept_language;
55 let p_header_traceparent = traceparent;
56 let p_header_tracestate = tracestate;
57
58 let uri_str = format!("{}/offer-overview-route", configuration.base_path);
59 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
60
61 if let Some(ref user_agent) = configuration.user_agent {
62 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
63 }
64 if let Some(param_value) = p_header_requestor {
65 req_builder = req_builder.header("Requestor", param_value.to_string());
66 }
67 if let Some(param_value) = p_header_accept_language {
68 req_builder = req_builder.header("Accept-Language", param_value.to_string());
69 }
70 if let Some(param_value) = p_header_traceparent {
71 req_builder = req_builder.header("traceparent", param_value.to_string());
72 }
73 if let Some(param_value) = p_header_tracestate {
74 req_builder = req_builder.header("tracestate", param_value.to_string());
75 }
76 if let Some(ref token) = configuration.oauth_access_token {
77 req_builder = req_builder.bearer_auth(token.to_owned());
78 };
79 req_builder = req_builder.json(&p_body_offer_overview_route_request);
80
81 let req = req_builder.build()?;
82 let resp = configuration.client.execute(req).await?;
83
84 let status = resp.status();
85 let content_type = resp
86 .headers()
87 .get("content-type")
88 .and_then(|v| v.to_str().ok())
89 .unwrap_or("application/octet-stream");
90 let content_type = super::ContentType::from(content_type);
91
92 if !status.is_client_error() && !status.is_server_error() {
93 let content = resp.text().await?;
94 match content_type {
95 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
96 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::OfferOverviewRouteResponse`"))),
97 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::OfferOverviewRouteResponse`")))),
98 }
99 } else {
100 let content = resp.text().await?;
101 let entity: Option<GetOfferOverviewRouteError> = serde_json::from_str(&content).ok();
102 Err(Error::ResponseError(ResponseContent { status, content, entity }))
103 }
104}
105
106pub async fn get_offer_overview_trip(configuration: &configuration::Configuration, offer_overview_trip_request: models::OfferOverviewTripRequest, requestor: Option<&str>, accept_language: Option<&str>, traceparent: Option<&str>, tracestate: Option<&str>) -> Result<models::OfferOverviewTripResponse, Error<GetOfferOverviewTripError>> {
108 let p_body_offer_overview_trip_request = offer_overview_trip_request;
110 let p_header_requestor = requestor;
111 let p_header_accept_language = accept_language;
112 let p_header_traceparent = traceparent;
113 let p_header_tracestate = tracestate;
114
115 let uri_str = format!("{}/offer-overview-trip", configuration.base_path);
116 let mut req_builder = configuration.client.request(reqwest::Method::POST, &uri_str);
117
118 if let Some(ref user_agent) = configuration.user_agent {
119 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
120 }
121 if let Some(param_value) = p_header_requestor {
122 req_builder = req_builder.header("Requestor", param_value.to_string());
123 }
124 if let Some(param_value) = p_header_accept_language {
125 req_builder = req_builder.header("Accept-Language", param_value.to_string());
126 }
127 if let Some(param_value) = p_header_traceparent {
128 req_builder = req_builder.header("traceparent", param_value.to_string());
129 }
130 if let Some(param_value) = p_header_tracestate {
131 req_builder = req_builder.header("tracestate", param_value.to_string());
132 }
133 if let Some(ref token) = configuration.oauth_access_token {
134 req_builder = req_builder.bearer_auth(token.to_owned());
135 };
136 req_builder = req_builder.json(&p_body_offer_overview_trip_request);
137
138 let req = req_builder.build()?;
139 let resp = configuration.client.execute(req).await?;
140
141 let status = resp.status();
142 let content_type = resp
143 .headers()
144 .get("content-type")
145 .and_then(|v| v.to_str().ok())
146 .unwrap_or("application/octet-stream");
147 let content_type = super::ContentType::from(content_type);
148
149 if !status.is_client_error() && !status.is_server_error() {
150 let content = resp.text().await?;
151 match content_type {
152 ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
153 ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::OfferOverviewTripResponse`"))),
154 ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::OfferOverviewTripResponse`")))),
155 }
156 } else {
157 let content = resp.text().await?;
158 let entity: Option<GetOfferOverviewTripError> = serde_json::from_str(&content).ok();
159 Err(Error::ResponseError(ResponseContent { status, content, entity }))
160 }
161}
162