Skip to content
This repository has been archived by the owner on Mar 8, 2022. It is now read-only.

Commit

Permalink
Fix bug due to possible nil venue when retrieved from meetup.
Browse files Browse the repository at this point in the history
Issue #33
  • Loading branch information
toch committed Jul 14, 2015
1 parent f4938b6 commit c6020f7
Showing 1 changed file with 33 additions and 1 deletion.
34 changes: 33 additions & 1 deletion app/models/meetup_event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,51 @@ class << self
def all
json = HTTParty.get("https://api.meetup.com/2/events?&sign=true&photo-host=public&group_id=15138792,12922902,5356052&page=20&key=#{ENV['MEETUP_API_KEY']}").body
raw_events = JSON.parse(json)['results']
raw_events = [] unless raw_events
events = []
raw_events.each do |event|
venue = create_venue_from_payload(event['venue'])
events << MeetupEvent.new(
name: event['name'],
description: event['description'],
time: event['time'],
attendees: event['yes_rsvp_count'],
address: event['venue']['address_1'],
venue: event['venue']['name'],
url: event['event_url'],
url: event['event_url']
)
end
events
end

private
class NullVenue
def address
""
end
def name
"None"
end
end

class Venue
attr_reader :address, :name
def initialize(name: "", address: "")
@name = name
@address = address

@address = "" unless @address
@name = "None" unless @name
end
end

def create_venue_from_payload(venue_hash)
return NullVenue.new if venue_hash.nil?

Venue.new(
name: venue_hash["name"],
address: venue_hash["address_1"]
)
end
end
end

0 comments on commit c6020f7

Please sign in to comment.