seatsio 24.4.0 → 26.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/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/seatsio/domain.rb +25 -4
- data/lib/seatsio/event_reports.rb +8 -0
- data/lib/seatsio/events.rb +16 -22
- data/lib/seatsio/events/change_best_available_object_status_request.rb +4 -1
- data/lib/seatsio/events/change_object_status_in_batch_request.rb +2 -2
- data/lib/seatsio/events/change_object_status_request.rb +2 -1
- data/lib/seatsio/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 56dacdba1281d3633ebd9eec2ef5ce9b3b35b1f6c5bd823be2e5f02bd8157962
|
|
4
|
+
data.tar.gz: b54123ab3b42336f2b490dbc669996be69e6cd3438c3591ed4722993cbd22c44
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 58833779b5be413655325bc3dce81ac8bd78382887d7c13caba7097e3a52f33dd6009e91abdce0bcbc7961b09a7518046b809c8348940d1dee1ab1ff0615b87a
|
|
7
|
+
data.tar.gz: 71ac86858ccb803b5eb5002ce59552c261daebae7ef509334b2bf38ac828f66bd10d77b95274f8a059bdf64c1c13d389c13bfc8407404cf607c3ecb7434b74d0
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -40,7 +40,7 @@ client.events.release(event.key, ["A-1", "A-2"])
|
|
|
40
40
|
```ruby
|
|
41
41
|
require('seatsio')
|
|
42
42
|
client = Seatsio::Client.new("my-workspace-secret-key")
|
|
43
|
-
client.events.book(event.key, ["A-1", "A-2"], "a-hold-token")
|
|
43
|
+
client.events.book(event.key, ["A-1", "A-2"], hold_token: "a-hold-token")
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
### Changing object status
|
data/lib/seatsio/domain.rb
CHANGED
|
@@ -24,6 +24,7 @@ module Seatsio::Domain
|
|
|
24
24
|
@social_distancing_rulesets = data['socialDistancingRulesets'].map {
|
|
25
25
|
|key, r| [key, SocialDistancingRuleset.new(r['name'], r['numberOfDisabledSeatsToTheSides'], r['disableSeatsInFrontAndBehind'],
|
|
26
26
|
r['numberOfDisabledAisleSeats'], r['maxGroupSize'],
|
|
27
|
+
r['maxOccupancyAbsolute'], r['maxOccupancyPercentage'], r['fixedGroupLayout'],
|
|
27
28
|
r['disabledSeats'], r['enabledSeats'], r['index'])]
|
|
28
29
|
}.to_h
|
|
29
30
|
end
|
|
@@ -286,7 +287,7 @@ module Seatsio::Domain
|
|
|
286
287
|
:category_key, :entrance, :object_type, :hold_token, :category_label,
|
|
287
288
|
:ticket_type, :num_booked, :num_free, :num_held, :for_sale, :section,
|
|
288
289
|
:is_accessible, :is_companion_seat, :has_restricted_view, :displayed_object_type,
|
|
289
|
-
:left_neighbour, :right_neighbour, :is_selectable, :is_disabled_by_social_distancing
|
|
290
|
+
:left_neighbour, :right_neighbour, :is_selectable, :is_disabled_by_social_distancing, :channel
|
|
290
291
|
|
|
291
292
|
def initialize(data)
|
|
292
293
|
@status = data['status']
|
|
@@ -314,6 +315,7 @@ module Seatsio::Domain
|
|
|
314
315
|
@right_neighbour = data['rightNeighbour']
|
|
315
316
|
@is_selectable = data['isSelectable']
|
|
316
317
|
@is_disabled_by_social_distancing = data['isDisabledBySocialDistancing']
|
|
318
|
+
@channel = data['channel']
|
|
317
319
|
end
|
|
318
320
|
end
|
|
319
321
|
|
|
@@ -473,31 +475,50 @@ module Seatsio::Domain
|
|
|
473
475
|
|
|
474
476
|
class SocialDistancingRuleset
|
|
475
477
|
attr_reader :name, :number_of_disabled_seats_to_the_sides, :disable_seats_in_front_and_behind,
|
|
476
|
-
:number_of_disabled_aisle_seats, :max_group_size, :
|
|
478
|
+
:number_of_disabled_aisle_seats, :max_group_size, :max_occupancy_absolute,
|
|
479
|
+
:max_occupancy_percentage, :fixed_group_layout, :disabled_seats, :enabled_seats, :index
|
|
477
480
|
|
|
478
481
|
def initialize(name, number_of_disabled_seats_to_the_sides = 0, disable_seats_in_front_and_behind = false, number_of_disabled_aisle_seats = 0,
|
|
479
|
-
max_group_size = 0,
|
|
482
|
+
max_group_size = 0, max_occupancy_absolute = 0, max_occupancy_percentage = 0, fixed_group_layout = false,
|
|
483
|
+
disabled_seats = [], enabled_seats = [], index = 0)
|
|
480
484
|
@name = name
|
|
481
485
|
@number_of_disabled_seats_to_the_sides = number_of_disabled_seats_to_the_sides
|
|
482
486
|
@disable_seats_in_front_and_behind = disable_seats_in_front_and_behind
|
|
483
487
|
@number_of_disabled_aisle_seats = number_of_disabled_aisle_seats
|
|
484
488
|
@max_group_size = max_group_size
|
|
489
|
+
@max_occupancy_absolute = max_occupancy_absolute
|
|
490
|
+
@max_occupancy_percentage = max_occupancy_percentage
|
|
491
|
+
@fixed_group_layout = fixed_group_layout
|
|
485
492
|
@disabled_seats = disabled_seats
|
|
486
493
|
@enabled_seats = enabled_seats
|
|
487
494
|
@index = index
|
|
488
495
|
end
|
|
489
496
|
|
|
497
|
+
def self.fixed(name, disabled_seats = [], index = 0)
|
|
498
|
+
SocialDistancingRuleset.new(name, 0, false, 0, 0, 0, 0, true, disabled_seats, [], index)
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
def self.rule_based(name, number_of_disabled_seats_to_the_sides = 0, disable_seats_in_front_and_behind = false, number_of_disabled_aisle_seats = 0,
|
|
502
|
+
max_group_size = 0, max_occupancy_absolute = 0, max_occupancy_percentage = 0,
|
|
503
|
+
disabled_seats = [], enabled_seats = [], index = 0)
|
|
504
|
+
SocialDistancingRuleset.new(name, number_of_disabled_seats_to_the_sides, disable_seats_in_front_and_behind, number_of_disabled_aisle_seats,
|
|
505
|
+
max_group_size, max_occupancy_absolute, max_occupancy_percentage,
|
|
506
|
+
false, disabled_seats, enabled_seats, index)
|
|
507
|
+
end
|
|
508
|
+
|
|
490
509
|
def == (other)
|
|
491
510
|
self.name == other.name &&
|
|
492
511
|
self.number_of_disabled_seats_to_the_sides == other.number_of_disabled_seats_to_the_sides &&
|
|
493
512
|
self.disable_seats_in_front_and_behind == other.disable_seats_in_front_and_behind &&
|
|
494
513
|
self.number_of_disabled_aisle_seats == other.number_of_disabled_aisle_seats &&
|
|
495
514
|
self.max_group_size == other.max_group_size &&
|
|
515
|
+
self.max_occupancy_absolute == other.max_occupancy_absolute &&
|
|
516
|
+
self.max_occupancy_percentage == other.max_occupancy_percentage &&
|
|
517
|
+
self.fixed_group_layout == other.fixed_group_layout &&
|
|
496
518
|
self.disabled_seats == other.disabled_seats &&
|
|
497
519
|
self.enabled_seats == other.enabled_seats &&
|
|
498
520
|
self.index == other.index
|
|
499
521
|
end
|
|
500
|
-
|
|
501
522
|
end
|
|
502
523
|
|
|
503
524
|
end
|
|
@@ -31,6 +31,10 @@ module Seatsio
|
|
|
31
31
|
fetch_summary_report('bySelectability', event_key)
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
+
def summary_by_channel(event_key)
|
|
35
|
+
fetch_summary_report('byChannel', event_key)
|
|
36
|
+
end
|
|
37
|
+
|
|
34
38
|
def by_label(event_key, label = nil)
|
|
35
39
|
fetch_report('byLabel', event_key, label)
|
|
36
40
|
end
|
|
@@ -59,6 +63,10 @@ module Seatsio
|
|
|
59
63
|
fetch_report('bySelectability', event_key, selectability)
|
|
60
64
|
end
|
|
61
65
|
|
|
66
|
+
def by_channel(event_key, channelKey = nil)
|
|
67
|
+
fetch_report('byChannel', event_key, channelKey)
|
|
68
|
+
end
|
|
69
|
+
|
|
62
70
|
private
|
|
63
71
|
|
|
64
72
|
def fetch_summary_report(report_type, event_key)
|
data/lib/seatsio/events.rb
CHANGED
|
@@ -50,18 +50,12 @@ module Seatsio
|
|
|
50
50
|
Domain::ObjectStatus.new(response)
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
def book(event_key_or_keys, object_or_objects, hold_token = nil, order_id = nil, keep_extra_data = nil, channel_keys = nil)
|
|
60
|
-
self.change_object_status(event_key_or_keys, object_or_objects, Domain::ObjectStatus::BOOKED, hold_token, order_id, keep_extra_data, channel_keys)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def change_object_status(event_key_or_keys, object_or_objects, status, hold_token = nil, order_id = nil, keep_extra_data = nil, channel_keys = nil)
|
|
64
|
-
request = create_change_object_status_request(object_or_objects, status, hold_token, order_id, event_key_or_keys, keep_extra_data, channel_keys)
|
|
53
|
+
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)
|
|
54
|
+
self.change_object_status(event_key_or_keys, object_or_objects, Domain::ObjectStatus::BOOKED, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
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)
|
|
58
|
+
request = create_change_object_status_request(object_or_objects, status, hold_token, order_id, event_key_or_keys, keep_extra_data, ignore_channels, channel_keys)
|
|
65
59
|
request[:params] = {
|
|
66
60
|
:expand => 'objects'
|
|
67
61
|
}
|
|
@@ -78,26 +72,26 @@ module Seatsio
|
|
|
78
72
|
Domain::ChangeObjectStatusInBatchResult.new(response).results
|
|
79
73
|
end
|
|
80
74
|
|
|
81
|
-
def hold(event_key_or_keys, object_or_objects, hold_token, order_id
|
|
82
|
-
change_object_status(event_key_or_keys, object_or_objects, Domain::ObjectStatus::HELD, hold_token, order_id, keep_extra_data, channel_keys)
|
|
75
|
+
def hold(event_key_or_keys, object_or_objects, hold_token, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil)
|
|
76
|
+
change_object_status(event_key_or_keys, object_or_objects, Domain::ObjectStatus::HELD, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys)
|
|
83
77
|
end
|
|
84
78
|
|
|
85
|
-
def change_best_available_object_status(key, number, status, categories: nil, hold_token: nil, extra_data: nil, order_id: nil, keep_extra_data: nil)
|
|
86
|
-
request = create_change_best_available_object_status_request(number, status, categories, extra_data, hold_token, order_id, keep_extra_data)
|
|
79
|
+
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)
|
|
80
|
+
request = create_change_best_available_object_status_request(number, status, categories, extra_data, ticket_types, hold_token, order_id, keep_extra_data, ignore_channels, channel_keys)
|
|
87
81
|
response = @http_client.post("events/#{key}/actions/change-object-status", request)
|
|
88
82
|
Domain::BestAvailableObjects.new(response)
|
|
89
83
|
end
|
|
90
84
|
|
|
91
|
-
def book_best_available(key, number, categories: nil, hold_token: nil, order_id: nil, keep_extra_data: nil, extra_data: nil)
|
|
92
|
-
change_best_available_object_status(key, number, Domain::ObjectStatus::BOOKED, categories: categories, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, extra_data: extra_data)
|
|
85
|
+
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)
|
|
86
|
+
change_best_available_object_status(key, number, Domain::ObjectStatus::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)
|
|
93
87
|
end
|
|
94
88
|
|
|
95
|
-
def hold_best_available(key, number, hold_token, categories: nil, order_id: nil, keep_extra_data: nil, extra_data: nil)
|
|
96
|
-
change_best_available_object_status(key, number, Domain::ObjectStatus::HELD, categories: categories, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, extra_data: extra_data)
|
|
89
|
+
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)
|
|
90
|
+
change_best_available_object_status(key, number, Domain::ObjectStatus::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)
|
|
97
91
|
end
|
|
98
92
|
|
|
99
|
-
def release(event_key_or_keys, object_or_objects, hold_token
|
|
100
|
-
change_object_status(event_key_or_keys, object_or_objects, Domain::ObjectStatus::FREE, hold_token, order_id, keep_extra_data, channel_keys)
|
|
93
|
+
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)
|
|
94
|
+
change_object_status(event_key_or_keys, object_or_objects, Domain::ObjectStatus::FREE, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys)
|
|
101
95
|
end
|
|
102
96
|
|
|
103
97
|
def delete(key:)
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
def create_change_best_available_object_status_request(number, status, categories
|
|
1
|
+
def create_change_best_available_object_status_request(number, status, categories, extra_data, ticket_types, hold_token, order_id, keep_extra_data, ignore_channels, channel_keys)
|
|
2
2
|
result = {}
|
|
3
3
|
best_available = {'number': number}
|
|
4
4
|
best_available[:categories] = categories if categories != nil
|
|
5
5
|
best_available[:extraData] = extra_data if extra_data != nil
|
|
6
|
+
best_available[:ticketTypes] = ticket_types if ticket_types != nil
|
|
6
7
|
result[:status] = status
|
|
7
8
|
result[:bestAvailable] = best_available
|
|
8
9
|
result[:holdToken] = hold_token if hold_token != nil
|
|
9
10
|
result[:orderId] = order_id if order_id != nil
|
|
10
11
|
result[:keepExtraData] = keep_extra_data if keep_extra_data != nil
|
|
12
|
+
result[:ignoreChannels] = ignore_channels if ignore_channels != nil
|
|
13
|
+
result[:channelKeys] = channel_keys if channel_keys != nil
|
|
11
14
|
result
|
|
12
15
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
def create_change_object_status_in_batch_request(event_key, object_or_objects, status, hold_token = nil , order_id = nil, keep_extra_data = nil)
|
|
2
|
-
result = create_change_object_status_request(object_or_objects, status, hold_token, order_id, '', keep_extra_data)
|
|
1
|
+
def create_change_object_status_in_batch_request(event_key, object_or_objects, status, hold_token = nil , order_id = nil, keep_extra_data = nil, ignore_channels = nil, channel_keys = nil)
|
|
2
|
+
result = create_change_object_status_request(object_or_objects, status, hold_token, order_id, '', keep_extra_data, ignore_channels, channel_keys)
|
|
3
3
|
result.delete(:events)
|
|
4
4
|
result[:event] = event_key
|
|
5
5
|
result
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
def create_change_object_status_request(object_or_objects, status, hold_token, order_id, event_key_or_keys, keep_extra_data, channel_keys)
|
|
1
|
+
def create_change_object_status_request(object_or_objects, status, hold_token, order_id, event_key_or_keys, keep_extra_data, ignore_channels, channel_keys)
|
|
2
2
|
result = {}
|
|
3
3
|
result[:objects] = normalize(object_or_objects)
|
|
4
4
|
result[:status] = status
|
|
@@ -10,6 +10,7 @@ def create_change_object_status_request(object_or_objects, status, hold_token, o
|
|
|
10
10
|
result[:events] = [event_key_or_keys]
|
|
11
11
|
end
|
|
12
12
|
result[:keepExtraData] = keep_extra_data if keep_extra_data != nil
|
|
13
|
+
result[:ignoreChannels] = ignore_channels if ignore_channels != nil
|
|
13
14
|
result[:channelKeys] = channel_keys if channel_keys != nil
|
|
14
15
|
result
|
|
15
16
|
end
|
data/lib/seatsio/version.rb
CHANGED
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: 26.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: 2020-
|
|
11
|
+
date: 2020-10-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -147,8 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
147
147
|
- !ruby/object:Gem::Version
|
|
148
148
|
version: '0'
|
|
149
149
|
requirements: []
|
|
150
|
-
|
|
151
|
-
rubygems_version: 2.7.7
|
|
150
|
+
rubygems_version: 3.0.8
|
|
152
151
|
signing_key:
|
|
153
152
|
specification_version: 4
|
|
154
153
|
summary: the official Seats.io Ruby client library
|