Class: SeatLayer::Webhooks
Overview
Manage webhook subscriptions. To VERIFY a delivery, see SeatLayer::Webhook.
Constant Summary
collapse
- EVENT_NAMES =
[
"seat.booked", "seat.released", "seat.blocked", "hold.expired",
"hold.created", "hold.extended", "event.created", "event.soldout"
].freeze
Constants inherited
from Resource
Resource::UNSET
Instance Method Summary
collapse
Methods inherited from Resource
#initialize
Instance Method Details
#create(url:, events:) ⇒ Object
218
219
220
221
|
# File 'lib/seatlayer/inventory.rb', line 218
def create(url:, events:)
validate_events!(events)
@client.post("/v1/webhooks", { "url" => url, "events" => events })
end
|
#delete(webhook_id) ⇒ Object
229
230
231
|
# File 'lib/seatlayer/inventory.rb', line 229
def delete(webhook_id)
@client.delete("/v1/webhooks/#{encode(webhook_id)}")
end
|
#list ⇒ Object
214
215
216
|
# File 'lib/seatlayer/inventory.rb', line 214
def list
@client.get("/v1/webhooks")
end
|
#list_deliveries(webhook_id, limit: nil, status: nil, before: nil) ⇒ Object
233
234
235
236
237
238
|
# File 'lib/seatlayer/inventory.rb', line 233
def list_deliveries(webhook_id, limit: nil, status: nil, before: nil)
raise ArgumentError, "status must be ok or failed" unless status.nil? || %w[ok failed].include?(status)
query = compact({ "limit" => limit, "status" => status, "before" => before })
@client.get("/v1/webhooks/#{encode(webhook_id)}/deliveries", query)
end
|
#update(webhook_id, url: nil, events: nil, disabled: nil) ⇒ Object
223
224
225
226
227
|
# File 'lib/seatlayer/inventory.rb', line 223
def update(webhook_id, url: nil, events: nil, disabled: nil)
validate_events!(events) unless events.nil?
fields = compact({ "url" => url, "events" => events, "disabled" => disabled })
@client.patch("/v1/webhooks/#{encode(webhook_id)}", fields)
end
|