seatsio 40.1.0 → 42.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: 4b8822f5a0c8488e65a7291c414a1425fbb3d499bf77a4621c43dc46a11afd8b
4
- data.tar.gz: a79e55c7a602c061cdc39ac05bcc3c73e5e6497d4c3af76327c98b55ae041905
3
+ metadata.gz: 0caea0654fe8f1c56917f0f36f5e24692ccb39b71e1c58082fcdfc05c6b9f3f1
4
+ data.tar.gz: 0c286cb3da66b467d305c51dcf12bc8417e35d0d8d97391fd5e8eb3a257bf480
5
5
  SHA512:
6
- metadata.gz: 3db73b2ababeefb303f173e20fcabf96e97b025c6a6d773229a1e194ab7c5885a27aeef84fa667b9dafc1d7b3a0f438f0b0b03091eb2b55dccc22b468066792e
7
- data.tar.gz: b98d89bea756c377f98ec4857a1a980359a19bdb6d65cfd99fdf534006090588814a4eb35e5ee8690342e929ab2875a8cf55173eb8958db6606e9cf27ca98e10
6
+ metadata.gz: e1bd2a4919e3d33a3f4494ca4bf1b94facdb875f8466d330c42fe1f057fcd3e6204bd9d4f8eb183dbf7999202140c4ab09946b04433a95815995e5aae50e5377
7
+ data.tar.gz: 8f4baa6c8b2814c250d7b318772aacbb846cfe9008805fed7d2416c3bc0bac36849471e02aaeedebefc847a6196ac0ad8c585d963ad77a0c3c3ce12b66a94757
@@ -12,7 +12,7 @@ jobs:
12
12
  runs-on: ubuntu-latest
13
13
  strategy:
14
14
  matrix:
15
- ruby-version: ['2.4', '3.0']
15
+ ruby-version: ['2.7', '3.1']
16
16
 
17
17
  steps:
