seatsio 24.4.0 → 26.0.0

Sign up to get free protection for your applications and to get access to all the features.
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