eventbrite_sdk 3.0.11 → 3.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: 6d338ea5c07da5410ccdc449c576ecf3fe5ecd19
4
- data.tar.gz: de23a7829bb4af4076967559740c0d48c73d393b
3
+ metadata.gz: 24dafdd9ed7c31ea905658d02a2ed3f321321cbe
4
+ data.tar.gz: 0f2db9653b17aca5752d6de9bd0b8538f4ba5c10
5
5
  SHA512:
6
- metadata.gz: d39e71c1d0a2b372423d3d6e0145b985cff67aedfc8ae7a58f36972a7526f985b6287f937e54f65c168a358fc2e01ad7c6e007fa1ba3b8b3a131a1ffb38257a2
7
- data.tar.gz: 27c8368e96424e6b0732f85f25c46533d15471b22d36435c86af0532b89cc14c9f81db4587645bfa85e5d08e3069533f7379310e7c98b289f54c7338e77400f1
6
+ metadata.gz: fcbc3ada8483c3ad3b72680cb85ba9094e48a3cdd7608cccbfd33b7cf814def52e5d9a12a972690fbaae16b1bf2dd721d5eb2799eb5561c613383809a57fe81c
7
+ data.tar.gz: 9db0559d83eae4cc1dd1ee7e34b19bd7081569726130bd695f8e51429b86b259ff14712f952a98f7b3ea4d9e2495ae1d4ec47c6cd6d67e85f75419da98c075e3
data/README.md CHANGED
@@ -118,6 +118,38 @@ order = EventbriteSDK::Order.retrieve(id: id, expand: [:attendees, :event])
118
118
 
