eventbrite_sdk 3.0.11 → 3.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: 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