seatsio 24.4.0 → 26.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|