scala-vienna/scala-vienna-web

Events without a location are not displayed on the front page as upcoming events

Opened this issue · 0 comments

We currently have a dojo coming up but is not displayed on the front page. The metup API query returns the following JSON without the "venue" attribute for that event. See below the dojo event without the attribute and the next event with it:

{
  "results":[
      {
         "rsvp_limit":16,
         "status":"upcoming",
         "visibility":"public",
         "maybe_rsvp_count":0,
         "id":"157747942",
         "utc_offset":3600000,
         "time":1389718800000,
         "waitlist_count":0,
         "updated":1388740474000,
         "yes_rsvp_count":5,
         "created":1388435382000,
         "event_url":"http:\/\/www.meetup.com\/scala-vienna\/events\/157747942\/",
         "description":"<p><b>Mini Scala CodeRetreat<\/b><\/p> <p>(Summary: #TDD, #pairProgramming, #activities, #constraints)<\/p> <p>We'll program in <b>pairs<\/b>. One pair sits down for a session and tries to solve the <b>problem<\/b> doing a typical <a href=\"http:\/\/coderetreat.org\/events\/global-day-of-coderetreat-vienna-2014\">CodeRetreat<\/a> <b>activity<\/b>. These are based on <b>TDD<\/b>, and usually come with some interesting (and fun!) <b>constraints<\/b>...<\/p> <p><b>Possible activities<\/b>:<\/p> <p>• TDD as if you meant it (only refactor when necessary)<\/p> <p>• Cooperative Ping-Pong (typical TDD cycle, alternating roles)<\/p> <p>• Muted Ping-Pong (silence! you may only communicate with your partner through code)<\/p> <p>• Evil Ping-Pong (make the test pass, but evilly introduce garbage code with it)<\/p> <p>• Code Swap (work on the code from another pair, from a previous session)<\/p> <p>• Extreme Baby-Stepping (commit within 2 minutes of TDD or die... ehmm... revert)<\/p> <p>• No if \/ for \/ built-in-types \/ mutable data-types<\/p> <p>• Functions \/ Methods no longer than 4 lines<\/p> <p>These activities <i>can<\/i> be combined, but usually we do only <i>one per session<\/i>. After the session is over, developers form new pairs.<\/p> <p>Use the comments to raise your voice if you have activities you'd like to try out :-) With the amount of time we'll have at our disposal we'll only manage to have 2 sessions, at most 3.<\/p> <p><b>The problem<\/b> is yet to be defined, but following the CodeRetreat custom will probably be <a href=\"http:\/\/en.wikipedia.org\/wiki\/Conway\">Conway's Game of Life<\/a>. I'm open to suggestions (though it has to be simple enough, yet not trivial).<\/p> <p><b>Requirements<\/b>:<\/p> <p>• Your laptop<\/p> <p>• A working Scala development environment (Eclipse, IntelliJ, etc.)<\/p> <p>• The ability to create a Scala project instantly, <b>with unit-test support<\/b> (see our <a href=\"https:\/\/github.com\/scala-vienna\/dojo-quickstart\">Dojo Quickstart<\/a> project)<\/p> <p>• Installed git client + familiarity with the basics of git<\/p> <p>• Willingness to have fun ;-)<\/p> <p>Hopefully we'll have as much fun as it was in the last CodeRetreat! :-)<\/p>",
         "how_to_find_us":"Location to be defined (or: val location:Future[Location] = defineLocation(); )",
         "name":"Scala Coding Dojo",
         "headcount":0,
         "group":{
            "id":5700242,
            "group_lat":48.220001220703125,
            "name":"Vienna Scala User Group",
            "group_lon":16.3700008392334,
            "join_mode":"open",
            "urlname":"scala-vienna",
            "who":"Scala Types"
         }
      },
      {
         "visibility":"public",
         "status":"upcoming",
         "maybe_rsvp_count":0,
         "venue":{
            "id":11968802,
            "lon":16.355125,
            "repinned":false,
            "name":"Sektor5",
            "address_1":"Siebenbrunnengasse 44",
            "lat":48.186073,
            "country":"at",
            "city":"Vienna"
         },
         "id":"145315622",
         "utc_offset":3600000,
         "time":1390410000000,
         "waitlist_count":0,
         "created":1381648319000,
         "yes_rsvp_count":17,
         "updated":1387746679000,
         "event_url":"http:\/\/www.meetup.com\/scala-vienna\/events\/145315622\/",
         "description":"<p><b>Preliminary Agenda<\/b><\/p> <p>• <i><b>Web UI Testing in Scala<\/b><\/i><b> <\/b>by <a href=\"https:\/\/twitter.com\/radimpavlicek\">Radim<\/a> (under 20 minutes)<\/p> <p>• <i>Add the <b>title of your talk<\/b><\/i> (your name)<br\/>A short summary and approximate duration (without discussion time) <\/p> <p>• <i>Add the <b>title of your talk<\/b><\/i> (your name)<br\/>A short summary and approximate duration (without discussion time)<\/p> <p>Lightning\/micro talks also welcome! <\/p> <p>Follow the conversation on our Google group: <a href=\"http:\/\/groups.google.com\/group\/scala-vienna\"><a href=\"http:\/\/groups.google.com\/group\/scala-vienna\" class=\"linkified\">http:\/\/groups.google.com\/group\/scala-vienna<\/a><\/a><\/p>",
         "headcount":0,
         "name":"January Scala Monthly Meetup",
         "group":{
            "id":5700242,
            "group_lat":48.220001220703125,
            "name":"Vienna Scala User Group",
            "group_lon":16.3700008392334,
            "join_mode":"open",
            "urlname":"scala-vienna",
            "who":"Scala Types"
         }
      },

The code that parses/transforms this JSON is in service.Events.transformEvents and I presume we need to add logic there to handle the case of an event without a venue.