119
119
  ```
120
120
 
121
+ # Per-request Configuration
122
+
123
+ For apps that need to use multiple tokens during the lifetime of a process, it is
124
+ possible to set a per-request token:
125
+
126
+ ``` ruby
127
+
128
+ # Retrieving
129
+
130
+ EventbriteSDK::Order.retrieve(
131
+ id: id,
132
+ api_token: YOUR_REQUEST_TOKEN
133
+ )
134
+
135
+ # Retrieving lists
136
+
137
+ events = EventbriteSDK::User.me.owned_events.page(1, api_token: YOUR_REQUEST_TOKEN)
138
+
139
+ events.next_page(api_token: YOUR_REQUEST_TOKEN)
140
+
141
+ # Saving/Deleting
142
+
143
+ event.save(api_token: YOUR_REQUEST_TOKEN)
144
+
145
+ order.delete(api_token: YOUR_REQUEST_TOKEN)
146
+
147
+ ```
148
+
149
+ If you forget to provide the api_token key and `EventbriteSDK.token` is set, the request
150
+ will fall-back on the global token for the action called.
151
+
152
+
121
153
  ## Development
122
154
 
123
155
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.add_dependency 'rest-client'
22
+ spec.add_dependency 'rest-client', '~> 2.0'
23
23
  spec.add_development_dependency 'bundler', '~> 1.12'
24
24
  spec.add_development_dependency 'rake', '~> 10.0'
25
25
  spec.add_development_dependency 'rspec', '~> 3.0'
@@ -116,14 +116,11 @@ module EventbriteSDK
116
116
  end
117
117
 
118
118
  def self.request(params)
119
- query = params.delete(:query)
120
-
121
- params[:url] = url(params[:url].gsub(/\/$/, ''))
122
- params[:headers]['Authorization'] = "Bearer #{token}" if token
123
- params[:headers][:params] = query if query
124
- params[:verify_ssl] = verify_ssl?
119
+ req = format_request(params)
120
+ req[:url] = url(params[:url].gsub(%r{\/$}, ''))
121
+ req[:verify_ssl] = verify_ssl?
125
122
 
126
- response = RestClient::Request.execute(params)
123
+ response = RestClient::Request.execute(req)
127
124
 
128
125
  JSON.parse(response.body) unless response.body == ''
129
126
  rescue *EXCEPTION_MAP.keys => err
@@ -131,6 +128,18 @@ module EventbriteSDK
131
128
  raise handler[:class].new(handler[:message], err.response)
132
129
  end
133
130
 
131
+ def self.format_request(params)
132
+ query = params.delete(:query)
133
+ request_token = params.delete(:api_token)
134
+
135
+ auth = request_token || token
136
+
137
+ params[:headers]['Authorization'] = "Bearer #{auth}" if auth
138
+ params[:headers][:params] = query if query
139
+
140
+ params
141
+ end
142
+
134
143
  def self.url(path)
135
144
  "#{base_url}/#{path}/"
136
145
  end
@@ -50,9 +50,9 @@ module EventbriteSDK
50
50
  !id
51
51
  end
52
52
 
53
- def refresh!(request = EventbriteSDK)
53
+ def refresh!(request: EventbriteSDK, api_token: nil)
54
54
  unless new?
55
- reload request.get(url: path)
55
+ reload request.get(url: path, api_token: api_token)
56
56
  else
57
57
  false
58
58
  end
@@ -62,10 +62,11 @@ module EventbriteSDK
62
62
  "#<#{self.class}: #{JSON.pretty_generate(@attrs.to_h)}>"
63
63
  end
64
64
 
65
- def save(postfixed_path = '', request = EventbriteSDK)
65
+ def save(postfixed_path = '', api_token: nil, request: EventbriteSDK)
66
66
  if changed? || !postfixed_path.empty?
67
67
  response = request.post(url: path(postfixed_path),
68
- payload: attrs.payload(self.class.prefix))
68
+ payload: attrs.payload(self.class.prefix),
69
+ api_token: api_token)
69
70
 
70
71
  reload(response)
71
72
 
@@ -77,9 +78,8 @@ module EventbriteSDK
77
78
  attrs.to_json(opts)
78
79
  end
79
80
 
80
- def delete(request = EventbriteSDK)
81
- response = request.delete(url: path)
82
- response['deleted']
81
+ def delete(request: EventbriteSDK, api_token: nil)
82
+ request.delete(url: path, api_token: api_token)['deleted']
83
83
  end
84
84
 
85
85
  def read_attribute_for_serialization(attribute)
@@ -24,29 +24,29 @@ module EventbriteSDK
24
24
  other.concat(to_ary)
25
25
  end
26
26
 
27
- def retrieve(query: {})
27
+ def retrieve(query: {}, api_token: nil)
28
28
  @query.merge!(query)
29
- load_response
29
+ load_response(api_token)
30
30
 
31
31
  self
32
32
  end
33
33
 
34
- def page(num)
34
+ def page(num, api_token: nil)
35
35
  pagination['page_number'] = num
36
36
 
37
- retrieve
37
+ retrieve(api_token: api_token)
38
38
  end
39
39
 
40
- def next_page
41
- pagination['page_number'] += 1 unless page_number >= (page_count || 1)
40
+ def next_page(api_token: nil)
41
+ return if page_number >= (page_count || 1)
42
42
 
43
- retrieve
43
+ page(pagination['page_number'] + 1, api_token: api_token)
44
44
  end
45
45
 
46
- def prev_page
47
- pagination['page_number'] -= 1 unless page_number <= 1
46
+ def prev_page(api_token: nil)
47
+ return if page_number <= 1
48
48
 
49
- retrieve
49
+ page(pagination['page_number'] - 1, api_token: api_token)
50
50
  end
51
51
 
52
52
  %w(object_count page_number page_size page_count).each do |method|
@@ -77,10 +77,11 @@ module EventbriteSDK
77
77
  @pagination ||= { 'page_count' => 1, 'page_number' => 1 }
78
78
  end
79
79
 
80
- def load_response
80
+ def load_response(api_token)
81
81
  response = request.get(
82
82
  url: url_base,
83
- query: query.merge(page: page_number)
83
+ query: query.merge(page: page_number),
84
+ api_token: api_token
84
85
  )
85
86
 
86
87
  @objects = (response[key.to_s] || []).map { |raw| object_class.new(raw) }
@@ -1,5 +1,5 @@
1
1
  module EventbriteSDK
2
2
  # Major should always line up with the major point release of the public API
3
3
  # v3 => 3.x.x
4
- VERSION = '3.0.11'.freeze
4
+ VERSION = '3.1.0'.freeze
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventbrite_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.11
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vinnie Franco
@@ -10,22 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-08-02 00:00:00.000000000 Z
13
+ date: 2017-08-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ">="
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: '2.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ">="
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '0'
28
+ version: '2.0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: bundler
31
31
  requirement: !ruby/object:Gem::Requirement