18
18
  - uses: actions/checkout@v2
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.4.0
1
+ 2.7.4
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seatsio (40.1.0)
4
+ seatsio (42.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- addressable (2.8.0)
10
- public_suffix (>= 2.0.2, < 5.0)
9
+ addressable (2.8.1)
10
+ public_suffix (>= 2.0.2, < 6.0)
11
11
  crack (0.4.5)
12
12
  rexml
13
13
  domain_name (0.5.20190701)
@@ -19,9 +19,11 @@ GEM
19
19
  mime-types (3.3.1)
20
20
  mime-types-data (~> 3.2015)
21
21
  mime-types-data (3.2021.0225)
22
- minitest (5.15.0)
22
+ minitest (5.16.3)
23
+ minitest-parallel_fork (1.3.0)
24
+ minitest (>= 5.15.0)
23
25
  netrc (0.11.0)
24
- public_suffix (4.0.6)
26
+ public_suffix (5.0.0)
25
27
  rake (13.0.6)
26
28
  rest-client (2.1.0)
27
29
  http-accept (>= 1.7.0, < 2.0)
@@ -32,7 +34,7 @@ GEM
32
34
  unf (0.1.4)
33
35
  unf_ext
34
36
  unf_ext (0.0.7.7)
35
- webmock (3.14.0)
37
+ webmock (3.18.1)
36
38
  addressable (>= 2.8.0)
37
39
  crack (>= 0.3.2)
38
40
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -43,6 +45,7 @@ PLATFORMS
43
45
  DEPENDENCIES
44
46
  bundler (~> 2.2)
45
47
  minitest (~> 5.0)
48
+ minitest-parallel_fork (~> 1.3)
46
49
  rake (~> 13.0)
47
50
  rest-client (~> 2.0, >= 2.0.2)
48
51
  seatsio!
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![Build](https://github.com/seatsio/seatsio-ruby/workflows/Build/badge.svg)](https://github.com/seatsio/seatsio-ruby/actions/workflows/build.yml)
4
4
  [![Gem Version](https://badge.fury.io/rb/seatsio.svg)](https://badge.fury.io/rb/seatsio)
5
5
 
6
- This is the official Ruby client library for the [Seats.io V2 REST API](https://docs.seats.io/docs/api-overview), supporting Ruby 2.4.0+
6
+ This is the official Ruby client library for the [Seats.io V2 REST API](https://docs.seats.io/docs/api-overview), supporting Ruby 2.7.0+
7
7
 
8
8
  ## Versioning
9
9
 
@@ -59,12 +59,13 @@ module Seatsio
59
59
 
60
60
  class ForSaleConfig
61
61
 
62
- attr_reader :for_sale, :objects, :categories
62
+ attr_reader :for_sale, :objects, :area_places, :categories
63
63
 
64
64
  def initialize(data)
65
65
  if data
66
66
  @for_sale = data['forSale']
67
67
  @objects = data['objects']
68
+ @area_places = data['areaPlaces']
68
69
  @categories = data['categories']
69
70
  end
70
71
  end
@@ -74,7 +75,7 @@ module Seatsio
74
75
 
75
76
  attr_reader :key, :label, :color, :accessible
76
77
 
77
- def initialize(key, label, color, accessible)
78
+ def initialize(key, label, color, accessible = false)
78
79
  @key = key
79
80
  @label = label
80
81
  @color = color
@@ -18,11 +18,11 @@ module Seatsio
18
18
  @channels = ChannelsClient.new(@http_client)
19
19
  end
20
20
 
21
- def create(chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil)
21
+ def create(chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil, categories: nil)
22
22
  payload = build_event_request(chart_key: chart_key, event_key: event_key,
23
23
  table_booking_config: table_booking_config,
24
24
  social_distancing_ruleset_key: social_distancing_ruleset_key,
25
- object_categories: object_categories)
25
+ object_categories: object_categories, categories: categories)
26
26
  response = @http_client.post("events", payload)
27
27
  Event.new(response)
28
28
  end
@@ -33,8 +33,14 @@ module Seatsio
33
33
  Events.new(response).events
34
34
  end
35
35
 
36
- def update(key:, chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil)
37
- payload = build_event_request(chart_key: chart_key, event_key: event_key, table_booking_config: table_booking_config, social_distancing_ruleset_key: social_distancing_ruleset_key, object_categories: object_categories)
36
+ def update(key:, chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil, categories: nil)
37
+ payload = build_event_request(
38
+ chart_key: chart_key,
39
+ event_key: event_key,
40
+ table_booking_config: table_booking_config,
41
+ social_distancing_ruleset_key: social_distancing_ruleset_key,
42
+ object_categories: object_categories,
43
+ categories: categories)
38
44
  @http_client.post("/events/#{key}", payload)
39
45
  end
40
46
 
@@ -55,7 +61,7 @@ module Seatsio
55
61
 
56
62
  def retrieve_object_infos(key:, labels:)
57
63
  url = "events/#{key}/objects"
58
- query_params = URI.encode_www_form(labels.map { |label| ['label', label]})
64
+ query_params = URI.encode_www_form(labels.map { |label| ['label', label] })
59
65
  response = @http_client.get(url, query_params)
60
66
  response.each do |key, value|
61
67
  response[key] = EventObjectInfo.new(value)
@@ -70,7 +76,7 @@ module Seatsio
70
76
  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, allowed_previous_statuses: nil, rejected_previous_statuses: nil)
71
77
  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, allowed_previous_statuses, rejected_previous_statuses)
72
78
  request[:params] = {
73
- :expand => 'objects'
79
+ :expand => 'objects'
74
80
  }
75
81
  response = @http_client.post("events/groups/actions/change-object-status", request)
76
82
  ChangeObjectStatusResult.new(response)
@@ -78,8 +84,8 @@ module Seatsio
78
84
 
79
85
  def change_object_status_in_batch(status_change_requests)
80
86
  request = {
81
- :statusChanges => status_change_requests,
82
- :params => {:expand => 'objects'}
87
+ :statusChanges => status_change_requests,
88
+ :params => { :expand => 'objects' }
83
89
  }
84
90
  response = @http_client.post("events/actions/change-object-status", request)
85
91
  ChangeObjectStatusInBatchResult.new(response).results
@@ -132,8 +138,8 @@ module Seatsio
132
138
  Pagination::Cursor.new(StatusChange, "/events/#{key}/objects/#{object_id}/status-changes", @http_client)
133
139
  end
134
140
 
135
- def mark_as_not_for_sale(key:, objects: nil, categories: nil)
136
- request = build_parameters_for_mark_as_sale objects: objects, categories: categories
141
+ def mark_as_not_for_sale(key:, objects: nil, area_places: nil, categories: nil)
142
+ request = build_parameters_for_mark_as_sale objects, area_places, categories
137
143
  @http_client.post("events/#{key}/actions/mark-as-not-for-sale", request)
138
144
  end
139
145
 
@@ -141,16 +147,17 @@ module Seatsio
141
147
  @http_client.post("events/#{key}/actions/mark-everything-as-for-sale")
142
148
  end
143
149
 
144
- def mark_as_for_sale(key:, objects: nil, categories: nil)
145
- request = build_parameters_for_mark_as_sale objects: objects, categories: categories
150
+ def mark_as_for_sale(key:, objects: nil, area_places: nil, categories: nil)
151
+ request = build_parameters_for_mark_as_sale objects, area_places, categories
146
152
  @http_client.post("events/#{key}/actions/mark-as-for-sale", request)
147
153
  end
148
154
 
149
155
  private
150
156
 
151
- def build_parameters_for_mark_as_sale(objects: nil, categories: nil)
157
+ def build_parameters_for_mark_as_sale(objects, area_places, categories)
152
158
  request = {}
153
159
  request[:objects] = objects if objects
160
+ request[:areaPlaces] = area_places if area_places
154
161
  request[:categories] = categories if categories
155
162
  request
156
163
  end
@@ -161,13 +168,14 @@ module Seatsio
161
168
  payload
162
169
  end
163
170
 
164
- def build_event_request(chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil)
171
+ def build_event_request(chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil, categories: nil)
165
172
  result = {}
166
173
  result["chartKey"] = chart_key if chart_key
167
174
  result["eventKey"] = event_key if event_key
168
175
  result["tableBookingConfig"] = table_booking_config_to_request(table_booking_config) if table_booking_config != nil
169
176
  result["socialDistancingRulesetKey"] = social_distancing_ruleset_key if social_distancing_ruleset_key != nil
170
177
  result["objectCategories"] = object_categories if object_categories != nil
178
+ result["categories"] = categories_to_request(categories) if categories != nil
171
179
  result
172
180
  end
173
181
 
@@ -184,6 +192,9 @@ module Seatsio
184
192
  r = {}
185
193
  r["eventKey"] = param[:event_key] if param[:event_key] != nil
186
194
  r["tableBookingConfig"] = table_booking_config_to_request(param[:table_booking_config]) if param[:table_booking_config] != nil
195
+ r["socialDistancingRulesetKey"] = param[:social_distancing_ruleset_key] if param[:social_distancing_ruleset_key] != nil
196
+ r["objectCategories"] = param[:object_categories] if param[:object_categories] != nil
197
+ r["categories"] = categories_to_request(param[:categories]) if param[:categories] != nil
187
198
  result.push(r)
188
199
  end
189
200
  result
@@ -196,5 +207,18 @@ module Seatsio
196
207
  result
197
208
  end
198
209
 
210
+ def categories_to_request(categories)
211
+ result = []
212
+ categories.each do |category|
213
+ r = {}
214
+ r["key"] = category.key if category.key != nil
215
+ r["label"] = category.label if category.label != nil
216
+ r["color"] = category.color if category.color != nil
217
+ r["accessible"] = category.accessible if category.accessible != nil
218
+ result.push(r)
219
+ end
220
+ result
221
+ end
222
+
199
223
  end
200
224
  end
@@ -1,3 +1,3 @@
1
1
  module Seatsio
2
- VERSION = "40.1.0"
2
+ VERSION = "42.0.0"
3
3
  end
data/seatsio.gemspec CHANGED
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "minitest", "~> 5.0"
26
26
  spec.add_development_dependency "rest-client", '~> 2.0', '>= 2.0.2'
27
27
  spec.add_development_dependency 'webmock', '~> 3.4', '>= 3.4.2'
28
+ spec.add_development_dependency 'minitest-parallel_fork', '~> 1.3'
28
29
  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: 40.1.0
4
+ version: 42.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-06-20 00:00:00.000000000 Z
11
+ date: 2022-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -92,6 +92,20 @@ dependencies:
92
92
  - - ">="
93
93
  - !ruby/object:Gem::Version
94
94
  version: 3.4.2
95
+ - !ruby/object:Gem::Dependency
96
+ name: minitest-parallel_fork
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '1.3'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '1.3'
95
109
  description: This is the official Ruby client library for the Seats.io V2 REST API
96
110
  email:
97
111
  - nahuel@seats.io
@@ -151,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
167
  requirements: []
154
- rubygems_version: 3.1.2
168
+ rubygems_version: 3.3.5
155
169
  signing_key:
156
170
  specification_version: 4
157
171
  summary: the official Seats.io Ruby client library