Class: Seatsio::EventsClient
- Inherits:
-
Object
- Object
- Seatsio::EventsClient
- Defined in:
- lib/seatsio/events.rb
Instance Method Summary collapse
- #assign_objects_to_channels(key:, channelConfig:) ⇒ Object
- #book(event_key_or_keys, object_or_objects, hold_token: nil, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil, ignore_social_distancing: nil) ⇒ Object
- #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) ⇒ Object
- #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) ⇒ Object
- #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) ⇒ Object
- #change_object_status_in_batch(status_change_requests) ⇒ Object
- #create(chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil) ⇒ Object
- #create_multiple(key: nil, event_creation_params: nil) ⇒ Object
- #delete(key:) ⇒ Object
- #hold(event_key_or_keys, object_or_objects, hold_token, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil, ignore_social_distancing: nil) ⇒ Object
- #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) ⇒ Object
-
#initialize(http_client) ⇒ EventsClient
constructor
A new instance of EventsClient.
- #list ⇒ Object
- #list_status_changes(key, object_id = nil) ⇒ Object
- #mark_as_for_sale(key:, objects: nil, categories: nil) ⇒ Object
- #mark_as_not_for_sale(key:, objects: nil, categories: nil) ⇒ Object
- #mark_everything_as_for_sale(key: nil) ⇒ Object
- #release(event_key_or_keys, object_or_objects, hold_token: nil, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil) ⇒ Object
- #retrieve(key:) ⇒ Object
- #retrieve_object_info(key:, label:) ⇒ Object
- #retrieve_object_infos(key:, labels:) ⇒ Object
- #status_changes_for_object(key:, object_id:) ⇒ Object
- #update(key:, chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil) ⇒ Object
- #update_channels(key:, channels:) ⇒ Object
- #update_extra_data(key:, object:, extra_data: nil) ⇒ Object
- #update_extra_datas(key:, extra_data:) ⇒ Object
Constructor Details
#initialize(http_client) ⇒ EventsClient
Returns a new instance of EventsClient.
13 14 15 |
# File 'lib/seatsio/events.rb', line 13 def initialize(http_client) @http_client = http_client end |
Instance Method Details
#assign_objects_to_channels(key:, channelConfig:) ⇒ Object
149 150 151 |
# File 'lib/seatsio/events.rb', line 149 def assign_objects_to_channels(key:, channelConfig:) @http_client.post("events/#{key}/channels/assign-objects", channelConfig: channelConfig) end |
#book(event_key_or_keys, object_or_objects, hold_token: nil, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil, ignore_social_distancing: nil) ⇒ Object
62 63 64 |
# File 'lib/seatsio/events.rb', line 62 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, ignore_social_distancing: nil) self.change_object_status(event_key_or_keys, object_or_objects, Seatsio::EventObjectInfo::BOOKED, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys, ignore_social_distancing: ) end |
#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) ⇒ Object
94 95 96 |
# File 'lib/seatsio/events.rb', line 94 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) change_best_available_object_status(key, number, Seatsio::EventObjectInfo::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) end |
#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) ⇒ Object
88 89 90 91 92 |
# File 'lib/seatsio/events.rb', line 88 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) 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) response = @http_client.post("events/#{key}/actions/change-object-status", request) BestAvailableObjects.new(response) end |
#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) ⇒ Object
66 67 68 69 70 71 72 73 |
# File 'lib/seatsio/events.rb', line 66 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) 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, , allowed_previous_statuses, rejected_previous_statuses) request[:params] = { :expand => 'objects' } response = @http_client.post("events/groups/actions/change-object-status", request) ChangeObjectStatusResult.new(response) end |
#change_object_status_in_batch(status_change_requests) ⇒ Object
75 76 77 78 79 80 81 82 |
# File 'lib/seatsio/events.rb', line 75 def change_object_status_in_batch(status_change_requests) request = { :statusChanges => status_change_requests, :params => {:expand => 'objects'} } response = @http_client.post("events/actions/change-object-status", request) ChangeObjectStatusInBatchResult.new(response).results end |
#create(chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/seatsio/events.rb', line 17 def create(chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil) payload = build_event_request(chart_key: chart_key, event_key: event_key, table_booking_config: table_booking_config, social_distancing_ruleset_key: , object_categories: object_categories) response = @http_client.post("events", payload) Event.new(response) end |
#create_multiple(key: nil, event_creation_params: nil) ⇒ Object
26 27 28 29 30 |
# File 'lib/seatsio/events.rb', line 26 def create_multiple(key: nil, event_creation_params: nil) payload = build_events_request(chart_key: key, event_creation_params: event_creation_params) response = @http_client.post("events/actions/create-multiple", payload) Events.new(response).events end |
#delete(key:) ⇒ Object
106 107 108 |
# File 'lib/seatsio/events.rb', line 106 def delete(key:) @http_client.delete("/events/#{key}") end |
#hold(event_key_or_keys, object_or_objects, hold_token, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil, ignore_social_distancing: nil) ⇒ Object
84 85 86 |
# File 'lib/seatsio/events.rb', line 84 def hold(event_key_or_keys, object_or_objects, hold_token, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil, ignore_social_distancing: nil) change_object_status(event_key_or_keys, object_or_objects, Seatsio::EventObjectInfo::HELD, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys, ignore_social_distancing: ) end |
#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) ⇒ Object
98 99 100 |
# File 'lib/seatsio/events.rb', line 98 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) change_best_available_object_status(key, number, Seatsio::EventObjectInfo::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) end |
#list ⇒ Object
115 116 117 |
# File 'lib/seatsio/events.rb', line 115 def list Pagination::Cursor.new(Event, 'events', @http_client) end |
#list_status_changes(key, object_id = nil) ⇒ Object
119 120 121 122 123 124 125 |
# File 'lib/seatsio/events.rb', line 119 def list_status_changes(key, object_id = nil) if object_id != nil status_changes_for_object key: key, object_id: object_id else Pagination::Cursor.new(StatusChange, "/events/#{key}/status-changes", @http_client) end end |
#mark_as_for_sale(key:, objects: nil, categories: nil) ⇒ Object
140 141 142 143 |
# File 'lib/seatsio/events.rb', line 140 def mark_as_for_sale(key:, objects: nil, categories: nil) request = build_parameters_for_mark_as_sale objects: objects, categories: categories @http_client.post("events/#{key}/actions/mark-as-for-sale", request) end |
#mark_as_not_for_sale(key:, objects: nil, categories: nil) ⇒ Object
131 132 133 134 |
# File 'lib/seatsio/events.rb', line 131 def mark_as_not_for_sale(key:, objects: nil, categories: nil) request = build_parameters_for_mark_as_sale objects: objects, categories: categories @http_client.post("events/#{key}/actions/mark-as-not-for-sale", request) end |
#mark_everything_as_for_sale(key: nil) ⇒ Object
136 137 138 |
# File 'lib/seatsio/events.rb', line 136 def mark_everything_as_for_sale(key: nil) @http_client.post("events/#{key}/actions/mark-everything-as-for-sale") end |
#release(event_key_or_keys, object_or_objects, hold_token: nil, order_id: nil, keep_extra_data: nil, ignore_channels: nil, channel_keys: nil) ⇒ Object
102 103 104 |
# File 'lib/seatsio/events.rb', line 102 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) change_object_status(event_key_or_keys, object_or_objects, Seatsio::EventObjectInfo::FREE, hold_token: hold_token, order_id: order_id, keep_extra_data: keep_extra_data, ignore_channels: ignore_channels, channel_keys: channel_keys) end |
#retrieve(key:) ⇒ Object
110 111 112 113 |
# File 'lib/seatsio/events.rb', line 110 def retrieve(key:) response = @http_client.get("events/#{key}") Event.from_json(response) end |
#retrieve_object_info(key:, label:) ⇒ Object
47 48 49 50 |
# File 'lib/seatsio/events.rb', line 47 def retrieve_object_info(key:, label:) result = retrieve_object_infos key: key, labels: [label] result[label] end |
#retrieve_object_infos(key:, labels:) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/seatsio/events.rb', line 52 def retrieve_object_infos(key:, labels:) url = "events/#{key}/objects" query_params = URI.encode_www_form(labels.map { |label| ['label', label]}) response = @http_client.get(url, query_params) response.each do |key, value| response[key] = EventObjectInfo.new(value) end response end |
#status_changes_for_object(key:, object_id:) ⇒ Object
127 128 129 |
# File 'lib/seatsio/events.rb', line 127 def status_changes_for_object(key:, object_id:) Pagination::Cursor.new(StatusChange, "/events/#{key}/objects/#{object_id}/status-changes", @http_client) end |
#update(key:, chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil) ⇒ Object
32 33 34 35 |
# File 'lib/seatsio/events.rb', line 32 def update(key:, chart_key: nil, event_key: nil, table_booking_config: nil, social_distancing_ruleset_key: nil, object_categories: nil) payload = build_event_request(chart_key: chart_key, event_key: event_key, table_booking_config: table_booking_config, social_distancing_ruleset_key: , object_categories: object_categories) @http_client.post("/events/#{key}", payload) end |
#update_channels(key:, channels:) ⇒ Object
145 146 147 |
# File 'lib/seatsio/events.rb', line 145 def update_channels(key:, channels:) @http_client.post("events/#{key}/channels/update", channels: channels) end |
#update_extra_data(key:, object:, extra_data: nil) ⇒ Object
37 38 39 40 |
# File 'lib/seatsio/events.rb', line 37 def update_extra_data(key:, object:, extra_data: nil) payload = build_extra_data_request(extra_data) @http_client.post("events/#{key}/objects/#{object}/actions/update-extra-data", payload) end |
#update_extra_datas(key:, extra_data:) ⇒ Object
42 43 44 45 |
# File 'lib/seatsio/events.rb', line 42 def update_extra_datas(key:, extra_data:) payload = build_extra_data_request(extra_data) @http_client.post("events/#{key}/actions/update-extra-data", payload) end |