eventbrite 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7ba321779cc37aa069ce9c37599b3dfc28a55271
4
- data.tar.gz: c6526dcc66929712de9db0ec0d47783f0dde8b3f
3
+ metadata.gz: 13ea3196152c0ac71b1d89be5191a1fcdad2afb4
4
+ data.tar.gz: 2b59985f4d637987cab7047c6edc71001d2142d2
5
5
  SHA512:
6
- metadata.gz: e39d14d1ff19a3db865e0fb7fc81c55c36e74873edd02cdedb444f4d19b96c9154ff53d99f560b83340dd1bbda438f1e7c3f8f70c77d73c0436a987fa18cc27b
7
- data.tar.gz: 1adbdac81eaebe6c610f33df6d06c5cbef126b8145cfea900b973509f34177ec7960585f911ad0ff997bf4c41880641f209121f482b1128e9e496b9b3d67c650
6
+ metadata.gz: 7d330581f0c562174f0d70bfaa6989c5392af36b69e1bb50ca4079285c5f84828d0880d6e0c92c52cb1978d4de2b85e2ccf36f58f4a23b59593ce454cd8ef1cc
7
+ data.tar.gz: db46b40d79f12cc2787abb34f8385eaedefad01fd3d7575f21c6c420c5abe322fed36ffe89f40b777a80ab7fbf15e7cac7fd5daf64735f3de8939ea7398689c0
data/README.md CHANGED
@@ -4,8 +4,6 @@
4
4
 
5
5
  ## Installation
6
6
 
7
- NOTE: PLEASE NOTE THAT WE ARE STILL TRYING TO ACQUIRE THE GEM NAME `eventbrite`.
8
-
9
7
  Add this line to your application's Gemfile:
10
8
 
11
9
  gem 'eventbrite'
@@ -41,13 +39,13 @@ Eventbrite::Event.search({q: 'Dogecoin'}, 'your_access_token')
41
39
  Please not that not all APIs have pagination.
42
40
 
43
41
  ```ruby
44
- events = Eventbrite::Event.searh({q: 'Dogecoin'})
42
+ events = Eventbrite::Event.search({q: 'Dogecoin'})
45
43
  events.paginated? # => true
46
44
 
47
45
  # Get all events
48
46
  all_events = events.events
49
47
  while events.next?
50
- events = Eventbrite::Event.searh({q: 'Dogecoin', page: events.next_page})
48
+ events = Eventbrite::Event.search({q: 'Dogecoin', page: events.next_page})
51
49
  all_events.concat(events.events)
52
50
  end
53
51
  ```
@@ -56,7 +54,7 @@ end
56
54
 
57
55
  ```ruby
58
56
  # For supported parameters, check out the link above.
59
- Eventbrite::Event.searh({q: 'Dogecoin'})
57
+ Eventbrite::Event.search({q: 'Dogecoin'})
60
58
  ```
61
59
 
62
60
  ### [Event Categories](http://developer.eventbrite.com/docs/event-categories/)
@@ -65,6 +63,18 @@ Eventbrite::Event.searh({q: 'Dogecoin'})
65
63
  Eventbrite::Category.all
66
64
  ```
67
65
 
66
+ ### [Event Subcategories](https://www.eventbrite.com/developer/v3/endpoints/categories/#ebapi-get-subcategories/)
67
+
68
+ ```ruby
69
+ Eventbrite::Subcategory.all
70
+ ```
71
+
72
+ ### [Event Formats](https://www.eventbrite.com/developer/v3/endpoints/formats/)
73
+
74
+ ```ruby
75
+ Eventbrite::Format.all
76
+ ```
77
+
68
78
  ### [Event Details](http://developer.eventbrite.com/docs/event-details/)
69
79
 
70
80
  ```ruby
@@ -109,6 +119,13 @@ Eventbrite::Discount.all({ event_id: 'event_id' })
109
119
  Eventbrite::AccessCode.all({ event_id: 'event_id' })
