vapi_client/apis/
logs_api.rs

1/*
2 * Vapi API
3 *
4 * Voice AI for developers.
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use super::{configuration, ContentType, Error};
12use crate::{apis::ResponseContent, models};
13use reqwest;
14use serde::{de::Error as _, Deserialize, Serialize};
15
16/// struct for typed errors of method [`logging_controller_logs_delete_query`]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum LoggingControllerLogsDeleteQueryError {
20    UnknownValue(serde_json::Value),
21}
22
23/// struct for typed errors of method [`logging_controller_logs_query`]
24#[derive(Debug, Clone, Serialize, Deserialize)]
25#[serde(untagged)]
26pub enum LoggingControllerLogsQueryError {
27    UnknownValue(serde_json::Value),
28}
29
30pub async fn logging_controller_logs_delete_query(
31    configuration: &configuration::Configuration,
32    r#type: Option<&str>,
33    assistant_id: Option<&str>,
34    phone_number_id: Option<&str>,
35    customer_id: Option<&str>,
36    squad_id: Option<&str>,
37    call_id: Option<&str>,
38) -> Result<(), Error<LoggingControllerLogsDeleteQueryError>> {
39    // add a prefix to parameters to efficiently prevent name collisions
40    let p_type = r#type;
41    let p_assistant_id = assistant_id;
42    let p_phone_number_id = phone_number_id;
43    let p_customer_id = customer_id;
44    let p_squad_id = squad_id;
45    let p_call_id = call_id;
46
47    let uri_str = format!("{}/logs", configuration.base_path);
48    let mut req_builder = configuration
49        .client
50        .request(reqwest::Method::DELETE, &uri_str);
51
52    if let Some(ref param_value) = p_type {
53        req_builder = req_builder.query(&[("type", &param_value.to_string())]);
54    }
55    if let Some(ref param_value) = p_assistant_id {
56        req_builder = req_builder.query(&[("assistantId", &param_value.to_string())]);
57    }
58    if let Some(ref param_value) = p_phone_number_id {
59        req_builder = req_builder.query(&[("phoneNumberId", &param_value.to_string())]);
60    }
61    if let Some(ref param_value) = p_customer_id {
62        req_builder = req_builder.query(&[("customerId", &param_value.to_string())]);
63    }
64    if let Some(ref param_value) = p_squad_id {
65        req_builder = req_builder.query(&[("squadId", &param_value.to_string())]);
66    }
67    if let Some(ref param_value) = p_call_id {
68        req_builder = req_builder.query(&[("callId", &param_value.to_string())]);
69    }
70    if let Some(ref user_agent) = configuration.user_agent {
71        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
72    }
73    if let Some(ref token) = configuration.bearer_access_token {
74        req_builder = req_builder.bearer_auth(token.to_owned());
75    };
76
77    let req = req_builder.build()?;
78    let resp = configuration.client.execute(req).await?;
79
80    let status = resp.status();
81
82    if !status.is_client_error() && !status.is_server_error() {
83        Ok(())
84    } else {
85        let content = resp.text().await?;
86        let entity: Option<LoggingControllerLogsDeleteQueryError> =
87            serde_json::from_str(&content).ok();
88        Err(Error::ResponseError(ResponseContent {
89            status,
90            content,
91            entity,
92        }))
93    }
94}
95
96pub async fn logging_controller_logs_query(
97    configuration: &configuration::Configuration,
98    r#type: Option<&str>,
99    webhook_type: Option<&str>,
100    assistant_id: Option<&str>,
101    phone_number_id: Option<&str>,
102    customer_id: Option<&str>,
103    squad_id: Option<&str>,
104    call_id: Option<&str>,
105    page: Option<f64>,
106    sort_order: Option<&str>,
107    limit: Option<f64>,
108    created_at_gt: Option<String>,
109    created_at_lt: Option<String>,
110    created_at_ge: Option<String>,
111    created_at_le: Option<String>,
112    updated_at_gt: Option<String>,
113    updated_at_lt: Option<String>,
114    updated_at_ge: Option<String>,
115    updated_at_le: Option<String>,
116) -> Result<models::LogsPaginatedResponse, Error<LoggingControllerLogsQueryError>> {
117    // add a prefix to parameters to efficiently prevent name collisions
118    let p_type = r#type;
119    let p_webhook_type = webhook_type;
120    let p_assistant_id = assistant_id;
121    let p_phone_number_id = phone_number_id;
122    let p_customer_id = customer_id;
123    let p_squad_id = squad_id;
124    let p_call_id = call_id;
125    let p_page = page;
126    let p_sort_order = sort_order;
127    let p_limit = limit;
128    let p_created_at_gt = created_at_gt;
129    let p_created_at_lt = created_at_lt;
130    let p_created_at_ge = created_at_ge;
131    let p_created_at_le = created_at_le;
132    let p_updated_at_gt = updated_at_gt;
133    let p_updated_at_lt = updated_at_lt;
134    let p_updated_at_ge = updated_at_ge;
135    let p_updated_at_le = updated_at_le;
136
137    let uri_str = format!("{}/logs", configuration.base_path);
138    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
139
140    if let Some(ref param_value) = p_type {
141        req_builder = req_builder.query(&[("type", &param_value.to_string())]);
142    }
143    if let Some(ref param_value) = p_webhook_type {
144        req_builder = req_builder.query(&[("webhookType", &param_value.to_string())]);
145    }
146    if let Some(ref param_value) = p_assistant_id {
147        req_builder = req_builder.query(&[("assistantId", &param_value.to_string())]);
148    }
149    if let Some(ref param_value) = p_phone_number_id {
150        req_builder = req_builder.query(&[("phoneNumberId", &param_value.to_string())]);
151    }
152    if let Some(ref param_value) = p_customer_id {
153        req_builder = req_builder.query(&[("customerId", &param_value.to_string())]);
154    }
155    if let Some(ref param_value) = p_squad_id {
156        req_builder = req_builder.query(&[("squadId", &param_value.to_string())]);
157    }
158    if let Some(ref param_value) = p_call_id {
159        req_builder = req_builder.query(&[("callId", &param_value.to_string())]);
160    }
161    if let Some(ref param_value) = p_page {
162        req_builder = req_builder.query(&[("page", &param_value.to_string())]);
163    }
164    if let Some(ref param_value) = p_sort_order {
165        req_builder = req_builder.query(&[("sortOrder", &param_value.to_string())]);
166    }
167    if let Some(ref param_value) = p_limit {
168        req_builder = req_builder.query(&[("limit", &param_value.to_string())]);
169    }
170    if let Some(ref param_value) = p_created_at_gt {
171        req_builder = req_builder.query(&[("createdAtGt", &param_value.to_string())]);
172    }
173    if let Some(ref param_value) = p_created_at_lt {
174        req_builder = req_builder.query(&[("createdAtLt", &param_value.to_string())]);
175    }
176    if let Some(ref param_value) = p_created_at_ge {
177        req_builder = req_builder.query(&[("createdAtGe", &param_value.to_string())]);
178    }
179    if let Some(ref param_value) = p_created_at_le {
180        req_builder = req_builder.query(&[("createdAtLe", &param_value.to_string())]);
181    }
182    if let Some(ref param_value) = p_updated_at_gt {
183        req_builder = req_builder.query(&[("updatedAtGt", &param_value.to_string())]);
184    }
185    if let Some(ref param_value) = p_updated_at_lt {
186        req_builder = req_builder.query(&[("updatedAtLt", &param_value.to_string())]);
187    }
188    if let Some(ref param_value) = p_updated_at_ge {
189        req_builder = req_builder.query(&[("updatedAtGe", &param_value.to_string())]);
190    }
191    if let Some(ref param_value) = p_updated_at_le {
192        req_builder = req_builder.query(&[("updatedAtLe", &param_value.to_string())]);
193    }
194    if let Some(ref user_agent) = configuration.user_agent {
195        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
196    }
197    if let Some(ref token) = configuration.bearer_access_token {
198        req_builder = req_builder.bearer_auth(token.to_owned());
199    };
200
201    let req = req_builder.build()?;
202    let resp = configuration.client.execute(req).await?;
203
204    let status = resp.status();
205    let content_type = resp
206        .headers()
207        .get("content-type")
208        .and_then(|v| v.to_str().ok())
209        .unwrap_or("application/octet-stream");
210    let content_type = super::ContentType::from(content_type);
211
212    if !status.is_client_error() && !status.is_server_error() {
213        let content = resp.text().await?;
214        match content_type {
215            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
216            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::LogsPaginatedResponse`"))),
217            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::LogsPaginatedResponse`")))),
218        }
219    } else {
220        let content = resp.text().await?;
221        let entity: Option<LoggingControllerLogsQueryError> = serde_json::from_str(&content).ok();
222        Err(Error::ResponseError(ResponseContent {
223            status,
224            content,
225            entity,
226        }))
227    }
228}