Class: SeatLayer::Webhooks

Inherits:
Resource show all
Defined in:
lib/seatlayer/inventory.rb

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

Constructor Details

This class inherits a constructor from SeatLayer::Resource

Instance Method Details

#create(url:, events:) ⇒ Object



217
218
219
220
# File 'lib/seatlayer/inventory.rb', line 217

def create(url:, events:)
  validate_events!(events)
  @client.post("/v1/webhooks", { "url" => url, "events" => events })
end

#delete(webhook_id) ⇒ Object



228
229
230
# File 'lib/seatlayer/inventory.rb', line 228

def delete(webhook_id)
  @client.delete("/v1/webhooks/#{encode(webhook_id)}")
end

#listObject



213
214
215
# File 'lib/seatlayer/inventory.rb', line 213

def list
  @client.get("/v1/webhooks")
end

#list_deliveries(webhook_id, limit: nil, status: nil, before: nil) ⇒ Object

Raises:

  • (ArgumentError)


232
233
234
235
236
237
# File 'lib/seatlayer/inventory.rb', line 232

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



222
223
224
225
226
# File 'lib/seatlayer/inventory.rb', line 222

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