110
120
  ```
111
121
 
122
+ ### [Event Ticket Classes](https://www.eventbrite.com/developer/v3/endpoints/events/#ebapi-get-events-id-ticket-classes)
123
+
124
+ ```ruby
125
+ # The parameter `event_id` is required.
126
+ Eventbrite::TicketClass.all({ event_id: 'event_id' })
127
+ ```
128
+
112
129
  ### [Event Transfers](http://developer.eventbrite.com/docs/event-transfers/)
113
130
 
114
131
  ```ruby
@@ -175,8 +192,11 @@ Eventbrite::User.owned_event_attendees({ user_id: 'user_id' })
175
192
  ### [User Venues](http://developer.eventbrite.com/docs/user-venues/)
176
193
 
177
194
  ```ruby
195
+ # Retrieve a User’s Venues
178
196
  # The parameter `user_id` is required.
179
197
  Eventbrite::User.venues({ user_id: 'user_id' })
198
+ # Retrieve a Venue
199
+ Eventbrite::Venue.retrieve('venue_id')
180
200
  ```
181
201
 
182
202
  ### [User Organizers](http://developer.eventbrite.com/docs/user-organizers/)
@@ -206,9 +226,37 @@ Eventbrite::ContactList.all({ user_id: 'user_id' })
206
226
  Eventbrite::ContactList.retrieve('user_id', 'contact_list_id')
