Class: Meetupinator::MeetupAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/meetupinator/meetup_api.rb

Overview

This class is responsible for communicating with the meetup.com API and returning the json responses only.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key = nil) ⇒ MeetupAPI

Returns a new instance of MeetupAPI.



10
11
12
13
14
15
# File 'lib/meetupinator/meetup_api.rb', line 10

def initialize(api_key = nil)
  @base_uri = 'api.meetup.com'
  @groups_endpoint = '/2/groups'
  @events_endpoint = '/2/events'
  @api_key = pick_which_api_key(api_key)
end

Instance Attribute Details

#api_keyObject (readonly)

Returns the value of attribute api_key.



8
9
10
# File 'lib/meetupinator/meetup_api.rb', line 8

def api_key
  @api_key
end

Instance Method Details

#get_meetup_id(group_url_name) ⇒ Object



17
18
19
20
21
22
# File 'lib/meetupinator/meetup_api.rb', line 17

def get_meetup_id(group_url_name)
  query_string = 'key=' + @api_key + '&group_urlname=' + group_url_name
  uri = URI::HTTP.build(host: @base_uri, path: @groups_endpoint,
                        query: query_string)
  extract_meetup_id get_meetup_response(uri)
end

#get_upcoming_events(group_ids, weeks) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/meetupinator/meetup_api.rb', line 24

def get_upcoming_events(group_ids, weeks)
  query_string = 'sign=true&photo-host=public&status=upcoming&key=' +
                 @api_key + '&group_id=' + group_ids.join(',')

  query_string << "&time=,#{weeks}w" if weeks

  uri = URI::HTTP.build(host: @base_uri, path: @events_endpoint,
                        query: query_string)
  response = get_meetup_response uri
  get_results response
end