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



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

#listObject



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

Raises:

  • (ArgumentError)


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