seatsio 37.1.0 → 40.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/channels.rb +48 -0
- data/lib/seatsio/domain.rb +55 -24
- data/lib/seatsio/events.rb +4 -8
- data/lib/seatsio/httpClient.rb +3 -3
- data/lib/seatsio/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 318b95da4bc9436f82da06e2ba06af0e9ed25054e8328603496bca8e43e71758
|
4
|
+
data.tar.gz: 6efaef3cce86f803f1e8ed65346065181e565f2459fc303dc6ce0f2156ff48be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fea50b19a573dfa2403d7e4f66fc6d64ae0396af968cf3469d112ef54c1b0611646fc9b03802f654c0ee96f0d670c6b2e1f1efdfad503c0b37b867889ce0998e
|
7
|
+
data.tar.gz: a4f17bd2c0b680ed75dec260e66b02715a0c8897713eb34ee6e74e738bef0e1bb7737a4a9682a3a3f243eac72c501d80078d401b406e713c3db32bd010ae0c3d
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
module Seatsio
|
2
|
+
|
3
|
+
class ChannelsClient
|
4
|
+
def initialize(http_client)
|
5
|
+
@http_client = http_client
|
6
|
+
end
|
7
|
+
|
8
|
+
def add(event_key:, channel_key:, channel_name:, channel_color:, index: nil, objects: nil)
|
9
|
+
payload = {
|
10
|
+
key: channel_key,
|
11
|
+
name: channel_name,
|
12
|
+
color: channel_color
|
13
|
+
}
|
14
|
+
payload['index'] = index if index != nil
|
15
|
+
payload['objects'] = objects if objects != nil
|
16
|
+
@http_client.post("events/#{event_key}/channels", payload)
|
17
|
+
end
|
18
|
+
|
19
|
+
def remove(event_key:, channel_key:)
|
20
|
+
@http_client.delete("events/#{event_key}/channels/#{channel_key}")
|
21
|
+
end
|
22
|
+
|
23
|
+
def update(event_key:, channel_key:, channel_name: nil, channel_color: nil, objects: nil)
|
24
|
+
payload = {}
|
25
|
+
payload['name'] = channel_name if channel_name != nil
|
26
|
+
payload['color'] = channel_color if channel_color != nil
|
27
|
+
payload['objects'] = objects if objects != nil
|
28
|
+
@http_client.post("events/#{event_key}/channels/#{channel_key}", payload)
|
29
|
+
end
|
30
|
+
|
31
|
+
def add_objects(event_key:, channel_key:, objects:)
|
32
|
+
@http_client.post("events/#{event_key}/channels/#{channel_key}/objects", { objects: objects })
|
33
|
+
end
|
34
|
+
|
35
|
+
def remove_objects(event_key:, channel_key:, objects:)
|
36
|
+
@http_client.delete("events/#{event_key}/channels/#{channel_key}/objects", { objects: objects })
|
37
|
+
end
|
38
|
+
|
39
|
+
def replace(key:, channels:)
|
40
|
+
@http_client.post("events/#{key}/channels/update", channels: channels)
|
41
|
+
end
|
42
|
+
|
43
|
+
def set_objects(key:, channelConfig:)
|
44
|
+
@http_client.post("events/#{key}/channels/assign-objects", channelConfig: channelConfig)
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
data/lib/seatsio/domain.rb
CHANGED
@@ -70,6 +70,41 @@ module Seatsio
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
+
class Category
|
74
|
+
|
75
|
+
attr_reader :key, :label, :color, :accessible
|
76
|
+
|
77
|
+
def initialize(key, label, color, accessible)
|
78
|
+
@key = key
|
79
|
+
@label = label
|
80
|
+
@color = color
|
81
|
+
@accessible = accessible
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.from_json(data)
|
85
|
+
if data
|
86
|
+
Category.new(data['key'], data['label'], data['color'], data['accessible'])
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.create_list(list = [])
|
91
|
+
result = []
|
92
|
+
|
93
|
+
list.each do |item|
|
94
|
+
result << Category.from_json(item)
|
95
|
+
end
|
96
|
+
|
97
|
+
result
|
98
|
+
end
|
99
|
+
|
100
|
+
def == (other)
|
101
|
+
key == other.key &&
|
102
|
+
label == other.label &&
|
103
|
+
color == other.color &&
|
104
|
+
accessible == other.accessible
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
73
108
|
class TableBookingConfig
|
74
109
|
|
75
110
|
attr_reader :mode, :tables
|
@@ -114,11 +149,11 @@ module Seatsio
|
|
114
149
|
end
|
115
150
|
|
116
151
|
def == (other)
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
152
|
+
key == other.key &&
|
153
|
+
name == other.name &&
|
154
|
+
color == other.color &&
|
155
|
+
index == other.index &&
|
156
|
+
objects == other.objects
|
122
157
|
end
|
123
158
|
|
124
159
|
end
|
@@ -149,7 +184,7 @@ module Seatsio
|
|
149
184
|
@is_event_in_season = data['isEventInSeason']
|
150
185
|
@top_level_season_key = data['topLevelSeasonKey']
|
151
186
|
@object_categories = data['objectCategories']
|
152
|
-
@categories = data['categories']
|
187
|
+
@categories = Category.create_list(data['categories']) if data['categories']
|
153
188
|
end
|
154
189
|
|
155
190
|
def is_season
|
@@ -441,16 +476,12 @@ module Seatsio
|
|
441
476
|
|
442
477
|
class UsageByEvent
|
443
478
|
|
444
|
-
attr_reader :event, :num_used_objects, :num_first_bookings, :
|
445
|
-
:num_ga_selections_without_booking, :num_non_ga_selections_without_booking, :num_object_selections
|
479
|
+
attr_reader :event, :num_used_objects, :num_first_bookings, :num_object_selections
|
446
480
|
|
447
481
|
def initialize(data)
|
448
482
|
@event = UsageEvent.new(data['event'])
|
449
483
|
@num_used_objects = data['numUsedObjects']
|
450
484
|
@num_first_bookings = data['numFirstBookings']
|
451
|
-
@num_first_bookings_or_selections = data['numFirstBookingsOrSelections']
|
452
|
-
@num_ga_selections_without_booking = data['numGASelectionsWithoutBooking']
|
453
|
-
@num_non_ga_selections_without_booking = data['numNonGASelectionsWithoutBooking']
|
454
485
|
@num_object_selections = data['numObjectSelections']
|
455
486
|
end
|
456
487
|
end
|
@@ -581,19 +612,19 @@ module Seatsio
|
|
581
612
|
end
|
582
613
|
|
583
614
|
def == (other)
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
615
|
+
name == other.name &&
|
616
|
+
number_of_disabled_seats_to_the_sides == other.number_of_disabled_seats_to_the_sides &&
|
617
|
+
disable_seats_in_front_and_behind == other.disable_seats_in_front_and_behind &&
|
618
|
+
disable_diagonal_seats_in_front_and_behind == other.disable_diagonal_seats_in_front_and_behind &&
|
619
|
+
number_of_disabled_aisle_seats == other.number_of_disabled_aisle_seats &&
|
620
|
+
max_group_size == other.max_group_size &&
|
621
|
+
max_occupancy_absolute == other.max_occupancy_absolute &&
|
622
|
+
max_occupancy_percentage == other.max_occupancy_percentage &&
|
623
|
+
one_group_per_table == other.one_group_per_table &&
|
624
|
+
fixed_group_layout == other.fixed_group_layout &&
|
625
|
+
disabled_seats == other.disabled_seats &&
|
626
|
+
enabled_seats == other.enabled_seats &&
|
627
|
+
index == other.index
|
597
628
|
end
|
598
629
|
end
|
599
630
|
|
data/lib/seatsio/events.rb
CHANGED
@@ -6,12 +6,16 @@ require "json"
|
|
6
6
|
require "cgi"
|
7
7
|
require "seatsio/events/change_object_status_request"
|
8
8
|
require "seatsio/events/change_best_available_object_status_request"
|
9
|
+
require 'seatsio/channels'
|
9
10
|
|
10
11
|
module Seatsio
|
11
12
|
|
12
13
|
class EventsClient
|
14
|
+
attr_reader :channels
|
15
|
+
|
13
16
|
def initialize(http_client)
|
14
17
|
@http_client = http_client
|
18
|
+
@channels = ChannelsClient.new(@http_client)
|
15
19
|
end
|
16
20
|
|
17
21
|
def create(chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil)
|
@@ -142,14 +146,6 @@ module Seatsio
|
|
142
146
|
@http_client.post("events/#{key}/actions/mark-as-for-sale", request)
|
143
147
|
end
|
144
148
|
|
145
|
-
def update_channels(key:, channels:)
|
146
|
-
@http_client.post("events/#{key}/channels/update", channels: channels)
|
147
|
-
end
|
148
|
-
|
149
|
-
def assign_objects_to_channels(key:, channelConfig:)
|
150
|
-
@http_client.post("events/#{key}/channels/assign-objects", channelConfig: channelConfig)
|
151
|
-
end
|
152
|
-
|
153
149
|
private
|
154
150
|
|
155
151
|
def build_parameters_for_mark_as_sale(objects: nil, categories: nil)
|
data/lib/seatsio/httpClient.rb
CHANGED
@@ -33,7 +33,7 @@ module Seatsio
|
|
33
33
|
|
34
34
|
request_options = { method: args[0], url: url, headers: headers }
|
35
35
|
|
36
|
-
if args[0] == :post
|
36
|
+
if args[0] == :post || args[0] == :delete
|
37
37
|
args[2].delete :params
|
38
38
|
request_options[:payload] = args[2].to_json
|
39
39
|
end
|
@@ -90,8 +90,8 @@ module Seatsio
|
|
90
90
|
execute(:post, endpoint, payload)
|
91
91
|
end
|
92
92
|
|
93
|
-
def delete(endpoint)
|
94
|
-
execute(:delete, endpoint,
|
93
|
+
def delete(endpoint, payload = {})
|
94
|
+
execute(:delete, endpoint, payload)
|
95
95
|
end
|
96
96
|
end
|
97
97
|
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: 40.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: 2022-
|
11
|
+
date: 2022-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- bin/console
|
113
113
|
- bin/setup
|
114
114
|
- lib/seatsio.rb
|
115
|
+
- lib/seatsio/channels.rb
|
115
116
|
- lib/seatsio/chart_reports.rb
|
116
117
|
- lib/seatsio/charts.rb
|
117
118
|
- lib/seatsio/domain.rb
|