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 +4 -4
- data/README.md +54 -6
- data/eventbrite.gemspec +5 -6
- data/lib/eventbrite.rb +27 -7
- data/lib/eventbrite/resources/format.rb +13 -0
- data/lib/eventbrite/resources/organizer.rb +4 -0
- data/lib/eventbrite/resources/subcategory.rb +12 -0
- data/lib/eventbrite/resources/ticket_class.rb +20 -0
- data/lib/eventbrite/resources/venue.rb +4 -0
- data/lib/eventbrite/resources/webhook.rb +14 -0
- data/lib/eventbrite/util.rb +3 -1
- data/lib/eventbrite/version.rb +1 -1
- metadata +15 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13ea3196152c0ac71b1d89be5191a1fcdad2afb4
|
4
|
+
data.tar.gz: 2b59985f4d637987cab7047c6edc71001d2142d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
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.
|
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
|
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
|
|
data/eventbrite.gemspec
CHANGED
@@ -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 = ["
|
11
|
-
spec.description = %q{
|
12
|
-
spec.summary = %q{
|
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", "~>
|
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"
|
data/lib/eventbrite.rb
CHANGED
@@ -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
|
-
|
35
|
-
|
38
|
+
DEFAULTS = {
|
39
|
+
api_base: 'https://www.eventbriteapi.com',
|
40
|
+
api_version: 'v3'
|
41
|
+
}
|
36
42
|
|
37
43
|
class << self
|
38
|
-
|
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
|
-
"#{
|
56
|
+
"#{api_base}/#{api_version}#{url}"
|
43
57
|
end
|
44
58
|
|
45
59
|
def self.request(method, url, token, params={})
|
46
|
-
unless 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,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,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
|
data/lib/eventbrite/util.rb
CHANGED
@@ -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,
|
data/lib/eventbrite/version.rb
CHANGED
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
|
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:
|
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: '
|
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: '
|
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:
|
84
|
-
with Eventbrite.
|
69
|
+
description: Eventbrite rubygem for API v3.
|
85
70
|
email:
|
86
|
-
-
|
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.
|
128
|
+
rubygems_version: 2.5.2
|
138
129
|
signing_key:
|
139
130
|
specification_version: 4
|
140
|
-
summary:
|
131
|
+
summary: Eventbrite rubygem for API v3.
|
141
132
|
test_files: []
|