libedgegrid 0.0.2

This library implements an Authentication handler for the Akamai OPEN EdgeGrid Authentication scheme in Rust
use auth::EdgeGridAuth;
use request;
use request::HttpRequestVerb::*;
use serde_json;

#[cfg(feature = "serde_macros")]
include!("req.rs.in");

#[cfg(not(feature = "serde_macros"))]
include!(concat!(env!("OUT_DIR"), "/ccu/req.rs"));

impl PurgeBody {
    pub fn new(urls: Vec<String>) -> PurgeBody {
        PurgeBody { objects: urls }
    }
}

const BASE_URL: &'static str = "/ccu/v2/";

pub fn purge(
    edge_grid_auth: &EdgeGridAuth,
    queue_name: &str,
    body: PurgeBody
) -> ::EdgeGridResponse {
    let relurl = &format!("{}queues/{}", BASE_URL, queue_name)[..];
    let json = &try!(serde_json::to_string(&body))[..];
    Ok(try!(request::request(edge_grid_auth, relurl, Some(json), POST)))
}

pub fn purge_status(
    edge_grid_auth: &EdgeGridAuth,
    purge_id: &str
) -> ::EdgeGridResponse {
    let relurl = &format!("{}purges/{}", BASE_URL, purge_id)[..];
    Ok(try!(request::request(edge_grid_auth, relurl, None, GET)))
}

pub fn queue_length(
    edge_grid_auth: &EdgeGridAuth,
    queue_name: &str
) -> ::EdgeGridResponse {
    let relurl = &format!("{}queues/{}", BASE_URL, queue_name)[..];
    Ok(try!(request::request(edge_grid_auth, relurl, None, GET)))
}