vapi_client/apis/
test_suite_tests_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 [`test_suite_test_controller_create`]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum TestSuiteTestControllerCreateError {
20    UnknownValue(serde_json::Value),
21}
22
23/// struct for typed errors of method [`test_suite_test_controller_find_all_paginated`]
24#[derive(Debug, Clone, Serialize, Deserialize)]
25#[serde(untagged)]
26pub enum TestSuiteTestControllerFindAllPaginatedError {
27    UnknownValue(serde_json::Value),
28}
29
30/// struct for typed errors of method [`test_suite_test_controller_find_one`]
31#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(untagged)]
33pub enum TestSuiteTestControllerFindOneError {
34    UnknownValue(serde_json::Value),
35}
36
37/// struct for typed errors of method [`test_suite_test_controller_remove`]
38#[derive(Debug, Clone, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum TestSuiteTestControllerRemoveError {
41    UnknownValue(serde_json::Value),
42}
43
44/// struct for typed errors of method [`test_suite_test_controller_update`]
45#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(untagged)]
47pub enum TestSuiteTestControllerUpdateError {
48    UnknownValue(serde_json::Value),
49}
50
51pub async fn test_suite_test_controller_create(
52    configuration: &configuration::Configuration,
53    test_suite_id: &str,
54    test_suite_test_controller_create_request: models::TestSuiteTestControllerCreateRequest,
55) -> Result<
56    models::TestSuiteTestControllerCreate201Response,
57    Error<TestSuiteTestControllerCreateError>,
58> {
59    // add a prefix to parameters to efficiently prevent name collisions
60    let p_test_suite_id = test_suite_id;
61    let p_test_suite_test_controller_create_request = test_suite_test_controller_create_request;
62
63    let uri_str = format!(
64        "{}/test-suite/{testSuiteId}/test",
65        configuration.base_path,
66        testSuiteId = crate::apis::urlencode(p_test_suite_id)
67    );
68    let mut req_builder = configuration
69        .client
70        .request(reqwest::Method::POST, &uri_str);
71
72    if let Some(ref user_agent) = configuration.user_agent {
73        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
74    }
75    if let Some(ref token) = configuration.bearer_access_token {
76        req_builder = req_builder.bearer_auth(token.to_owned());
77    };
78    req_builder = req_builder.json(&p_test_suite_test_controller_create_request);
79
80    let req = req_builder.build()?;
81    let resp = configuration.client.execute(req).await?;
82
83    let status = resp.status();
84    let content_type = resp
85        .headers()
86        .get("content-type")
87        .and_then(|v| v.to_str().ok())
88        .unwrap_or("application/octet-stream");
89    let content_type = super::ContentType::from(content_type);
90
91    if !status.is_client_error() && !status.is_server_error() {
92        let content = resp.text().await?;
93        match content_type {
94            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
95            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TestSuiteTestControllerCreate201Response`"))),
96            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::TestSuiteTestControllerCreate201Response`")))),
97        }
98    } else {
99        let content = resp.text().await?;
100        let entity: Option<TestSuiteTestControllerCreateError> =
101            serde_json::from_str(&content).ok();
102        Err(Error::ResponseError(ResponseContent {
103            status,
104            content,
105            entity,
106        }))
107    }
108}
109
110pub async fn test_suite_test_controller_find_all_paginated(
111    configuration: &configuration::Configuration,
112    test_suite_id: &str,
113    page: Option<f64>,
114    sort_order: Option<&str>,
115    limit: Option<f64>,
116    created_at_gt: Option<String>,
117    created_at_lt: Option<String>,
118    created_at_ge: Option<String>,
119    created_at_le: Option<String>,
120    updated_at_gt: Option<String>,
121    updated_at_lt: Option<String>,
122    updated_at_ge: Option<String>,
123    updated_at_le: Option<String>,
124) -> Result<
125    models::TestSuiteTestsPaginatedResponse,
126    Error<TestSuiteTestControllerFindAllPaginatedError>,
127> {
128    // add a prefix to parameters to efficiently prevent name collisions
129    let p_test_suite_id = test_suite_id;
130    let p_page = page;
131    let p_sort_order = sort_order;
132    let p_limit = limit;
133    let p_created_at_gt = created_at_gt;
134    let p_created_at_lt = created_at_lt;
135    let p_created_at_ge = created_at_ge;
136    let p_created_at_le = created_at_le;
137    let p_updated_at_gt = updated_at_gt;
138    let p_updated_at_lt = updated_at_lt;
139    let p_updated_at_ge = updated_at_ge;
140    let p_updated_at_le = updated_at_le;
141
142    let uri_str = format!(
143        "{}/test-suite/{testSuiteId}/test",
144        configuration.base_path,
145        testSuiteId = crate::apis::urlencode(p_test_suite_id)
146    );
147    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
148
149    if let Some(ref param_value) = p_page {
150        req_builder = req_builder.query(&[("page", &param_value.to_string())]);
151    }
152    if let Some(ref param_value) = p_sort_order {
153        req_builder = req_builder.query(&[("sortOrder", &param_value.to_string())]);
154    }
155    if let Some(ref param_value) = p_limit {
156        req_builder = req_builder.query(&[("limit", &param_value.to_string())]);
157    }
158    if let Some(ref param_value) = p_created_at_gt {
159        req_builder = req_builder.query(&[("createdAtGt", &param_value.to_string())]);
160    }
161    if let Some(ref param_value) = p_created_at_lt {
162        req_builder = req_builder.query(&[("createdAtLt", &param_value.to_string())]);
163    }
164    if let Some(ref param_value) = p_created_at_ge {
165        req_builder = req_builder.query(&[("createdAtGe", &param_value.to_string())]);
166    }
167    if let Some(ref param_value) = p_created_at_le {
168        req_builder = req_builder.query(&[("createdAtLe", &param_value.to_string())]);
169    }
170    if let Some(ref param_value) = p_updated_at_gt {
171        req_builder = req_builder.query(&[("updatedAtGt", &param_value.to_string())]);
172    }
173    if let Some(ref param_value) = p_updated_at_lt {
174        req_builder = req_builder.query(&[("updatedAtLt", &param_value.to_string())]);
175    }
176    if let Some(ref param_value) = p_updated_at_ge {
177        req_builder = req_builder.query(&[("updatedAtGe", &param_value.to_string())]);
178    }
179    if let Some(ref param_value) = p_updated_at_le {
180        req_builder = req_builder.query(&[("updatedAtLe", &param_value.to_string())]);
181    }
182    if let Some(ref user_agent) = configuration.user_agent {
183        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
184    }
185    if let Some(ref token) = configuration.bearer_access_token {
186        req_builder = req_builder.bearer_auth(token.to_owned());
187    };
188
189    let req = req_builder.build()?;
190    let resp = configuration.client.execute(req).await?;
191
192    let status = resp.status();
193    let content_type = resp
194        .headers()
195        .get("content-type")
196        .and_then(|v| v.to_str().ok())
197        .unwrap_or("application/octet-stream");
198    let content_type = super::ContentType::from(content_type);
199
200    if !status.is_client_error() && !status.is_server_error() {
201        let content = resp.text().await?;
202        match content_type {
203            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
204            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TestSuiteTestsPaginatedResponse`"))),
205            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::TestSuiteTestsPaginatedResponse`")))),
206        }
207    } else {
208        let content = resp.text().await?;
209        let entity: Option<TestSuiteTestControllerFindAllPaginatedError> =
210            serde_json::from_str(&content).ok();
211        Err(Error::ResponseError(ResponseContent {
212            status,
213            content,
214            entity,
215        }))
216    }
217}
218
219pub async fn test_suite_test_controller_find_one(
220    configuration: &configuration::Configuration,
221    test_suite_id: &str,
222    id: &str,
223) -> Result<
224    models::TestSuiteTestControllerCreate201Response,
225    Error<TestSuiteTestControllerFindOneError>,
226> {
227    // add a prefix to parameters to efficiently prevent name collisions
228    let p_test_suite_id = test_suite_id;
229    let p_id = id;
230
231    let uri_str = format!(
232        "{}/test-suite/{testSuiteId}/test/{id}",
233        configuration.base_path,
234        testSuiteId = crate::apis::urlencode(p_test_suite_id),
235        id = crate::apis::urlencode(p_id)
236    );
237    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
238
239    if let Some(ref user_agent) = configuration.user_agent {
240        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
241    }
242    if let Some(ref token) = configuration.bearer_access_token {
243        req_builder = req_builder.bearer_auth(token.to_owned());
244    };
245
246    let req = req_builder.build()?;
247    let resp = configuration.client.execute(req).await?;
248
249    let status = resp.status();
250    let content_type = resp
251        .headers()
252        .get("content-type")
253        .and_then(|v| v.to_str().ok())
254        .unwrap_or("application/octet-stream");
255    let content_type = super::ContentType::from(content_type);
256
257    if !status.is_client_error() && !status.is_server_error() {
258        let content = resp.text().await?;
259        match content_type {
260            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
261            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TestSuiteTestControllerCreate201Response`"))),
262            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::TestSuiteTestControllerCreate201Response`")))),
263        }
264    } else {
265        let content = resp.text().await?;
266        let entity: Option<TestSuiteTestControllerFindOneError> =
267            serde_json::from_str(&content).ok();
268        Err(Error::ResponseError(ResponseContent {
269            status,
270            content,
271            entity,
272        }))
273    }
274}
275
276pub async fn test_suite_test_controller_remove(
277    configuration: &configuration::Configuration,
278    test_suite_id: &str,
279    id: &str,
280) -> Result<
281    models::TestSuiteTestControllerCreate201Response,
282    Error<TestSuiteTestControllerRemoveError>,
283> {
284    // add a prefix to parameters to efficiently prevent name collisions
285    let p_test_suite_id = test_suite_id;
286    let p_id = id;
287
288    let uri_str = format!(
289        "{}/test-suite/{testSuiteId}/test/{id}",
290        configuration.base_path,
291        testSuiteId = crate::apis::urlencode(p_test_suite_id),
292        id = crate::apis::urlencode(p_id)
293    );
294    let mut req_builder = configuration
295        .client
296        .request(reqwest::Method::DELETE, &uri_str);
297
298    if let Some(ref user_agent) = configuration.user_agent {
299        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
300    }
301    if let Some(ref token) = configuration.bearer_access_token {
302        req_builder = req_builder.bearer_auth(token.to_owned());
303    };
304
305    let req = req_builder.build()?;
306    let resp = configuration.client.execute(req).await?;
307
308    let status = resp.status();
309    let content_type = resp
310        .headers()
311        .get("content-type")
312        .and_then(|v| v.to_str().ok())
313        .unwrap_or("application/octet-stream");
314    let content_type = super::ContentType::from(content_type);
315
316    if !status.is_client_error() && !status.is_server_error() {
317        let content = resp.text().await?;
318        match content_type {
319            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
320            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TestSuiteTestControllerCreate201Response`"))),
321            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::TestSuiteTestControllerCreate201Response`")))),
322        }
323    } else {
324        let content = resp.text().await?;
325        let entity: Option<TestSuiteTestControllerRemoveError> =
326            serde_json::from_str(&content).ok();
327        Err(Error::ResponseError(ResponseContent {
328            status,
329            content,
330            entity,
331        }))
332    }
333}
334
335pub async fn test_suite_test_controller_update(
336    configuration: &configuration::Configuration,
337    test_suite_id: &str,
338    id: &str,
339    test_suite_test_controller_update_request: models::TestSuiteTestControllerUpdateRequest,
340) -> Result<
341    models::TestSuiteTestControllerCreate201Response,
342    Error<TestSuiteTestControllerUpdateError>,
343> {
344    // add a prefix to parameters to efficiently prevent name collisions
345    let p_test_suite_id = test_suite_id;
346    let p_id = id;
347    let p_test_suite_test_controller_update_request = test_suite_test_controller_update_request;
348
349    let uri_str = format!(
350        "{}/test-suite/{testSuiteId}/test/{id}",
351        configuration.base_path,
352        testSuiteId = crate::apis::urlencode(p_test_suite_id),
353        id = crate::apis::urlencode(p_id)
354    );
355    let mut req_builder = configuration
356        .client
357        .request(reqwest::Method::PATCH, &uri_str);
358
359    if let Some(ref user_agent) = configuration.user_agent {
360        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
361    }
362    if let Some(ref token) = configuration.bearer_access_token {
363        req_builder = req_builder.bearer_auth(token.to_owned());
364    };
365    req_builder = req_builder.json(&p_test_suite_test_controller_update_request);
366
367    let req = req_builder.build()?;
368    let resp = configuration.client.execute(req).await?;
369
370    let status = resp.status();
371    let content_type = resp
372        .headers()
373        .get("content-type")
374        .and_then(|v| v.to_str().ok())
375        .unwrap_or("application/octet-stream");
376    let content_type = super::ContentType::from(content_type);
377
378    if !status.is_client_error() && !status.is_server_error() {
379        let content = resp.text().await?;
380        match content_type {
381            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
382            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::TestSuiteTestControllerCreate201Response`"))),
383            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::TestSuiteTestControllerCreate201Response`")))),
384        }
385    } else {
386        let content = resp.text().await?;
387        let entity: Option<TestSuiteTestControllerUpdateError> =
388            serde_json::from_str(&content).ok();
389        Err(Error::ResponseError(ResponseContent {
390            status,
391            content,
392            entity,
393        }))
394    }
395}