aboutsummaryrefslogtreecommitdiffstats
path: root/meetup/src
diff options
context:
space:
mode:
Diffstat (limited to 'meetup/src')
-rw-r--r--meetup/src/client.rs7
-rw-r--r--meetup/src/errors.rs6
-rw-r--r--meetup/src/lib.rs3
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;