diff options
author | Teddy Wing | 2018-04-15 03:56:11 +0200 |
---|---|---|
committer | Teddy Wing | 2018-04-15 03:56:11 +0200 |
commit | 6f30e6bf71c8d015be5bf20019ef0a3745370dc6 (patch) | |
tree | c974ea04f949ded8cf3c2378dcd488ec9509c8a2 | |
parent | e892df7e0a98114c2003773787c9c921bfce12f8 (diff) | |
download | meetup-find-events-rss-6f30e6bf71c8d015be5bf20019ef0a3745370dc6.tar.bz2 |
Add `Venue` type and venue field to `Event`
This allows us to deserialise the venue location for events and include
it in the RSS items.
-rw-r--r-- | meetup/src/client.rs | 13 | ||||
-rw-r--r-- | meetup/src/event.rs | 10 | ||||
-rw-r--r-- | src/meetup_rss.rs | 1 |
3 files changed, 23 insertions, 1 deletions
diff --git a/meetup/src/client.rs b/meetup/src/client.rs index 23bf6df..9fa66dd 100644 --- a/meetup/src/client.rs +++ b/meetup/src/client.rs @@ -62,6 +62,7 @@ fn parse_json(json: String) -> Result<Vec<Event>> { #[cfg(test)] mod tests { use super::*; + use event::Venue; #[test] fn test_parse_json_parses_event_json() { @@ -79,6 +80,12 @@ mod tests { link: "https://www.meetup.com/Cambridge-Hackspace/events/249620800/".to_owned(), local_date: Some("2018-04-17".to_owned()), local_time: Some("18:30".to_owned()), + venue: Some(Venue { + name: "Cambridge Hackspace".to_owned(), + address_1: "438 Somerville Avenue".to_owned(), + city: "Somerville".to_owned(), + localized_country_name: "USA".to_owned(), + }), }, Event { name: "PyCon Rehearsal Night #1".to_owned(), @@ -86,6 +93,12 @@ mod tests { link: "https://www.meetup.com/bostonpython/events/247552529/".to_owned(), local_date: Some("2018-04-25".to_owned()), local_time: Some("19:00".to_owned()), + venue: Some(Venue { + name: "VMWare".to_owned(), + address_1: "2 Ave de Lafayette".to_owned(), + city: "Boston".to_owned(), + localized_country_name: "USA".to_owned(), + }), }, ] ); diff --git a/meetup/src/event.rs b/meetup/src/event.rs index d25c1d2..30b3fca 100644 --- a/meetup/src/event.rs +++ b/meetup/src/event.rs @@ -5,7 +5,15 @@ pub struct Event { pub link: String, pub local_date: Option<String>, pub local_time: Option<String>, - // venue struct + pub venue: Option<Venue>, +} + +#[derive(Debug, Deserialize, PartialEq)] +pub struct Venue { + pub name: String, + pub address_1: String, + pub city: String, + pub localized_country_name: String, } diff --git a/src/meetup_rss.rs b/src/meetup_rss.rs index de5d2ee..fe7b6df 100644 --- a/src/meetup_rss.rs +++ b/src/meetup_rss.rs @@ -48,6 +48,7 @@ mod tests { link: "http://example.com".to_owned(), local_date: Some("2018-04-13".to_owned()), local_time: Some("18:30".to_owned()), + venue: None, } ]; let event = &events[0]; |