seatsio 27.0.0 → 30.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/lib/seatsio/domain.rb +39 -27
- data/lib/seatsio/event_reports.rb +29 -0
- data/lib/seatsio/events.rb +6 -7
- data/lib/seatsio/events/change_object_status_request.rb +2 -1
- data/lib/seatsio/version.rb +1 -1
- 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: a3dedaf74a523ec34c4a74d3fe236d17729f1d5fce9fe83402d0c914b88cf447
|
4
|
+
data.tar.gz: b86d95b5662101c9a3953c1e796f5201a8a642488ae8398eaf8e6020e51bdc9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3dd416d18180a5f23aedd1338778305856314db2fabdd4907a6096034b119d0cc4a1d9dcfdf602022b0da732a2d1471f05a6eea1e8252d0905a40072e7cf45d2
|
7
|
+
data.tar.gz: b050b92763837ceb9cd34975dc88ecc577e3bf114840eba05764df28983b64453b2b83c87c774ad033340d30ec2d40f1c95c03b026d9a91385d75aa9479b410a
|
data/Gemfile.lock
CHANGED
data/lib/seatsio/domain.rb
CHANGED
@@ -22,10 +22,19 @@ module Seatsio
|
|
22
22
|
@archived = data['archived']
|
23
23
|
@validation = data['validation']
|
24
24
|
@social_distancing_rulesets = data['socialDistancingRulesets'].map {
|
25
|
-
|key, r| [key, SocialDistancingRuleset.new(r['name'],
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
|key, r| [key, SocialDistancingRuleset.new(r['name'],
|
26
|
+
number_of_disabled_seats_to_the_sides: r['numberOfDisabledSeatsToTheSides'],
|
27
|
+
disable_seats_in_front_and_behind: r['disableSeatsInFrontAndBehind'],
|
28
|
+
disable_diagonal_seats_in_front_and_behind: r['disableDiagonalSeatsInFrontAndBehind'],
|
29
|
+
number_of_disabled_aisle_seats: r['numberOfDisabledAisleSeats'],
|
30
|
+
max_group_size: r['maxGroupSize'],
|
31
|
+
max_occupancy_absolute: r['maxOccupancyAbsolute'],
|
32
|
+
max_occupancy_percentage: r['maxOccupancyPercentage'],
|
33
|
+
one_group_per_table: r['oneGroupPerTable'],
|
34
|
+
fixed_group_layout: r['fixedGroupLayout'],
|
35
|
+
disabled_seats: r['disabledSeats'],
|
36
|
+
enabled_seats: r['enabledSeats'],
|
37
|
+
index: r['index'])]
|
29
38
|
}.to_h
|
30
39
|
end
|
31
40
|
end
|
@@ -374,23 +383,14 @@ module Seatsio
|
|
374
383
|
|
375
384
|
class UsageDetails
|
376
385
|
|
377
|
-
attr_reader :
|
386
|
+
attr_reader :workspace, :usage_by_chart
|
378
387
|
|
379
388
|
def initialize(data)
|
380
|
-
@
|
389
|
+
@workspace = data['workspace']
|
381
390
|
@usage_by_chart = data['usageByChart'].map { |usage| UsageByChart.new(usage) }
|
382
391
|
end
|
383
392
|
end
|
384
393
|
|
385
|
-
class UsageSubaccount
|
386
|
-
|
387
|
-
attr_reader :id
|
388
|
-
|
389
|
-
def initialize(data)
|
390
|
-
@id = data['id']
|
391
|
-
end
|
392
|
-
end
|
393
|
-
|
394
394
|
class UsageByChart
|
395
395
|
|
396
396
|
attr_reader :chart, :usage_by_event
|
@@ -506,15 +506,16 @@ module Seatsio
|
|
506
506
|
|
507
507
|
class SocialDistancingRuleset
|
508
508
|
attr_reader :name, :number_of_disabled_seats_to_the_sides, :disable_seats_in_front_and_behind,
|
509
|
-
:number_of_disabled_aisle_seats, :max_group_size, :max_occupancy_absolute,
|
509
|
+
:disable_diagonal_seats_in_front_and_behind, :number_of_disabled_aisle_seats, :max_group_size, :max_occupancy_absolute,
|
510
510
|
:max_occupancy_percentage, :one_group_per_table, :fixed_group_layout, :disabled_seats, :enabled_seats, :index
|
511
511
|
|
512
|
-
def initialize(name, number_of_disabled_seats_to_the_sides
|
513
|
-
max_group_size
|
514
|
-
fixed_group_layout
|
512
|
+
def initialize(name, number_of_disabled_seats_to_the_sides: 0, disable_seats_in_front_and_behind: false, disable_diagonal_seats_in_front_and_behind: false,
|
513
|
+
number_of_disabled_aisle_seats: 0, max_group_size: 0, max_occupancy_absolute: 0, max_occupancy_percentage: 0, one_group_per_table: false,
|
514
|
+
fixed_group_layout: false, disabled_seats: [], enabled_seats: [], index: 0)
|
515
515
|
@name = name
|
516
516
|
@number_of_disabled_seats_to_the_sides = number_of_disabled_seats_to_the_sides
|
517
517
|
@disable_seats_in_front_and_behind = disable_seats_in_front_and_behind
|
518
|
+
@disable_diagonal_seats_in_front_and_behind = disable_diagonal_seats_in_front_and_behind
|
518
519
|
@number_of_disabled_aisle_seats = number_of_disabled_aisle_seats
|
519
520
|
@max_group_size = max_group_size
|
520
521
|
@max_occupancy_absolute = max_occupancy_absolute
|
@@ -526,22 +527,33 @@ module Seatsio
|
|
526
527
|
@index = index
|
527
528
|
end
|
528
529
|
|
529
|
-
def self.fixed(name, disabled_seats
|
530
|
-
SocialDistancingRuleset.new(name,
|
530
|
+
def self.fixed(name, disabled_seats: [], index: 0)
|
531
|
+
return SocialDistancingRuleset.new(name, index: index, disabled_seats: disabled_seats, fixed_group_layout: true)
|
531
532
|
end
|
532
533
|
|
533
|
-
def self.rule_based(name, number_of_disabled_seats_to_the_sides
|
534
|
-
max_group_size
|
535
|
-
disabled_seats
|
536
|
-
SocialDistancingRuleset.new(name,
|
537
|
-
|
538
|
-
|
534
|
+
def self.rule_based(name, number_of_disabled_seats_to_the_sides: 0, disable_seats_in_front_and_behind: false, disable_diagonal_seats_in_front_and_behind: false,
|
535
|
+
number_of_disabled_aisle_seats: 0, max_group_size: 0, max_occupancy_absolute: 0, max_occupancy_percentage: 0, one_group_per_table: false,
|
536
|
+
disabled_seats: [], enabled_seats: [], index: 0)
|
537
|
+
return SocialDistancingRuleset.new(name,
|
538
|
+
number_of_disabled_seats_to_the_sides: number_of_disabled_seats_to_the_sides,
|
539
|
+
disable_seats_in_front_and_behind: disable_seats_in_front_and_behind,
|
540
|
+
disable_diagonal_seats_in_front_and_behind: disable_diagonal_seats_in_front_and_behind,
|
541
|
+
number_of_disabled_aisle_seats: number_of_disabled_aisle_seats,
|
542
|
+
max_group_size: max_group_size,
|
543
|
+
max_occupancy_absolute: max_occupancy_absolute,
|
544
|
+
max_occupancy_percentage: max_occupancy_percentage,
|
545
|
+
one_group_per_table: one_group_per_table,
|
546
|
+
fixed_group_layout: false,
|
547
|
+
disabled_seats: disabled_seats,
|
548
|
+
enabled_seats: enabled_seats,
|
549
|
+
index: index)
|
539
550
|
end
|
540
551
|
|
541
552
|
def == (other)
|
542
553
|
self.name == other.name &&
|
543
554
|
self.number_of_disabled_seats_to_the_sides == other.number_of_disabled_seats_to_the_sides &&
|
544
555
|
self.disable_seats_in_front_and_behind == other.disable_seats_in_front_and_behind &&
|
556
|
+
self.disable_diagonal_seats_in_front_and_behind == other.disable_diagonal_seats_in_front_and_behind &&
|
545
557
|
self.number_of_disabled_aisle_seats == other.number_of_disabled_aisle_seats &&
|
546
558
|
self.max_group_size == other.max_group_size &&
|
547
559
|
self.max_occupancy_absolute == other.max_occupancy_absolute &&
|
@@ -15,26 +15,50 @@ module Seatsio
|
|
15
15
|
fetch_summary_report('byStatus', event_key)
|
16
16
|
end
|
17
17
|
|
18
|
+
def deep_summary_by_status(event_key)
|
19
|
+
fetch_deep_summary_report('byStatus', event_key)
|
20
|
+
end
|
21
|
+
|
18
22
|
def summary_by_category_key(event_key)
|
19
23
|
fetch_summary_report('byCategoryKey', event_key)
|
20
24
|
end
|
21
25
|
|
26
|
+
def deep_summary_by_category_key(event_key)
|
27
|
+
fetch_deep_summary_report('byCategoryKey', event_key)
|
28
|
+
end
|
29
|
+
|
22
30
|
def summary_by_category_label(event_key)
|
23
31
|
fetch_summary_report('byCategoryLabel', event_key)
|
24
32
|
end
|
25
33
|
|
34
|
+
def deep_summary_by_category_label(event_key)
|
35
|
+
fetch_deep_summary_report('byCategoryLabel', event_key)
|
36
|
+
end
|
37
|
+
|
26
38
|
def summary_by_section(event_key)
|
27
39
|
fetch_summary_report('bySection', event_key)
|
28
40
|
end
|
29
41
|
|
42
|
+
def deep_summary_by_section(event_key)
|
43
|
+
fetch_deep_summary_report('bySection', event_key)
|
44
|
+
end
|
45
|
+
|
30
46
|
def summary_by_selectability(event_key)
|
31
47
|
fetch_summary_report('bySelectability', event_key)
|
32
48
|
end
|
33
49
|
|
50
|
+
def deep_summary_by_selectability(event_key)
|
51
|
+
fetch_deep_summary_report('bySelectability', event_key)
|
52
|
+
end
|
53
|
+
|
34
54
|
def summary_by_channel(event_key)
|
35
55
|
fetch_summary_report('byChannel', event_key)
|
36
56
|
end
|
37
57
|
|
58
|
+
def deep_summary_by_channel(event_key)
|
59
|
+
fetch_deep_summary_report('byChannel', event_key)
|
60
|
+
end
|
61
|
+
|
38
62
|
def by_label(event_key, label = nil)
|
39
63
|
fetch_report('byLabel', event_key, label)
|
40
64
|
end
|
@@ -74,6 +98,11 @@ module Seatsio
|
|
74
98
|
@http_client.get(url)
|
75
99
|
end
|
76
100
|
|
101
|
+
def fetch_deep_summary_report(report_type, event_key)
|
102
|
+
url = "reports/events/#{event_key}/#{report_type}/summary/deep"
|
103
|
+
@http_client.get(url)
|
104
|
+
end
|
105
|
+
|
77
106
|
def fetch_report(report_type, event_key, report_filter = nil)
|
78
107
|
if report_filter
|
79
108
|
url = "reports/events/#{event_key}/#{report_type}/#{report_filter}"
|
data/lib/seatsio/events.rb
CHANGED
@@ -49,12 +49,12 @@ module Seatsio
|
|
49
49
|
ObjectStatus.new(response)
|
50
50
|
end
|
51
51
|
|
52
|
-
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)
|
53
|
-
self.change_object_status(event_key_or_keys, object_or_objects, ObjectStatus::BOOKED, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys)
|
52
|
+
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, ObjectStatus::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
54
|
end
|
55
55
|
|
56
|
-
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)
|
57
|
-
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)
|
56
|
+
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)
|
57
|
+
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, ignore_social_distancing)
|
58
58
|
request[:params] = {
|
59
59
|
:expand => 'objects'
|
60
60
|
}
|
@@ -71,8 +71,8 @@ module Seatsio
|
|
71
71
|
ChangeObjectStatusInBatchResult.new(response).results
|
72
72
|
end
|
73
73
|
|
74
|
-
def hold(event_key_or_keys, object_or_objects, hold_token, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil)
|
75
|
-
change_object_status(event_key_or_keys, object_or_objects, ObjectStatus::HELD, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys)
|
74
|
+
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, ObjectStatus::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
76
|
end
|
77
77
|
|
78
78
|
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)
|
@@ -97,7 +97,6 @@ module Seatsio
|
|
97
97
|
@http_client.delete("/events/#{key}")
|
98
98
|
end
|
99
99
|
|
100
|
-
|
101
100
|
def retrieve(key:)
|
102
101
|
response = @http_client.get("events/#{key}")
|
103
102
|
Event.new(response)
|
@@ -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, ignore_channels, 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, ignore_social_distancing)
|
2
2
|
result = {}
|
3
3
|
result[:objects] = normalize(object_or_objects)
|
4
4
|
result[:status] = status
|
@@ -12,6 +12,7 @@ def create_change_object_status_request(object_or_objects, status, hold_token, o
|
|
12
12
|
result[:keepExtraData] = keep_extra_data if keep_extra_data != nil
|
13
13
|
result[:ignoreChannels] = ignore_channels if ignore_channels != nil
|
14
14
|
result[:channelKeys] = channel_keys if channel_keys != nil
|
15
|
+
result[:ignoreSocialDistancing] = ignore_social_distancing if ignore_social_distancing != nil
|
15
16
|
result
|
16
17
|
end
|
17
18
|
|
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: 30.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-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|