Class: Almanack::EventSource::MeetupAPIRequest
- Inherits:
-
Object
- Object
- Almanack::EventSource::MeetupAPIRequest
- Defined in:
- lib/almanack/event_source/meetup_group.rb
Constant Summary collapse
- REQUIRED_OPTIONS =
[:group_domain, :group_urlname, :group_id]
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #error_message_from(data) ⇒ Object
-
#initialize(options = {}) ⇒ MeetupAPIRequest
constructor
A new instance of MeetupAPIRequest.
- #response ⇒ Object
- #results ⇒ Object
- #uri ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ MeetupAPIRequest
Returns a new instance of MeetupAPIRequest.
82 83 84 85 |
# File 'lib/almanack/event_source/meetup_group.rb', line 82 def initialize( = {}) @connection = .delete(:connection) @options = end |
Instance Attribute Details
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
80 81 82 |
# File 'lib/almanack/event_source/meetup_group.rb', line 80 def connection @connection end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
80 81 82 |
# File 'lib/almanack/event_source/meetup_group.rb', line 80 def @options end |
Instance Method Details
#error_message_from(data) ⇒ Object
118 119 120 121 122 123 124 125 126 |
# File 'lib/almanack/event_source/meetup_group.rb', line 118 def (data) = [data['problem'], data['details']].compact.join(' - ') if .include?('not authorized') << ' ⚠️ See https://github.com/Aupajo/almanack/issues/36 for more details' end end |
#response ⇒ Object
107 108 109 110 111 112 113 114 115 116 |
# File 'lib/almanack/event_source/meetup_group.rb', line 107 def response response = connection.get(uri) data = JSON.parse(response.body) if data['problem'] raise MeetupAPIError, (data) end data end |
#results ⇒ Object
87 88 89 |
# File 'lib/almanack/event_source/meetup_group.rb', line 87 def results response['results'] end |
#uri ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/almanack/event_source/meetup_group.rb', line 91 def uri if !.has_key?(:key) raise MeetupAPIException, 'Cannot form valid URI, missing :key option' end if (.keys & REQUIRED_OPTIONS).empty? raise MeetupAPIException, "Cannot form valid URI, missing one of: #{REQUIRED_OPTIONS}" end endpoint = "https://api.meetup.com/2/events" Addressable::URI.parse(endpoint).tap do |uri| uri.query_values = end end |