seatsio 23.7.0 → 24.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e0a832bc8680b57d66e65becb775ddfdd971d08be16a8161b79bf0a217543db
4
- data.tar.gz: c40d677bd0dea2bde3c492408c09a2cc79f3fcb8518d439c68f17f65f1c3c419
3
+ metadata.gz: 4930b1db1d27358e928cc9505ce23c7087cf17f7dcfde447410d95adbd9d8ec7
4
+ data.tar.gz: 6697bab9ba71f211e932dac4c52e606cedd5c72ea32475d253bdc9658645dcd7
5
5
  SHA512:
6
- metadata.gz: 48d9cc13e42919696a9bcf58b5d0c05016049e3930db5f0a3499f42bc86d2a6400a85da2d0e761883e507b5623a8e8b87befe1c81217865c575a446b567072b8
7
- data.tar.gz: 68da6c6511e13ae20d77471c67da82d7d962db355852c91a5d9342b24a885c9f67ae98a2a70adbd68b86eb5c4822e0d4e22f89c649100426d9f9396b087b8a78
6
+ metadata.gz: 70f297b8674903e48a297cadeb036aff12a8ceb2c473d390f2cf22f11de93c0893e6c28051c60cb3f695b150fe7b50d9c59773a9bcbf9f559196e071e4d26b5d
7
+ data.tar.gz: c89361a4618d02e15f7e6edf3eb5edca592a65bc3bc1c62c255b06a4eb1f4f313e79c1967f0bcdda6f5d2dba962958ad4b4a6e7479915a6874602782b79c55b0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seatsio (23.7.0)
4
+ seatsio (24.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -69,13 +69,11 @@ module Seatsio
69
69
  end
70
70
 
71
71
  def retrieve_published_version(key)
72
- response = @http_client.get("charts/#{key}/version/published")
73
- Domain::Chart.new(response)
72
+ @http_client.get("charts/#{key}/version/published")
74
73
  end
75
74
 
76
75
  def retrieve_draft_version(key)
77
- response = @http_client.get("charts/#{key}/version/draft")
78
- Domain::ChartDraft.new(response)
76
+ @http_client.get("charts/#{key}/version/draft")
79
77
  end
80
78
 
81
79
  def retrieve_draft_version_thumbnail(key)
@@ -94,6 +92,11 @@ module Seatsio
94
92
  @http_client.post("charts/#{chart_key}/version/draft/actions/publish")
95
93
  end
96
94
 
95
+ def save_social_distancing_rulesets(chart_key, rulesets)
96
+ payload = {"socialDistancingRulesets": rulesets}
97
+ @http_client.post("charts/#{chart_key}/social-distancing-rulesets", payload)
98
+ end
99
+
97
100
  def list(chart_filter: nil, tag: nil, expand_events: nil, with_validation: false)
98
101
  cursor = Pagination::Cursor.new(Domain::Chart, 'charts', @http_client)
99
102
  cursor.set_query_param('filter', chart_filter)
@@ -4,25 +4,11 @@ module Seatsio::Domain
4
4
 
5
5
  module_function
6
6
 
7
- class ChartCategories
8
- attr_accessor :list, :max_category_key
9
-
10
- def initialize(data)
11
- if data
12
- @list = data['list']
13
- @max_category_key = data['maxCategoryKey']
14
- else
15
- @list = []
16
- @max_category_key = ''
17
- end
18
- end
19
- end
20
-
21
7
  class Chart
22
8
 
23
9
  attr_reader :id, :key, :status, :name, :published_version_thumbnail_url,
24
- :draft_version_thumbnail_url, :events, :tags, :archived, :venue_type,
25
- :categories, :validation
10
+ :draft_version_thumbnail_url, :events, :tags, :archived,
11
+ :categories, :validation, :social_distancing_rulesets
26
12
 
27
13
  def initialize(data)
28
14
  @id = data['id']
@@ -34,9 +20,12 @@ module Seatsio::Domain
34
20
  @events = Event.create_list(data['events']) if data['events']
35
21
  @tags = data['tags']
36
22
  @archived = data['archived']
37
- @venue_type = data['venueType']
38
- @categories = ChartCategories.new(data['categories'])
39
23
  @validation = data['validation']
24
+ @social_distancing_rulesets = data['socialDistancingRulesets'].map {
25
+ |key, r| [key, SocialDistancingRuleset.new(r['name'], r['numberOfDisabledSeatsToTheSides'], r['disableSeatsInFrontAndBehind'],
26
+ r['numberOfDisabledAisleSeats'], r['maxGroupSize'],
27
+ r['disabledSeats'], r['enabledSeats'], r['index'])]
28
+ }.to_h
40
29
  end
41
30
  end
42
31
 
@@ -84,10 +73,10 @@ module Seatsio::Domain
84
73
 
85
74
  def == (other)
86
75
  self.key == other.key &&
87
- self.name == other.name &&
88
- self.color == other.color &&
89
- self.index == other.index &&
90
- self.objects == other.objects
76
+ self.name == other.name &&
77
+ self.color == other.color &&
78
+ self.index == other.index &&
79
+ self.objects == other.objects
91
80
  end
92
81
 
93
82
  end
@@ -95,7 +84,8 @@ module Seatsio::Domain
95
84
  class Event
96
85
 
97
86
  attr_accessor :id, :key, :chart_key, :book_whole_tables, :supports_best_available,
98
- :table_booking_modes, :for_sale_config, :created_on, :updated_on, :channels
87
+ :table_booking_modes, :for_sale_config, :created_on, :updated_on, :channels,
88
+ :social_distancing_ruleset_key
99
89
 
100
90
  def initialize(data)
101
91
  @id = data['id']
@@ -110,6 +100,7 @@ module Seatsio::Domain
110
100
  @channels = data['channels'].map {
111
101
  |d| Channel.new(d['key'], d['name'], d['color'], d['index'], d['objects'])
112
102
  } if data['channels']
103
+ @social_distancing_ruleset_key = data['socialDistancingRulesetKey']
113
104
  end
114
105
 
115
106
  def self.create_list(list = [])
@@ -476,4 +467,33 @@ module Seatsio::Domain
476
467
  object_details
477
468
  end
478
469
 
470
+ class SocialDistancingRuleset
471
+ attr_reader :name, :number_of_disabled_seats_to_the_sides, :disable_seats_in_front_and_behind,
472
+ :number_of_disabled_aisle_seats, :max_group_size, :disabled_seats, :enabled_seats, :index
473
+
474
+ def initialize(name, number_of_disabled_seats_to_the_sides = 0, disable_seats_in_front_and_behind = false, number_of_disabled_aisle_seats = 0,
475
+ max_group_size = 0, disabled_seats = [], enabled_seats = [], index = 0)
476
+ @name = name
477
+ @number_of_disabled_seats_to_the_sides = number_of_disabled_seats_to_the_sides
478
+ @disable_seats_in_front_and_behind = disable_seats_in_front_and_behind
479
+ @number_of_disabled_aisle_seats = number_of_disabled_aisle_seats
480
+ @max_group_size = max_group_size
481
+ @disabled_seats = disabled_seats
482
+ @enabled_seats = enabled_seats
483
+ @index = index
484
+ end
485
+
486
+ def == (other)
487
+ self.name == other.name &&
488
+ self.number_of_disabled_seats_to_the_sides == other.number_of_disabled_seats_to_the_sides &&
489
+ self.disable_seats_in_front_and_behind == other.disable_seats_in_front_and_behind &&
490
+ self.number_of_disabled_aisle_seats == other.number_of_disabled_aisle_seats &&
491
+ self.max_group_size == other.max_group_size &&
492
+ self.disabled_seats == other.disabled_seats &&
493
+ self.enabled_seats == other.enabled_seats &&
494
+ self.index == other.index
495
+ end
496
+
497
+ end
498
+
479
499
  end
@@ -15,8 +15,9 @@ module Seatsio
15
15
  @http_client = ::Seatsio::HttpClient.new(secret_key, workspace_key, base_url)
16
16
  end
17
17
 
18
- def create(chart_key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil)
19
- payload = build_event_request(chart_key: chart_key, event_key: event_key, book_whole_tables: book_whole_tables, table_booking_modes: table_booking_modes)
18
+ def create(chart_key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil, social_distancing_ruleset_key: nil)
19
+ payload = build_event_request(chart_key: chart_key, event_key: event_key, book_whole_tables: book_whole_tables,
20
+ table_booking_modes: table_booking_modes, social_distancing_ruleset_key: social_distancing_ruleset_key)
20
21
  response = @http_client.post("events", payload)
21
22
  Domain::Event.new(response)
22
23
  end
@@ -27,8 +28,9 @@ module Seatsio
27
28
  Domain::Events.new(response).events
28
29
  end
29
30
 
30
- def update(key:, chart_key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil)
31
- payload = build_event_request(chart_key: chart_key, event_key: event_key, book_whole_tables: book_whole_tables, table_booking_modes: table_booking_modes)
31
+ def update(key:, chart_key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil, social_distancing_ruleset_key: nil)
32
+ payload = build_event_request(chart_key: chart_key, event_key: event_key, book_whole_tables: book_whole_tables,
33
+ table_booking_modes: table_booking_modes, social_distancing_ruleset_key: social_distancing_ruleset_key)
32
34
  @http_client.post("/events/#{key}", payload)
33
35
  end
34
36
 
@@ -159,12 +161,13 @@ module Seatsio
159
161
  payload
160
162
  end
161
163
 
162
- def build_event_request(chart_key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil)
164
+ def build_event_request(chart_key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil, social_distancing_ruleset_key: nil)
163
165
  result = {}
164
166
  result["chartKey"] = chart_key if chart_key
165
167
  result["eventKey"] = event_key if event_key
166
168
  result["bookWholeTables"] = book_whole_tables if book_whole_tables != nil
167
169
  result["tableBookingModes"] = table_booking_modes if table_booking_modes != nil
170
+ result["socialDistancingRulesetKey"] = social_distancing_ruleset_key if social_distancing_ruleset_key != nil
168
171
  result
169
172
  end
170
173
 
@@ -1,3 +1,3 @@
1
1
  module Seatsio
2
- VERSION = "23.7.0"
2
+ VERSION = "24.0.0"
3
3
  end
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: 23.7.0
4
+ version: 24.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-06-16 00:00:00.000000000 Z
11
+ date: 2020-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler