twilio_rust_openapi/apis/
mod.rs1use std::error;
2use std::fmt;
3
4#[derive(Debug, Clone)]
5pub struct ResponseContent<T> {
6 pub status: reqwest::StatusCode,
7 pub content: String,
8 pub entity: Option<T>,
9}
10
11#[derive(Debug)]
12pub enum Error<T> {
13 Reqwest(reqwest::Error),
14 Serde(serde_json::Error),
15 Io(std::io::Error),
16 ResponseError(ResponseContent<T>),
17}
18
19impl <T> fmt::Display for Error<T> {
20 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21 let (module, e) = match self {
22 Error::Reqwest(e) => ("reqwest", e.to_string()),
23 Error::Serde(e) => ("serde", e.to_string()),
24 Error::Io(e) => ("IO", e.to_string()),
25 Error::ResponseError(e) => ("response", format!("status code {}", e.status)),
26 };
27 write!(f, "error in {}: {}", module, e)
28 }
29}
30
31impl <T: fmt::Debug> error::Error for Error<T> {
32 fn source(&self) -> Option<&(dyn error::Error + 'static)> {
33 Some(match self {
34 Error::Reqwest(e) => e,
35 Error::Serde(e) => e,
36 Error::Io(e) => e,
37 Error::ResponseError(_) => return None,
38 })
39 }
40}
41
42impl <T> From<reqwest::Error> for Error<T> {
43 fn from(e: reqwest::Error) -> Self {
44 Error::Reqwest(e)
45 }
46}
47
48impl <T> From<serde_json::Error> for Error<T> {
49 fn from(e: serde_json::Error) -> Self {
50 Error::Serde(e)
51 }
52}
53
54impl <T> From<std::io::Error> for Error<T> {
55 fn from(e: std::io::Error) -> Self {
56 Error::Io(e)
57 }
58}
59
60pub fn urlencode<T: AsRef<str>>(s: T) -> String {
61 ::url::form_urlencoded::byte_serialize(s.as_ref().as_bytes()).collect()
62}
63
64pub fn parse_deep_object(prefix: &str, value: &serde_json::Value) -> Vec<(String, String)> {
65 if let serde_json::Value::Object(object) = value {
66 let mut params = vec![];
67
68 for (key, value) in object {
69 match value {
70 serde_json::Value::Object(_) => params.append(&mut parse_deep_object(
71 &format!("{}[{}]", prefix, key),
72 value,
73 )),
74 serde_json::Value::Array(array) => {
75 for (i, value) in array.iter().enumerate() {
76 params.append(&mut parse_deep_object(
77 &format!("{}[{}][{}]", prefix, key, i),
78 value,
79 ));
80 }
81 },
82 serde_json::Value::String(s) => params.push((format!("{}[{}]", prefix, key), s.clone())),
83 _ => params.push((format!("{}[{}]", prefix, key), value.to_string())),
84 }
85 }
86
87 return params;
88 }
89
90 unimplemented!("Only objects are supported with style=deepObject")
91}
92
93pub mod api20100401_account_api;
94pub mod api20100401_add_on_result_api;
95pub mod api20100401_address_api;
96pub mod api20100401_all_time_api;
97pub mod api20100401_application_api;
98pub mod api20100401_assigned_add_on_api;
99pub mod api20100401_assigned_add_on_extension_api;
100pub mod api20100401_auth_calls_credential_list_mapping_api;
101pub mod api20100401_auth_calls_ip_access_control_list_mapping_api;
102pub mod api20100401_auth_registrations_credential_list_mapping_api;
103pub mod api20100401_authorized_connect_app_api;
104pub mod api20100401_available_phone_number_country_api;
105pub mod api20100401_balance_api;
106pub mod api20100401_call_api;
107pub mod api20100401_conference_api;
108pub mod api20100401_connect_app_api;
109pub mod api20100401_credential_api;
110pub mod api20100401_credential_list_api;
111pub mod api20100401_credential_list_mapping_api;
112pub mod api20100401_daily_api;
113pub mod api20100401_data_api;
114pub mod api20100401_dependent_phone_number_api;
115pub mod api20100401_domain_api;
116pub mod api20100401_event_api;
117pub mod api20100401_feedback_api;
118pub mod api20100401_incoming_phone_number_api;
119pub mod api20100401_ip_access_control_list_api;
120pub mod api20100401_ip_access_control_list_mapping_api;
121pub mod api20100401_ip_address_api;
122pub mod api20100401_key_api;
123pub mod api20100401_last_month_api;
124pub mod api20100401_local_api;
125pub mod api20100401_machine_to_machine_api;
126pub mod api20100401_media_api;
127pub mod api20100401_member_api;
128pub mod api20100401_message_api;
129pub mod api20100401_mobile_api;
130pub mod api20100401_monthly_api;
131pub mod api20100401_national_api;
132pub mod api20100401_new_key_api;
133pub mod api20100401_new_signing_key_api;
134pub mod api20100401_notification_api;
135pub mod api20100401_outgoing_caller_id_api;
136pub mod api20100401_participant_api;
137pub mod api20100401_payload_api;
138pub mod api20100401_payment_api;
139pub mod api20100401_queue_api;
140pub mod api20100401_record_api;
141pub mod api20100401_recording_api;
142pub mod api20100401_shared_cost_api;
143pub mod api20100401_short_code_api;
144pub mod api20100401_signing_key_api;
145pub mod api20100401_siprec_api;
146pub mod api20100401_stream_api;
147pub mod api20100401_this_month_api;
148pub mod api20100401_today_api;
149pub mod api20100401_token_api;
150pub mod api20100401_toll_free_api;
151pub mod api20100401_transcription_api;
152pub mod api20100401_trigger_api;
153pub mod api20100401_user_defined_message_api;
154pub mod api20100401_user_defined_message_subscription_api;
155pub mod api20100401_validation_request_api;
156pub mod api20100401_voip_api;
157pub mod api20100401_yearly_api;
158pub mod api20100401_yesterday_api;
159
160pub mod configuration;