seatsio 24.4.0 → 26.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: beeb3566a1671f2eed0e7ffcedfb1befe849d5a5a2835e20b4d8be00fa87d2ba
4
- data.tar.gz: bd73ab390fc32ee52fc9bd7dd9aae15beab3b678fd7ad8283d357c0b45a54734
3
+ metadata.gz: 56dacdba1281d3633ebd9eec2ef5ce9b3b35b1f6c5bd823be2e5f02bd8157962
4
+ data.tar.gz: b54123ab3b42336f2b490dbc669996be69e6cd3438c3591ed4722993cbd22c44
5
5
  SHA512:
6
- metadata.gz: 9c630460139f3a3e879e6f94a51084032b1e4c94a2b1f59a0836c2d4aaa8441ee8c66f40e1083da4c66e4a147c1d2798a16f7903c25d95adde487b6e9107f665
7
- data.tar.gz: 0d20dc31614c3cc6e0eb2b84ab2fb1fca6deb1dded378b276e9d1d7e9b938b8d48d6eb01a239dae8debbe12ebd7745d402863ccda654d0afba2a3544f8003adf
6
+ metadata.gz: 58833779b5be413655325bc3dce81ac8bd78382887d7c13caba7097e3a52f33dd6009e91abdce0bcbc7961b09a7518046b809c8348940d1dee1ab1ff0615b87a
7
+ data.tar.gz: 71ac86858ccb803b5eb5002ce59552c261daebae7ef509334b2bf38ac828f66bd10d77b95274f8a059bdf64c1c13d389c13bfc8407404cf607c3ecb7434b74d0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seatsio (24.4.0)
4
+ seatsio (26.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
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
@@ -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, :disabled_seats, :enabled_seats, :index
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, disabled_seats = [], enabled_seats = [], index = 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)
@@ -50,18 +50,12 @@ module Seatsio
50
50
  Domain::ObjectStatus.new(response)
51
51
  end
52
52
 
53
- # @param [Object] event_key_or_keys
54
- # @param [Object] object_or_objects
55
- # @param [Object] hold_token
56
- # @param [Object] order_id
57
- # @param [Object] keep_extra_data
58
- # @param [Object] channel_keys
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 = nil, keep_extra_data = nil, channel_keys = nil)
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 = nil, order_id = nil, keep_extra_data = nil, channel_keys = nil)
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 = nil, extra_data = nil, hold_token = nil, order_id = nil, keep_extra_data = nil)
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
@@ -1,3 +1,3 @@
1
1
  module Seatsio
2
- VERSION = "24.4.0"
2
+ VERSION = "26.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: 24.4.0
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-07-20 00:00:00.000000000 Z
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
- rubyforge_project:
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