diff options
Diffstat (limited to 'meetup')
-rw-r--r-- | meetup/src/client.rs | 7 | ||||
-rw-r--r-- | meetup/src/errors.rs | 6 | ||||
-rw-r--r-- | meetup/src/lib.rs | 3 |
3 files changed, 12 insertions, 4 deletions
diff --git a/meetup/src/client.rs b/meetup/src/client.rs index 6f98a1f..5e8e636 100644 --- a/meetup/src/client.rs +++ b/meetup/src/client.rs @@ -1,8 +1,7 @@ use reqwest; use serde_json; -use std::error::Error; - +use errors::*; use event::Event; const MEETUP_BASE_URL: &'static str = "https://api.meetup.com"; @@ -23,7 +22,7 @@ impl Client { end_date_range: String, radius: Option<String>, page: Option<String>, - ) -> Result<Vec<Event>, Box<Error>> { + ) -> Result<Vec<Event>> { let mut params = vec![ ("key", self.token.clone()), ("lat", latitude), @@ -52,7 +51,7 @@ impl Client { } -fn parse_json(json: String) -> Result<Vec<Event>, serde_json::Error> { +fn parse_json(json: String) -> Result<Vec<Event>> { let parsed: serde_json::Value = serde_json::from_str(json.as_ref())?; let events: Vec<Event> = serde_json::from_value(parsed["events"].clone())?; diff --git a/meetup/src/errors.rs b/meetup/src/errors.rs new file mode 100644 index 0000000..b826cf9 --- /dev/null +++ b/meetup/src/errors.rs @@ -0,0 +1,6 @@ +error_chain! { + foreign_links { + Reqwest(::reqwest::Error); + SerdeJson(::serde_json::Error); + } +} diff --git a/meetup/src/lib.rs b/meetup/src/lib.rs index 10c0ed2..ba62ff2 100644 --- a/meetup/src/lib.rs +++ b/meetup/src/lib.rs @@ -1,3 +1,5 @@ +#[macro_use] +extern crate error_chain; extern crate reqwest; extern crate serde; @@ -6,4 +8,5 @@ extern crate serde_derive; extern crate serde_json; pub mod client; +pub mod errors; pub mod event; |