207
227
  ```
208
228
 
229
+ ### [Webhooks](http://www.eventbrite.com/developer/v3/endpoints/webhooks/)
230
+
231
+ ```ruby
232
+ # Retrieve a Webhook.
233
+ Eventbrite::Webhook.retrieve('webhook_id')
234
+
235
+ # Create a Webhook.
236
+ # See above link for supported parameters.
237
+ Eventbrite::Webhook.create({endpoint_url: 'your_webhooks_endpoint_url'})
238
+
239
+ # Delete a Webhook.
240
+ Eventbrite::Webhook.delete('webhook_id')
241
+
242
+ ```
243
+ ### [Expansions](https://www.eventbrite.com/developer/v3/api_overview/expansions/)
244
+
245
+ ```ruby
246
+ # For supported expansions, check out the link above.
247
+ # Required parameters dependent on method called, refer to methods covered above for required parameters
248
+
249
+ # Retrieve venue information with events
250
+ Eventbrite::User.owned_events({ user_id: 'user_id', expand: 'venue' })
251
+
252
+ # Retrieve organizer and venue information with events
253
+ Eventbrite::User.owned_events({ user_id: 'user_id', expand: 'organizer,venue' })
254
+ ```
255
+
256
+
209
257
  ## Todo
210
258
 
211
- * Event Atteedees' Details API should support parameters
259
+ * Event Attendees' Details API should support parameters
212
260
  * POST/UPDATE/DELETE request for the API
213
261
  * Support for chained method
214
262
 
@@ -7,10 +7,10 @@ Gem::Specification.new do |spec|
7
7
  spec.name = "eventbrite"
8
8
  spec.version = Eventbrite::VERSION
9
9
  spec.authors = ["Teng Siong Ong"]
10
- spec.email = ["hi@signwithenvoy.com"]
11
- spec.description = %q{This gem provides access to the Eventbrite V3 api. We are not affiliated with Eventbrite.}
12
- spec.summary = %q{API access to Eventbrite V3}
13
- spec.homepage = ""
10
+ spec.email = ["siong1987@gmail.com"]
11
+ spec.description = %q{Eventbrite rubygem for API v3.}
12
+ spec.summary = %q{Eventbrite rubygem for API v3.}
13
+ spec.homepage = "https://github.com/envoy/eventbrite"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -18,8 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "rest-client", "~> 1.4"
22
- spec.add_dependency "hashie", "~> 3.0"
21
+ spec.add_dependency "rest-client", "~> 2.0"
23
22
 
24
23
  spec.add_development_dependency "bundler", "~> 1.3"
25
24
  spec.add_development_dependency "byebug"
@@ -1,5 +1,4 @@
1
1
  require 'rest_client'
2
- require 'hashie'
3
2
 
4
3
  # Version
5
4
  require 'eventbrite/version'
@@ -15,14 +14,19 @@ require 'eventbrite/api_array_resource'
15
14
  # Resources
16
15
  require 'eventbrite/resources/event'
17
16
  require 'eventbrite/resources/category'
17
+ require 'eventbrite/resources/subcategory'
18
18
  require 'eventbrite/resources/user'
19
19
  require 'eventbrite/resources/attendee'
20
20
  require 'eventbrite/resources/order'
21
21
  require 'eventbrite/resources/discount'
22
+ require 'eventbrite/resources/format'
22
23
  require 'eventbrite/resources/access_code'
24
+ require 'eventbrite/resources/ticket_class'
23
25
  require 'eventbrite/resources/transfer'
24
26
  require 'eventbrite/resources/team'
25
27
  require 'eventbrite/resources/contact_list'
28
+ require 'eventbrite/resources/venue'
29
+ require 'eventbrite/resources/webhook'
26
30
 
27
31
  # Errors
28
32
  require 'eventbrite/errors/eventbrite_error'
@@ -31,19 +35,29 @@ require 'eventbrite/errors/authentication_error'
31
35
  require 'eventbrite/errors/invalid_request_error'
32
36
 
33
37
  module Eventbrite
34
- @api_base = 'https://www.eventbriteapi.com'
35
- @api_version = 'v3'
38
+ DEFAULTS = {
39
+ api_base: 'https://www.eventbriteapi.com',
40
+ api_version: 'v3'
41
+ }
36
42
 
37
43
  class << self
38
- attr_accessor :api_base, :api_version, :token
44
+ [:api_base, :api_version, :token].each do |key|
45
+ define_method "#{key}=" do |value|
46
+ Thread.current["eventbrite_#{key}"] = value
47
+ end
48
+
49
+ define_method key do
50
+ Thread.current["eventbrite_#{key}"] || DEFAULTS[key]
51
+ end
52
+ end
39
53
  end
40
54
 
41
55
  def self.api_url(url='')
42
- "#{@api_base}/#{api_version}#{url}"
56
+ "#{api_base}/#{api_version}#{url}"
43
57
  end
44
58
 
45
59
  def self.request(method, url, token, params={})
46
- unless token ||= @token
60
+ unless token ||= self.token
47
61
  raise AuthenticationError.new('No access token provided. Set your token using "Eventbrite.token = <access-token>"."')
48
62
  end
49
63
 
@@ -96,7 +110,13 @@ private
96
110
  end
97
111
 
98
112
  def self.execute_request(opts)
99
- RestClient::Request.execute(opts)
113
+ RestClient::Request.execute(opts){ |response, request, result, &block|
114
+ if [301, 302, 307].include? response.code
115
+ response.follow_redirection(&block)
116
+ else
117
+ response.return!(&block)
118
+ end
119
+ }
100
120
  end
101
121
 
102
122
  def self.parse(response)
@@ -0,0 +1,13 @@
1
+ module Eventbrite
2
+ class Format < APIResource
3
+ def self.url
4
+ # NOTE: even thought eb docs say '/format', it is '/formats'
5
+ "/formats/"
6
+ end
7
+
8
+ def self.all(params={}, token=nil)
9
+ response, token = Eventbrite.request(:get, url, token, params)
10
+ Util.convert_to_eventbrite_object(response, token)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,4 @@
1
+ module Eventbrite
2
+ class Organizer < APIResource
3
+ end
4
+ end
@@ -0,0 +1,12 @@
1
+ module Eventbrite
2
+ class Subcategory < APIResource
3
+ def self.url
4
+ "/subcategories"
5
+ end
6
+
7
+ def self.all(params={}, token=nil)
8
+ response, token = Eventbrite.request(:get, url, token, params)
9
+ Util.convert_to_eventbrite_object(response, token)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,20 @@
1
+ module Eventbrite
2
+ class TicketClass < APIResource
3
+
4
+ def self.all(params={}, token=nil)
5
+ unless event_id = params.delete(:event_id)
6
+ raise InvalidRequestError.new('No event_id provided.')
7
+ end
8
+
9
+ response, token = Eventbrite.request(:get, self.all_url(event_id), token, params)
10
+ Util.convert_to_eventbrite_object(response, token)
11
+ end
12
+
13
+ private
14
+
15
+ def self.all_url(event_id)
16
+ "/events/#{event_id}/#{CGI.escape(class_name.downcase)}es"
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,4 @@
1
+ module Eventbrite
2
+ class Venue < APIResource
3
+ end
4
+ end
@@ -0,0 +1,14 @@
1
+ module Eventbrite
2
+ class Webhook < APIArrayResource
3
+ def self.create(body, token=nil)
4
+ response, token = Eventbrite.request(:post, url, token, body)
5
+ Util.convert_to_eventbrite_object(response, token)
6
+ end
7
+
8
+ def self.delete(id, token=nil)
9
+ instance = self.new(id, token)
10
+ response, token = Eventbrite.request(:delete, instance.url, token)
11
+ Util.convert_to_eventbrite_object(response, token)
12
+ end
13
+ end
14
+ end
@@ -8,8 +8,10 @@ module Eventbrite
8
8
  orders: Order,
9
9
  discouns: Discount,
10
10
  access_codes: AccessCode,
11
+ ticket_classes: TicketClass,
11
12
  transfers: Transfer,
12
- teams: Team
13
+ teams: Team,
14
+ webhooks: Webhook
13
15
  # 'balance' => Balance,
14
16
  # 'balance_transaction' => BalanceTransaction,
15
17
  # 'charge' => Charge,
@@ -1,3 +1,3 @@
1
1
  module Eventbrite
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventbrite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Teng Siong Ong
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-12 00:00:00.000000000 Z
11
+ date: 2018-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.4'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.4'
27
- - !ruby/object:Gem::Dependency
28
- name: hashie
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '3.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '3.0'
26
+ version: '2.0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: bundler
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,10 +66,9 @@ dependencies:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
- description: This gem provides access to the Eventbrite V3 api. We are not affiliated
84
- with Eventbrite.
69
+ description: Eventbrite rubygem for API v3.
85
70
  email:
86
- - hi@signwithenvoy.com
71
+ - siong1987@gmail.com
87
72
  executables: []
88
73
  extensions: []
89
74
  extra_rdoc_files: []
@@ -108,13 +93,19 @@ files:
108
93
  - lib/eventbrite/resources/contact_list.rb
109
94
  - lib/eventbrite/resources/discount.rb
110
95
  - lib/eventbrite/resources/event.rb
96
+ - lib/eventbrite/resources/format.rb
111
97
  - lib/eventbrite/resources/order.rb
98
+ - lib/eventbrite/resources/organizer.rb
99
+ - lib/eventbrite/resources/subcategory.rb
112
100
  - lib/eventbrite/resources/team.rb
101
+ - lib/eventbrite/resources/ticket_class.rb
113
102
  - lib/eventbrite/resources/transfer.rb
114
103
  - lib/eventbrite/resources/user.rb
104
+ - lib/eventbrite/resources/venue.rb
105
+ - lib/eventbrite/resources/webhook.rb
115
106
  - lib/eventbrite/util.rb
116
107
  - lib/eventbrite/version.rb
117
- homepage: ''
108
+ homepage: https://github.com/envoy/eventbrite
118
109
  licenses:
119
110
  - MIT
120
111
  metadata: {}
@@ -134,8 +125,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
125
  version: '0'
135
126
  requirements: []
136
127
  rubyforge_project:
137
- rubygems_version: 2.4.5
128
+ rubygems_version: 2.5.2
138
129
  signing_key:
139
130
  specification_version: 4
140
- summary: API access to Eventbrite V3
131
+ summary: Eventbrite rubygem for API v3.
141
132
  test_files: []