eventbrite 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []