1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use mime;
use reqwest::header::{CONTENT_TYPE, HeaderMap, HeaderName, HeaderValue, HOST};

use client::*;

#[derive(Debug)]
pub struct Token<'a> {
    client: &'a Client,
    token:  String,
}

impl<'a> Token<'a> {
    pub fn new(client: &Client, token: String) -> Token {
        Token {
            client: client,
            token:  token,
        }
    }

    pub fn get_headers(&self) -> HeaderMap {
        let mut headers = HeaderMap::new();
        headers.insert(CONTENT_TYPE, HeaderValue::from_str(mime::TEXT_PLAIN_UTF_8.as_ref()).expect("failed to parse mime type"));
        headers.insert(HOST, HeaderValue::from_str(&self.client.host_and_maybe_port()).unwrap_or_else(|_| HeaderValue::from_static("localhost")));
        if let Ok(token) = HeaderValue::from_str(&self.token) {
            headers.insert(HeaderName::from_static("x-warp10-token"), token);
        }
        headers
    }
}