Class: Seatsio::EventsClient
- Inherits:
-
Object
- Object
- Seatsio::EventsClient
- Defined in:
- lib/seatsio/events.rb
Instance Method Summary collapse
- #book(event_key_or_keys, object_or_objects, hold_token = nil, order_id = nil) ⇒ Object
- #book_best_available(key:, number:, categories: nil, hold_token: nil, order_id: nil) ⇒ Object
- #change_best_available_object_status(key:, number:, status:, categories: nil, hold_token: nil, extra_data: nil, order_id: nil) ⇒ Object
- #change_object_status(event_key_or_keys, object_or_objects, status, hold_token = nil, order_id = nil) ⇒ Object
- #create(key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: 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) ⇒ Object
- #hold_best_available(key:, number:, categories: nil, hold_token: nil, order_id: nil) ⇒ Object
-
#initialize(secret_key, base_url) ⇒ 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) ⇒ Object
- #retrieve(key:) ⇒ Object
- #retrieve_object_status(key:, object_key:) ⇒ Object
- #status_changes_for_object(key:, object_id:) ⇒ Object
- #update(key:, chart_key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil) ⇒ Object
- #update_extra_data(key:, object:, extra_data: nil) ⇒ Object
- #update_extra_datas(key:, extra_data:) ⇒ Object
Constructor Details
#initialize(secret_key, base_url) ⇒ EventsClient
Returns a new instance of EventsClient.
14 15 16 |
# File 'lib/seatsio/events.rb', line 14 def initialize(secret_key, base_url) @http_client = ::Seatsio::HttpClient.new(secret_key, base_url) end |
Instance Method Details
#book(event_key_or_keys, object_or_objects, hold_token = nil, order_id = nil) ⇒ Object
55 56 57 |
# File 'lib/seatsio/events.rb', line 55 def book(event_key_or_keys, object_or_objects, hold_token = nil, order_id = nil) self.change_object_status(event_key_or_keys, object_or_objects, Domain::ObjectStatus::BOOKED, hold_token, order_id) end |
#book_best_available(key:, number:, categories: nil, hold_token: nil, order_id: nil) ⇒ Object
78 79 80 81 |
# File 'lib/seatsio/events.rb', line 78 def book_best_available(key:, number:, categories: nil, hold_token: nil, order_id: nil) change_best_available_object_status(key: key, number: number,status: Domain::ObjectStatus::BOOKED, categories: categories, hold_token: hold_token, order_id: order_id) end |
#change_best_available_object_status(key:, number:, status:, categories: nil, hold_token: nil, extra_data: nil, order_id: nil) ⇒ Object
72 73 74 75 76 |
# File 'lib/seatsio/events.rb', line 72 def change_best_available_object_status(key:, number:, status:, categories: nil, hold_token: nil, extra_data: nil, order_id: nil) request = create_change_best_available_object_status_request(number, status, categories, extra_data, hold_token, order_id) response = @http_client.post("events/#{key}/actions/change-object-status", request) Domain::BestAvailableObjects.new(response) end |
#change_object_status(event_key_or_keys, object_or_objects, status, hold_token = nil, order_id = nil) ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/seatsio/events.rb', line 59 def change_object_status(event_key_or_keys, object_or_objects, status, hold_token = nil, order_id = nil) request = create_change_object_status_request(object_or_objects, status, hold_token, order_id, event_key_or_keys) request[:params] = { 'expand' => 'objects' } response = @http_client.post("seasons/actions/change-object-status", request) Domain::ChangeObjectStatusResult.new(response) end |
#create(key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil) ⇒ Object
18 19 20 21 22 |
# File 'lib/seatsio/events.rb', line 18 def create(key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil) payload = build_event_request(chart_key: key, event_key: event_key, book_whole_tables: book_whole_tables, table_booking_modes: table_booking_modes) response = @http_client.post("events", payload) Domain::Event.new(response) end |
#create_multiple(key: nil, event_creation_params: nil) ⇒ Object
24 25 26 27 28 |
# File 'lib/seatsio/events.rb', line 24 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) Domain::Events.new(response).events end |
#delete(key:) ⇒ Object
92 93 94 |
# File 'lib/seatsio/events.rb', line 92 def delete(key:) @http_client.delete("/events/#{key}") end |
#hold(event_key_or_keys, object_or_objects, hold_token, order_id = nil) ⇒ Object
68 69 70 |
# File 'lib/seatsio/events.rb', line 68 def hold(event_key_or_keys, object_or_objects, hold_token, order_id = nil) change_object_status(event_key_or_keys, object_or_objects, Domain::ObjectStatus::HELD, hold_token, order_id) end |
#hold_best_available(key:, number:, categories: nil, hold_token: nil, order_id: nil) ⇒ Object
83 84 85 86 |
# File 'lib/seatsio/events.rb', line 83 def hold_best_available(key:, number:, categories: nil, hold_token: nil, order_id: nil) change_best_available_object_status(key: key, number: number, status: Domain::ObjectStatus::HELD, categories: categories, hold_token: hold_token, order_id: order_id) end |
#list ⇒ Object
102 103 104 |
# File 'lib/seatsio/events.rb', line 102 def list Pagination::Cursor.new(Domain::Event, 'events', @http_client) end |
#list_status_changes(key, object_id = nil) ⇒ Object
106 107 108 109 110 111 112 |
# File 'lib/seatsio/events.rb', line 106 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(Domain::StatusChange, "/events/#{key}/status-changes", @http_client) end end |
#mark_as_for_sale(key:, objects: nil, categories: nil) ⇒ Object
127 128 129 130 |
# File 'lib/seatsio/events.rb', line 127 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
118 119 120 121 |
# File 'lib/seatsio/events.rb', line 118 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
123 124 125 |
# File 'lib/seatsio/events.rb', line 123 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) ⇒ Object
88 89 90 |
# File 'lib/seatsio/events.rb', line 88 def release(event_key_or_keys, object_or_objects, hold_token = nil, order_id = nil) change_object_status(event_key_or_keys, object_or_objects, Domain::ObjectStatus::FREE, hold_token, order_id) end |
#retrieve(key:) ⇒ Object
97 98 99 100 |
# File 'lib/seatsio/events.rb', line 97 def retrieve(key:) response = @http_client.get("events/#{key}") Domain::Event.new(response) end |
#retrieve_object_status(key:, object_key:) ⇒ Object
45 46 47 48 49 |
# File 'lib/seatsio/events.rb', line 45 def retrieve_object_status(key:, object_key:) url = "events/#{key}/objects/#{CGI::escape(object_key).gsub('+','%20')}" response = @http_client.get(url) Domain::ObjectStatus.new(response) end |
#status_changes_for_object(key:, object_id:) ⇒ Object
114 115 116 |
# File 'lib/seatsio/events.rb', line 114 def status_changes_for_object(key:, object_id:) Pagination::Cursor.new(Domain::StatusChange, "/events/#{key}/objects/#{object_id}/status-changes", @http_client) end |
#update(key:, chart_key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil) ⇒ Object
30 31 32 33 |
# File 'lib/seatsio/events.rb', line 30 def update(key:, chart_key: nil, event_key: nil, book_whole_tables: nil, table_booking_modes: nil) payload = build_event_request(chart_key: chart_key, event_key: event_key, book_whole_tables: book_whole_tables, table_booking_modes: table_booking_modes) @http_client.post("/events/#{key}", payload) end |
#update_extra_data(key:, object:, extra_data: nil) ⇒ Object
35 36 37 38 |
# File 'lib/seatsio/events.rb', line 35 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
40 41 42 43 |
# File 'lib/seatsio/events.rb', line 40 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 |