From 6f30e6bf71c8d015be5bf20019ef0a3745370dc6 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 15 Apr 2018 03:56:11 +0200 Subject: 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. --- meetup/src/client.rs | 13 +++++++++++++ meetup/src/event.rs | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) (limited to 'meetup') 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> { #[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, pub local_time: Option, - // venue struct + pub venue: Option, +} + +#[derive(Debug, Deserialize, PartialEq)] +pub struct Venue { + pub name: String, + pub address_1: String, + pub city: String, + pub localized_country_name: String, } -- cgit v1.2.3