1use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AddCallLogError {
22 Status400(crate::models::CallLogResponse400),
23 Status403(crate::models::CallLogResponse403),
24 Status404(crate::models::CallLogResponse404),
25 Status500(crate::models::CallLogResponse500),
26 UnknownValue(serde_json::Value),
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
31#[serde(untagged)]
32pub enum AddCallLogAudioFileError {
33 Status404(crate::models::CallLogResponse404),
34 Status409(crate::models::CallLogResponse409),
35 Status500(crate::models::CallLogResponse500),
36 UnknownValue(serde_json::Value),
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum DeleteCallLogError {
43 Status403(crate::models::CallLogResponse403),
44 Status404(crate::models::CallLogResponse404),
45 Status410(crate::models::CallLogResponse410),
46 Status500(crate::models::CallLogResponse500),
47 UnknownValue(serde_json::Value),
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
52#[serde(untagged)]
53pub enum GetCallLogError {
54 Status404(crate::models::CallLogResponse404),
55 UnknownValue(serde_json::Value),
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum GetUserCallLogsError {
62 UnknownValue(serde_json::Value),
63}
64
65
66pub async fn add_call_log(configuration: &configuration::Configuration, add_call_log_request: Option<crate::models::AddCallLogRequest>) -> Result<crate::models::CallLogResponse200, Error<AddCallLogError>> {
68 let local_var_configuration = configuration;
69
70 let local_var_client = &local_var_configuration.client;
71
72 let local_var_uri_str = format!("{}/callLogs", local_var_configuration.base_path);
73 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
74
75 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
76 let local_var_key = local_var_apikey.key.clone();
77 let local_var_value = match local_var_apikey.prefix {
78 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
79 None => local_var_key,
80 };
81 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
82 }
83 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
84 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
85 }
86 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
87 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
88 };
89 local_var_req_builder = local_var_req_builder.json(&add_call_log_request);
90
91 let local_var_req = local_var_req_builder.build()?;
92 let local_var_resp = local_var_client.execute(local_var_req).await?;
93
94 let local_var_status = local_var_resp.status();
95 let local_var_content = local_var_resp.text().await?;
96
97 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
98 serde_json::from_str(&local_var_content).map_err(Error::from)
99 } else {
100 let local_var_entity: Option<AddCallLogError> = serde_json::from_str(&local_var_content).ok();
101 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
102 Err(Error::ResponseError(local_var_error))
103 }
104}
105
106pub async fn add_call_log_audio_file(configuration: &configuration::Configuration, id: &str, file: std::path::PathBuf) -> Result<crate::models::BaseResponse, Error<AddCallLogAudioFileError>> {
108 let local_var_configuration = configuration;
109
110 let local_var_client = &local_var_configuration.client;
111
112 let local_var_uri_str = format!("{}/callLogs/{id}/recordings", local_var_configuration.base_path, id=crate::apis::urlencode(id));
113 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
114
115 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
116 let local_var_key = local_var_apikey.key.clone();
117 let local_var_value = match local_var_apikey.prefix {
118 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
119 None => local_var_key,
120 };
121 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
122 }
123 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
124 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
125 }
126 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
127 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
128 };
129 let mut local_var_form = reqwest::multipart::Form::new();
130 local_var_req_builder = local_var_req_builder.multipart(local_var_form);
132
133 let local_var_req = local_var_req_builder.build()?;
134 let local_var_resp = local_var_client.execute(local_var_req).await?;
135
136 let local_var_status = local_var_resp.status();
137 let local_var_content = local_var_resp.text().await?;
138
139 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
140 serde_json::from_str(&local_var_content).map_err(Error::from)
141 } else {
142 let local_var_entity: Option<AddCallLogAudioFileError> = serde_json::from_str(&local_var_content).ok();
143 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
144 Err(Error::ResponseError(local_var_error))
145 }
146}
147
148pub async fn delete_call_log(configuration: &configuration::Configuration, id: &str) -> Result<crate::models::BaseResponse, Error<DeleteCallLogError>> {
150 let local_var_configuration = configuration;
151
152 let local_var_client = &local_var_configuration.client;
153
154 let local_var_uri_str = format!("{}/callLogs/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
155 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
156
157 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
158 let local_var_key = local_var_apikey.key.clone();
159 let local_var_value = match local_var_apikey.prefix {
160 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
161 None => local_var_key,
162 };
163 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
164 }
165 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
166 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
167 }
168 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
169 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
170 };
171
172 let local_var_req = local_var_req_builder.build()?;
173 let local_var_resp = local_var_client.execute(local_var_req).await?;
174
175 let local_var_status = local_var_resp.status();
176 let local_var_content = local_var_resp.text().await?;
177
178 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
179 serde_json::from_str(&local_var_content).map_err(Error::from)
180 } else {
181 let local_var_entity: Option<DeleteCallLogError> = serde_json::from_str(&local_var_content).ok();
182 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
183 Err(Error::ResponseError(local_var_error))
184 }
185}
186
187pub async fn get_call_log(configuration: &configuration::Configuration, id: &str) -> Result<crate::models::CallLogResponse200, Error<GetCallLogError>> {
189 let local_var_configuration = configuration;
190
191 let local_var_client = &local_var_configuration.client;
192
193 let local_var_uri_str = format!("{}/callLogs/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
194 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
195
196 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
197 let local_var_key = local_var_apikey.key.clone();
198 let local_var_value = match local_var_apikey.prefix {
199 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
200 None => local_var_key,
201 };
202 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
203 }
204 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
205 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
206 }
207 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
208 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
209 };
210
211 let local_var_req = local_var_req_builder.build()?;
212 let local_var_resp = local_var_client.execute(local_var_req).await?;
213
214 let local_var_status = local_var_resp.status();
215 let local_var_content = local_var_resp.text().await?;
216
217 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
218 serde_json::from_str(&local_var_content).map_err(Error::from)
219 } else {
220 let local_var_entity: Option<GetCallLogError> = serde_json::from_str(&local_var_content).ok();
221 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
222 Err(Error::ResponseError(local_var_error))
223 }
224}
225
226pub async fn get_user_call_logs(configuration: &configuration::Configuration, start: Option<i32>, limit: Option<i32>) -> Result<crate::models::CallLogsResponse, Error<GetUserCallLogsError>> {
228 let local_var_configuration = configuration;
229
230 let local_var_client = &local_var_configuration.client;
231
232 let local_var_uri_str = format!("{}/callLogs", local_var_configuration.base_path);
233 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
234
235 if let Some(ref local_var_str) = start {
236 local_var_req_builder = local_var_req_builder.query(&[("start", &local_var_str.to_string())]);
237 }
238 if let Some(ref local_var_str) = limit {
239 local_var_req_builder = local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
240 }
241 if let Some(ref local_var_apikey) = local_var_configuration.api_key {
242 let local_var_key = local_var_apikey.key.clone();
243 let local_var_value = match local_var_apikey.prefix {
244 Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
245 None => local_var_key,
246 };
247 local_var_req_builder = local_var_req_builder.query(&[("api_token", local_var_value)]);
248 }
249 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
250 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
251 }
252 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
253 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
254 };
255
256 let local_var_req = local_var_req_builder.build()?;
257 let local_var_resp = local_var_client.execute(local_var_req).await?;
258
259 let local_var_status = local_var_resp.status();
260 let local_var_content = local_var_resp.text().await?;
261
262 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
263 serde_json::from_str(&local_var_content).map_err(Error::from)
264 } else {
265 let local_var_entity: Option<GetUserCallLogsError> = serde_json::from_str(&local_var_content).ok();
266 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
267 Err(Error::ResponseError(local_var_error))
268 }
269}
270