Sample code for 30+ languages & platforms
Rust Requires Chilkat v11.0.0+

VoiceBase -- Compound Expression Search

See more VoiceBase Examples

Demonstrates how to do a VoiceBase compound expression search. See VoiceBase Search for more details about Search.

Chilkat Rust Downloads

Rust

// This example assumes the Chilkat HTTP API to have been previously unlocked.
// See Global Unlock Sample for sample code.

// Insert your Bearer token here:
let access_token = "VOICEBASE_TOKEN".to_string();

let http = chilkat::Http::new();

let req = chilkat::HttpRequest::new();
req.set_http_verb("GET");
req.set_path("/v2-beta/media");

// Add the access (bearer) token to the request, which is a header
// having the following format:
// Authorization: Bearer <userAccessToken>
let sb_auth = chilkat::StringBuilder::new();
let _ = sb_auth.append("Bearer ");
let _ = sb_auth.append(&access_token);
req.add_header("Authorization", &sb_auth.get_as_string().unwrap_or_default());

// Search for media containing the terms any of the terms "test", "number", or "three"
req.add_param("query", "\"test\" OR \"number\" OR \"three\"");

let resp = chilkat::HttpResponse::new();
if http.http_s_req("apis.voicebase.com", 443, true, &req, &resp).is_err() {
    println!("{}", http.last_error_text());
    return;
}

// Examine the response status code and body.
println!("Response status code = {}", resp.status_code());

// The response should be JSON, even if an error.
let json = chilkat::JsonObject::new();
let _ = json.load(&resp.body_str());
json.set_emit_compact(false);

// A successful response will have a status code = 200
if resp.status_code() != 200 {
    println!("Failed.");
} else {
    println!("mediaId: {}", json.string_of("mediaId").unwrap_or_default());
    println!("href: {}", json.string_of("_links.self.href").unwrap_or_default());
    println!("status: {}", json.string_of("status").unwrap_or_default());
    println!("Success.");
}

// See the sample JSON response below..

// Iterate over the JSON like this:
let dt = chilkat::DateTime::new();
let dt_obj = chilkat::DtObj::new();

let media_count = json.size_of_array("media");
let mut i = 0;
while i < media_count {
    json.set_i(i);

    println!("-- {} --", i);
    println!("  mediaId: {}", json.string_of("media[i].mediaId").unwrap_or_default());
    println!("  status: {}", json.string_of("media[i].status").unwrap_or_default());
    println!("  contentType: {}", json.string_of("media[i].metadata.contentType").unwrap_or_default());
    println!("  milliseconds: {}", json.string_of("media[i].metadata.length.milliseconds").unwrap_or_default());
    println!("  descriptive: {}", json.string_of("media[i].metadata.length.descriptive").unwrap_or_default());
    let date_created = json.string_of("media[i].dateCreated").unwrap_or_default();
    let _ = dt.set_from_timestamp(&date_created);

    let local_time = true;
    dt.to_dt_obj(local_time, &dt_obj);

    println!("  {}/{}  {}:{}", dt_obj.month(), dt_obj.day(), dt_obj.hour(), dt_obj.minute());

    i = i + 1;
}

println!("Finished.");

// A sample JSON response:

// { 
//   "_links": { 
//     "self": { 
//       "href": "/v2-beta/media"
//     }
//   },
//   "media": [
//     { 
//       "mediaId": "26063536-FFFF-4020-93ba-0878112d834b",
//       "status": "finished",
//       "metadata": { 
//         "contentType": "audio/x-wav",
//         "length": { 
//           "milliseconds": 85141,
//           "descriptive": "85.0 sec"
//         }
//       },
//       "dateCreated": "2017-01-19T16:49:32.000Z"
//     },
//     { 
//       "mediaId": "8163fbbc-FFFF-4794-aa95-045420bb321d",
//       "status": "finished",
//       "metadata": { 
//         "contentType": "audio/x-wav",
//         "length": { 
//           "milliseconds": 65342,
//           "descriptive": "65.0 sec"
//         }
//       },
//       "dateCreated": "2017-01-19T20:08:49.000Z"
//     },
// ...
// ...
//     { 
//       "mediaId": "b01e27be-FFFF-4b62-8802-6dc66a75c4d3",
//       "status": "finished",
//       "metadata": { 
//         "contentType": "audio/x-wav",
//         "length": { 
//           "milliseconds": 11581,
//           "descriptive": "11.0 sec"
//         }
//       },
//       "dateCreated": "2017-02-06T20:55:43.000Z"
//     }
//   ]
// }