seatsio 32.5.0 → 34.0.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/.github/workflows/build.yml +1 -1
- data/.ruby-version +1 -1
- data/Gemfile.lock +4 -4
- data/README.md +47 -6
- data/lib/seatsio/chart_reports.rb +2 -2
- data/lib/seatsio/charts.rb +2 -2
- data/lib/seatsio/domain.rb +12 -26
- data/lib/seatsio/event_reports.rb +2 -2
- data/lib/seatsio/events.rb +20 -11
- data/lib/seatsio/exception.rb +3 -0
- data/lib/seatsio/hold_tokens.rb +2 -2
- data/lib/seatsio/httpClient.rb +17 -6
- data/lib/seatsio/subaccounts.rb +2 -2
- data/lib/seatsio/usage_reports.rb +2 -2
- data/lib/seatsio/version.rb +1 -1
- data/lib/seatsio/workspaces.rb +2 -2
- data/lib/seatsio.rb +12 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8cf426e69e7b398fe7f656998b5918baaadb7366a34d3f69ba6923944e1a5e6
|
4
|
+
data.tar.gz: 535d5c8073412db116e808ab2ed465ce788e195396d88660ad4c9aaa682c3465
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c002279fb10b41d5c1c17d4994eb74f6d4e43f5c565475e70abff3bd6944598c004163cd16acda88827e1ea436d909bb181822b20c2900bb7ad2aa4be630997
|
7
|
+
data.tar.gz: f1216cf4ed428193d8cc3a2450b090fc49cc226b95ca6cd2efd3033ff00de494a365f398cc21d191f1bec3b533cff32d7eb60d35b2018994e8b04369a50cf536
|
data/.github/workflows/build.yml
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.4.0
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
seatsio (
|
4
|
+
seatsio (34.0.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -32,8 +32,8 @@ GEM
|
|
32
32
|
unf (0.1.4)
|
33
33
|
unf_ext
|
34
34
|
unf_ext (0.0.7.7)
|
35
|
-
webmock (3.
|
36
|
-
addressable (>= 2.
|
35
|
+
webmock (3.14.0)
|
36
|
+
addressable (>= 2.8.0)
|
37
37
|
crack (>= 0.3.2)
|
38
38
|
hashdiff (>= 0.4.0, < 2.0.0)
|
39
39
|
|
@@ -49,4 +49,4 @@ DEPENDENCIES
|
|
49
49
|
webmock (~> 3.4, >= 3.4.2)
|
50
50
|
|
51
51
|
BUNDLED WITH
|
52
|
-
1.
|
52
|
+
2.1.4
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
[](https://github.com/seatsio/seatsio-ruby/actions/workflows/build.yml)
|
4
4
|
[](https://badge.fury.io/rb/seatsio)
|
5
5
|
|
6
|
-
This is the official Ruby client library for the [Seats.io V2 REST API](https://docs.seats.io/docs/api-overview), supporting Ruby 2.
|
6
|
+
This is the official Ruby client library for the [Seats.io V2 REST API](https://docs.seats.io/docs/api-overview), supporting Ruby 2.4.0+
|
7
7
|
|
8
8
|
## Versioning
|
9
9
|
|
@@ -52,6 +52,22 @@ client = Seatsio::Client.new(Seatsio::Region.EU(), "my-workspace-secret-key")
|
|
52
52
|
client.events.change_object_status("<EVENT KEY>", ["A-1", "A-2"], "my-custom-status")
|
53
53
|
```
|
54
54
|
|
55
|
+
### Retrieving object category and status (and other information)
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
require('seatsio')
|
59
|
+
client = Seatsio::Client.new(Seatsio::Region.EU(), "my-workspace-secret-key")
|
60
|
+
object_infos = client.events.retrieve_object_infos key: event.key, labels: ['A-1', 'A-2']
|
61
|
+
|
62
|
+
puts object_infos['A-1'].category_key
|
63
|
+
puts object_infos['A-1'].category_label
|
64
|
+
puts object_infos['A-1'].status
|
65
|
+
|
66
|
+
puts object_infos['A-2'].category_key
|
67
|
+
puts object_infos['A-2'].category_label
|
68
|
+
puts object_infos['A-2'].status
|
69
|
+
```
|
70
|
+
|
55
71
|
### Listing all charts
|
56
72
|
|
57
73
|
```ruby
|
@@ -73,7 +89,8 @@ Each page is Enumerable, and it has `next_page_starts_after` and `previous_page_
|
|
73
89
|
|
74
90
|
```ruby
|
75
91
|
# ... user initially opens the screen ...
|
76
|
-
|
92
|
+
require('seatsio')
|
93
|
+
client = Seatsio::Client.new(Seatsio::Region.EU(), "my-workspace-secret-key")
|
77
94
|
firstPage = client.charts.list.first_page()
|
78
95
|
firstPage.each do |chart|
|
79
96
|
puts chart.key
|
@@ -82,7 +99,8 @@ end
|
|
82
99
|
|
83
100
|
```ruby
|
84
101
|
# ... user clicks on 'next page' button ...
|
85
|
-
|
102
|
+
require('seatsio')
|
103
|
+
client = Seatsio::Client.new(Seatsio::Region.EU(), "my-workspace-secret-key")
|
86
104
|
nextPage = client.charts.list.page_after(firstPage.next_page_starts_after)
|
87
105
|
nextPage.each do |chart|
|
88
106
|
puts chart.key
|
@@ -91,7 +109,8 @@ end
|
|
91
109
|
|
92
110
|
```ruby
|
93
111
|
# ... user clicks on 'previous page' button ...
|
94
|
-
|
112
|
+
require('seatsio')
|
113
|
+
client = Seatsio::Client.new(Seatsio::Region.EU(), "my-workspace-secret-key")
|
95
114
|
previousPage = client.charts.list.page_before(nextPage.previous_page_ends_before)
|
96
115
|
previousPage.each do |chart|
|
97
116
|
puts chart.key
|
@@ -102,10 +121,21 @@ end
|
|
102
121
|
|
103
122
|
```ruby
|
104
123
|
require('seatsio')
|
105
|
-
client = Seatsio::Client.new(Seatsio::Region.EU(), "my-company-admin-key")
|
124
|
+
client = Seatsio::Client.new(Seatsio::Region.EU(), "my-company-admin-key") # can be found on https://app.seats.io/company-settings
|
106
125
|
client.workspaces.create name: "a workspace"
|
107
126
|
```
|
108
127
|
|
128
|
+
### Creating a chart and an event with the company admin key
|
129
|
+
|
130
|
+
```ruby
|
131
|
+
require('seatsio')
|
132
|
+
# company admin key can be found on https://app.seats.io/company-settings
|
133
|
+
# workspace public key can be found on https://app.seats.io/workspace-settings
|
134
|
+
client = Seatsio::Client.new(Seatsio::Region.EU(), "my-company-admin-key", "my-workspace-public-key")
|
135
|
+
chart = client.charts.create
|
136
|
+
event = client.events.create chart_key: chart.key
|
137
|
+
```
|
138
|
+
|
109
139
|
# Error handling
|
110
140
|
|
111
141
|
When an API call results in a 4xx or 5xx error (e.g. when a chart could not be found), a SeatsioException is thrown.
|
@@ -121,4 +151,15 @@ This exception contains a message string describing what went wrong, and also tw
|
|
121
151
|
This library supports [exponential backoff](https://en.wikipedia.org/wiki/Exponential_backoff).
|
122
152
|
|
123
153
|
When you send too many concurrent requests, the server returns an error `429 - Too Many Requests`. The client reacts to this by waiting for a while, and then retrying the request.
|
124
|
-
If the request still fails with an error `429`, it waits a little longer, and try again.
|
154
|
+
If the request still fails with an error `429`, it waits a little longer, and try again. By default this happens 5 times, before giving up (after approximately 15 seconds).
|
155
|
+
|
156
|
+
We throw a `RateLimitExceededException` (which is a subclass of `SeatsioException`) when exponential backoff eventually fails.
|
157
|
+
|
158
|
+
To change the maximum number of retries, create the client as follows:
|
159
|
+
|
160
|
+
```ruby
|
161
|
+
require('seatsio')
|
162
|
+
client = Seatsio::Client.new(Seatsio::Region.EU(), "my-workspace-secret-key", max_retries = 3)
|
163
|
+
```
|
164
|
+
|
165
|
+
Passing in 0 disables exponential backoff completely. In that case, the client will never retry a failed request.
|
@@ -6,8 +6,8 @@ require 'cgi'
|
|
6
6
|
|
7
7
|
module Seatsio
|
8
8
|
class ChartReportsClient
|
9
|
-
def initialize(
|
10
|
-
@http_client =
|
9
|
+
def initialize(http_client)
|
10
|
+
@http_client = http_client
|
11
11
|
end
|
12
12
|
|
13
13
|
def by_label(chart_key, book_whole_tables = nil)
|
data/lib/seatsio/charts.rb
CHANGED
@@ -11,8 +11,8 @@ module Seatsio
|
|
11
11
|
class ChartsClient
|
12
12
|
attr_reader :archive
|
13
13
|
|
14
|
-
def initialize(
|
15
|
-
@http_client =
|
14
|
+
def initialize(http_client)
|
15
|
+
@http_client = http_client
|
16
16
|
@archive = Pagination::Cursor.new(Chart, 'charts/archive', @http_client)
|
17
17
|
end
|
18
18
|
|
data/lib/seatsio/domain.rb
CHANGED
@@ -201,25 +201,6 @@ module Seatsio
|
|
201
201
|
end
|
202
202
|
end
|
203
203
|
|
204
|
-
class ObjectStatus
|
205
|
-
FREE = 'free'
|
206
|
-
BOOKED = 'booked'
|
207
|
-
HELD = 'reservedByToken'
|
208
|
-
|
209
|
-
attr_reader :status, :hold_token, :order_id, :ticket_type,
|
210
|
-
:quantity, :extra_data, :for_sale
|
211
|
-
|
212
|
-
def initialize(data)
|
213
|
-
@status = data['status']
|
214
|
-
@hold_token = data['holdToken']
|
215
|
-
@order_id = data['orderId']
|
216
|
-
@ticket_type = data['ticketType']
|
217
|
-
@quantity = data['quantity']
|
218
|
-
@extra_data = data['extraData']
|
219
|
-
@for_sale = data['forSale']
|
220
|
-
end
|
221
|
-
end
|
222
|
-
|
223
204
|
class ChangeObjectStatusResult
|
224
205
|
|
225
206
|
attr_reader :objects
|
@@ -261,7 +242,7 @@ module Seatsio
|
|
261
242
|
end
|
262
243
|
end
|
263
244
|
|
264
|
-
class
|
245
|
+
class ChartObjectInfo
|
265
246
|
|
266
247
|
attr_reader :label, :labels, :ids, :category_key, :category_label, :section, :entrance, :capacity, :object_type,
|
267
248
|
:left_neighbour, :right_neighbour, :book_as_a_whole, :distance_to_focal_point
|
@@ -292,7 +273,7 @@ module Seatsio
|
|
292
273
|
data.each do |key, values|
|
293
274
|
items[key] = []
|
294
275
|
values.each do |value|
|
295
|
-
items[key] <<
|
276
|
+
items[key] << ChartObjectInfo.new(value)
|
296
277
|
end
|
297
278
|
end
|
298
279
|
@items = items
|
@@ -307,7 +288,7 @@ module Seatsio
|
|
307
288
|
if data.is_a? Array
|
308
289
|
items = []
|
309
290
|
data.each do |item|
|
310
|
-
items <<
|
291
|
+
items << EventObjectInfo.new(item)
|
311
292
|
end
|
312
293
|
@items = items
|
313
294
|
elsif data.nil?
|
@@ -317,7 +298,7 @@ module Seatsio
|
|
317
298
|
data.each do |key, values|
|
318
299
|
items[key] = []
|
319
300
|
values.each do |value|
|
320
|
-
items[key] <<
|
301
|
+
items[key] << EventObjectInfo.new(value)
|
321
302
|
end
|
322
303
|
end
|
323
304
|
@items = items
|
@@ -325,13 +306,17 @@ module Seatsio
|
|
325
306
|
end
|
326
307
|
end
|
327
308
|
|
328
|
-
class
|
309
|
+
class EventObjectInfo
|
310
|
+
FREE = 'free'
|
311
|
+
BOOKED = 'booked'
|
312
|
+
HELD = 'reservedByToken'
|
313
|
+
|
329
314
|
attr_reader :labels, :ids, :label, :order_id, :extra_data, :capacity, :status,
|
330
315
|
:category_key, :entrance, :object_type, :hold_token, :category_label,
|
331
316
|
:ticket_type, :num_booked, :num_free, :num_held, :for_sale, :section,
|
332
317
|
:is_accessible, :is_companion_seat, :has_restricted_view, :displayed_object_type,
|
333
318
|
:left_neighbour, :right_neighbour, :is_selectable, :is_disabled_by_social_distancing, :channel,
|
334
|
-
:book_as_a_whole, :distance_to_focal_point
|
319
|
+
:book_as_a_whole, :distance_to_focal_point, :holds
|
335
320
|
|
336
321
|
def initialize(data)
|
337
322
|
@status = data['status']
|
@@ -363,6 +348,7 @@ module Seatsio
|
|
363
348
|
@channel = data['channel']
|
364
349
|
@book_as_a_whole = data['bookAsAWhole']
|
365
350
|
@distance_to_focal_point = data['distanceToFocalPoint']
|
351
|
+
@holds = data['holds']
|
366
352
|
end
|
367
353
|
end
|
368
354
|
|
@@ -506,7 +492,7 @@ module Seatsio
|
|
506
492
|
def to_object_details(data)
|
507
493
|
object_details = {}
|
508
494
|
data.each do |key, value|
|
509
|
-
object_details[key] =
|
495
|
+
object_details[key] = EventObjectInfo.new(value)
|
510
496
|
end
|
511
497
|
object_details
|
512
498
|
end
|
@@ -7,8 +7,8 @@ require 'cgi'
|
|
7
7
|
module Seatsio
|
8
8
|
# Client for fetching event reports
|
9
9
|
class EventReportsClient
|
10
|
-
def initialize(
|
11
|
-
@http_client =
|
10
|
+
def initialize(http_client)
|
11
|
+
@http_client = http_client
|
12
12
|
end
|
13
13
|
|
14
14
|
def by_status(event_key, status = nil)
|
data/lib/seatsio/events.rb
CHANGED
@@ -11,8 +11,8 @@ require "seatsio/events/change_best_available_object_status_request"
|
|
11
11
|
module Seatsio
|
12
12
|
|
13
13
|
class EventsClient
|
14
|
-
def initialize(
|
15
|
-
@http_client =
|
14
|
+
def initialize(http_client)
|
15
|
+
@http_client = http_client
|
16
16
|
end
|
17
17
|
|
18
18
|
def create(chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil)
|
@@ -43,14 +43,23 @@ module Seatsio
|
|
43
43
|
@http_client.post("events/#{key}/actions/update-extra-data", payload)
|
44
44
|
end
|
45
45
|
|
46
|
-
def
|
47
|
-
|
48
|
-
|
49
|
-
|
46
|
+
def retrieve_object_info(key:, label:)
|
47
|
+
result = retrieve_object_infos key: key, labels: [label]
|
48
|
+
result[label]
|
49
|
+
end
|
50
|
+
|
51
|
+
def retrieve_object_infos(key:, labels:)
|
52
|
+
url = "events/#{key}/objects"
|
53
|
+
query_params = URI.encode_www_form(labels.map { |label| ['label', label]})
|
54
|
+
response = @http_client.get(url, query_params)
|
55
|
+
response.each do |key, value|
|
56
|
+
response[key] = EventObjectInfo.new(value)
|
57
|
+
end
|
58
|
+
response
|
50
59
|
end
|
51
60
|
|
52
61
|
def book(event_key_or_keys, object_or_objects, hold_token: nil, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil, ignore_social_distancing: nil)
|
53
|
-
self.change_object_status(event_key_or_keys, object_or_objects,
|
62
|
+
self.change_object_status(event_key_or_keys, object_or_objects, Seatsio::EventObjectInfo::BOOKED, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys, ignore_social_distancing: ignore_social_distancing)
|
54
63
|
end
|
55
64
|
|
56
65
|
def change_object_status(event_key_or_keys, object_or_objects, status, hold_token: nil, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil, ignore_social_distancing: nil)
|
@@ -72,7 +81,7 @@ module Seatsio
|
|
72
81
|
end
|
73
82
|
|
74
83
|
def hold(event_key_or_keys, object_or_objects, hold_token, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil, ignore_social_distancing: nil)
|
75
|
-
change_object_status(event_key_or_keys, object_or_objects,
|
84
|
+
change_object_status(event_key_or_keys, object_or_objects, Seatsio::EventObjectInfo::HELD, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys, ignore_social_distancing: ignore_social_distancing)
|
76
85
|
end
|
77
86
|
|
78
87
|
def change_best_available_object_status(key, number, status, categories: nil, hold_token: nil, extra_data: nil, ticket_types: nil, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil)
|
@@ -82,15 +91,15 @@ module Seatsio
|
|
82
91
|
end
|
83
92
|
|
84
93
|
def book_best_available(key, number, categories: nil, hold_token: nil, order_id: nil, keep_extra_data: nil, extra_data: nil, ticket_types: nil, ignore_channels: nil, channel_keys: nil)
|
85
|
-
change_best_available_object_status(key, number,
|
94
|
+
change_best_available_object_status(key, number, Seatsio::EventObjectInfo::BOOKED, categories: categories, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, extra_data: extra_data, ticket_types: ticket_types, ignore_channels: ignore_channels, channel_keys: channel_keys)
|
86
95
|
end
|
87
96
|
|
88
97
|
def hold_best_available(key, number, hold_token, categories: nil, order_id: nil, keep_extra_data: nil, extra_data: nil, ticket_types: nil, ignore_channels: nil, channel_keys: nil)
|
89
|
-
change_best_available_object_status(key, number,
|
98
|
+
change_best_available_object_status(key, number, Seatsio::EventObjectInfo::HELD, categories: categories, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, extra_data: extra_data, ticket_types: ticket_types, ignore_channels: ignore_channels, channel_keys: channel_keys)
|
90
99
|
end
|
91
100
|
|
92
101
|
def release(event_key_or_keys, object_or_objects, hold_token: nil, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil)
|
93
|
-
change_object_status(event_key_or_keys, object_or_objects,
|
102
|
+
change_object_status(event_key_or_keys, object_or_objects, Seatsio::EventObjectInfo::FREE, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys)
|
94
103
|
end
|
95
104
|
|
96
105
|
def delete(key:)
|
data/lib/seatsio/exception.rb
CHANGED
data/lib/seatsio/hold_tokens.rb
CHANGED
@@ -11,8 +11,8 @@ module Seatsio
|
|
11
11
|
|
12
12
|
class HoldTokensClient
|
13
13
|
# @return [Seatsio::HoldTokensClient]
|
14
|
-
def initialize(
|
15
|
-
@http_client =
|
14
|
+
def initialize(http_client)
|
15
|
+
@http_client = http_client
|
16
16
|
end
|
17
17
|
|
18
18
|
def create(expires_in_minutes: nil)
|
data/lib/seatsio/httpClient.rb
CHANGED
@@ -6,10 +6,11 @@ require "uri"
|
|
6
6
|
|
7
7
|
module Seatsio
|
8
8
|
class HttpClient
|
9
|
-
def initialize(secret_key, workspace_key, base_url)
|
9
|
+
def initialize(secret_key, workspace_key, base_url, max_retries)
|
10
10
|
@secret_key = Base64.encode64(secret_key)
|
11
11
|
@workspace_key = workspace_key
|
12
12
|
@base_url = base_url
|
13
|
+
@max_retries = max_retries
|
13
14
|
end
|
14
15
|
|
15
16
|
def execute(*args)
|
@@ -18,12 +19,18 @@ module Seatsio
|
|
18
19
|
unless @workspace_key.nil?
|
19
20
|
headers[:'X-Workspace-Key'] = @workspace_key
|
20
21
|
end
|
21
|
-
if args[2].include? :params
|
22
|
-
headers[:params] = args[2][:params]
|
23
|
-
end
|
24
22
|
|
25
23
|
url = "#{@base_url}/#{args[1]}"
|
26
24
|
|
25
|
+
if args[2].include? :params
|
26
|
+
params = args[2][:params]
|
27
|
+
if params.is_a? Hash
|
28
|
+
headers[:params] = params
|
29
|
+
else
|
30
|
+
url += "?" + params
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
27
34
|
request_options = { method: args[0], url: url, headers: headers }
|
28
35
|
|
29
36
|
if args[0] == :post
|
@@ -41,7 +48,11 @@ module Seatsio
|
|
41
48
|
rescue RestClient::NotFound => e
|
42
49
|
raise Exception::NotFoundException.new(e.response)
|
43
50
|
rescue RestClient::ExceptionWithResponse => e
|
44
|
-
|
51
|
+
if e.response.code == 429
|
52
|
+
raise Exception::RateLimitExceededException.new(e.response)
|
53
|
+
else
|
54
|
+
raise Exception::SeatsioException.new(e.response)
|
55
|
+
end
|
45
56
|
rescue RestClient::Exceptions::Timeout
|
46
57
|
raise Exception::SeatsioException.new("Timeout ERROR")
|
47
58
|
rescue SocketError
|
@@ -55,7 +66,7 @@ module Seatsio
|
|
55
66
|
begin
|
56
67
|
return RestClient::Request.execute(request_options)
|
57
68
|
rescue RestClient::ExceptionWithResponse => e
|
58
|
-
if e.response.code != 429 || retry_count >=
|
69
|
+
if e.response.code != 429 || retry_count >= @max_retries
|
59
70
|
raise e
|
60
71
|
else
|
61
72
|
wait_time = (2 ** (retry_count + 2)) / 10.0
|
data/lib/seatsio/subaccounts.rb
CHANGED
@@ -8,8 +8,8 @@ require "seatsio/domain"
|
|
8
8
|
|
9
9
|
module Seatsio
|
10
10
|
class SubaccountsClient
|
11
|
-
def initialize(
|
12
|
-
@http_client =
|
11
|
+
def initialize(http_client)
|
12
|
+
@http_client = http_client
|
13
13
|
end
|
14
14
|
|
15
15
|
def create(name: nil)
|
@@ -6,8 +6,8 @@ require 'cgi'
|
|
6
6
|
|
7
7
|
module Seatsio
|
8
8
|
class UsageReportsClient
|
9
|
-
def initialize(
|
10
|
-
@http_client =
|
9
|
+
def initialize(http_client)
|
10
|
+
@http_client = http_client
|
11
11
|
end
|
12
12
|
|
13
13
|
def summary_for_all_months
|
data/lib/seatsio/version.rb
CHANGED
data/lib/seatsio/workspaces.rb
CHANGED
@@ -9,8 +9,8 @@ require "seatsio/domain"
|
|
9
9
|
module Seatsio
|
10
10
|
class WorkspacesClient
|
11
11
|
|
12
|
-
def initialize(
|
13
|
-
@http_client =
|
12
|
+
def initialize(http_client)
|
13
|
+
@http_client = http_client
|
14
14
|
end
|
15
15
|
|
16
16
|
def create(name:, is_test: nil)
|
data/lib/seatsio.rb
CHANGED
@@ -13,19 +13,22 @@ module Seatsio
|
|
13
13
|
attr_reader :charts, :subaccounts, :workspaces, :events,
|
14
14
|
:hold_tokens, :chart_reports, :event_reports, :usage_reports
|
15
15
|
|
16
|
-
def initialize(region, secret_key, workspace_key = nil)
|
16
|
+
def initialize(region, secret_key, workspace_key = nil, max_retries = 5)
|
17
17
|
base_url = region.url
|
18
|
-
@
|
19
|
-
@
|
20
|
-
@
|
21
|
-
@
|
22
|
-
@
|
23
|
-
@
|
24
|
-
@
|
25
|
-
@
|
18
|
+
@http_client = Seatsio::HttpClient.new(secret_key, workspace_key, base_url, max_retries)
|
19
|
+
@charts = ChartsClient.new(@http_client)
|
20
|
+
@subaccounts = SubaccountsClient.new(@http_client)
|
21
|
+
@workspaces = WorkspacesClient.new(@http_client)
|
22
|
+
@events = EventsClient.new(@http_client)
|
23
|
+
@hold_tokens = HoldTokensClient.new(@http_client)
|
24
|
+
@chart_reports = ChartReportsClient.new(@http_client)
|
25
|
+
@event_reports = EventReportsClient.new(@http_client)
|
26
|
+
@usage_reports = UsageReportsClient.new(@http_client)
|
26
27
|
end
|
28
|
+
|
27
29
|
end
|
28
30
|
|
31
|
+
|
29
32
|
class Region
|
30
33
|
attr_reader :url
|
31
34
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seatsio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 34.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seats.io
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|