diff --git a/.gitignore b/.gitignore index 555c10dd..24a802e7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ **/*.rs.bk Cargo.lock .idea + +#vim files +*swp diff --git a/Cargo.toml b/Cargo.toml index e51646aa..fcb697cf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "africastalking_gateway" -version = "0.1.0" -authors = ["Matt Gathu "] +version = "0.1.1" +authors = ["Matt Gathu ", "Brian Orwe "] description = "A Rust library for communicating with the Africa's Talking REST API." documentation = "https://docs.rs/africastalking_gateway" @@ -16,8 +16,7 @@ license = "MIT" travis-ci = { repository = "rust-nairobi/africastalking-rust"} [dependencies] -reqwest = "0.8.1" -hyper = "0.11.6" +reqwest = { version = "0.11", features = ["json","blocking"] } serde = "1.0.37" serde_derive = "1.0.37" serde_json = "1.0" diff --git a/README.md b/README.md index 59f53f09..9ab46145 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,23 @@ A Rust library for communicating with the Africa's Talking REST API. +### Requirements + +OpenSSL. +*Ubuntu:* + +``` +sudo apt-get install libssl-dev +``` + +*Fedora:* + +``` +sudo dnf install openssl-devel +``` + + + ### installation diff --git a/src/lib.rs b/src/lib.rs index f3107b0e..e0bbd413 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,8 +5,6 @@ #[macro_use] extern crate error_chain; -#[macro_use] -extern crate hyper; extern crate reqwest; extern crate serde; #[macro_use] @@ -14,14 +12,13 @@ extern crate serde_derive; #[macro_use] extern crate serde_json as json; +use reqwest::header::{HeaderMap,ACCEPT}; + use std::collections::HashMap; use std::io::Read; -use hyper::header::{Accept, Headers}; use serde::ser::Serialize; -header! { (Apikey, "apikey") => [String] } - #[allow(unused_variables)] trait HttpAccessMethods { fn send_request(&self, url: &str, data: Option>) {} @@ -40,7 +37,6 @@ error_chain! { } } } - /// SMS Message Struct #[derive(Serialize, Deserialize, Debug, Default)] #[allow(non_snake_case)] @@ -277,11 +273,11 @@ impl AfricasTalkingGateway { &self, url: &str, data: Option>, - ) -> Result { - let mut headers = Headers::new(); - headers.set(Accept::json()); - headers.set(Apikey(self.api_key.clone())); - let client = reqwest::Client::new(); + ) -> Result { + let mut headers = HeaderMap::new(); + headers.insert(ACCEPT,"application/json".parse().unwrap()); + headers.insert("Apikey",self.api_key.clone().parse().unwrap()); + let client = reqwest::blocking::Client::new(); let resp = match data { Some(map) => client.post(url).json(&map).send()?, None => client.get(url).headers(headers).send()?, @@ -290,21 +286,21 @@ impl AfricasTalkingGateway { Ok(resp) } - fn send_form_data(&self, url: &str, data: T) -> Result { - let mut headers = Headers::new(); - headers.set(Accept::json()); - headers.set(Apikey(self.api_key.clone())); - let client = reqwest::Client::new(); + fn send_form_data(&self, url: &str, data: T) -> Result { + let mut headers = HeaderMap::new(); + headers.insert(ACCEPT, "application/json".parse().unwrap()); + headers.insert("Apikey",self.api_key.clone().parse().unwrap()); + let client = reqwest::blocking::Client::new(); let resp = client.post(url).form(&data).headers(headers).send()?; Ok(resp) } - fn send_json_request(&self, url: &str, data: T) -> Result { - let mut headers = Headers::new(); - headers.set(Accept::json()); - headers.set(Apikey(self.api_key.clone())); - let client = reqwest::Client::new(); + fn send_json_request(&self, url: &str, data: T) -> Result { + let mut headers = HeaderMap::new(); + headers.insert(ACCEPT, "application/json".parse().unwrap()); + headers.insert("Apikey",self.api_key.clone().parse().unwrap()); + let client = reqwest::blocking::Client::new(); let resp = client.post(url).json(&data).headers(headers).send()?; Ok(resp)