Class: Axene::Mailer::Resources::Webhooks

Inherits:
Object
  • Object
show all
Defined in:
lib/axene/mailer/resources/webhooks.rb

Overview

The webhooks resource: manage event subscriptions and inspect deliveries. Accessed as client.webhooks.

Instance Method Summary collapse

Constructor Details

#initialize(transport) ⇒ Webhooks

Returns a new instance of Webhooks.

Parameters:



10
11
12
# File 'lib/axene/mailer/resources/webhooks.rb', line 10

def initialize(transport)
  @transport = transport
end

Instance Method Details

#create(url:, events:) ⇒ Hash

Create a webhook. The signing secret is generated and returned.

Parameters:

  • url (String)
  • events (Array<String>)

Returns:

  • (Hash)


26
27
28
# File 'lib/axene/mailer/resources/webhooks.rb', line 26

def create(url:, events:)
  @transport.request(:post, "/v1/webhooks/", body: { url: url, events: events })
end

#delete(id) ⇒ nil

Delete a webhook.

Parameters:

  • id (String)

Returns:

  • (nil)


47
48
49
# File 'lib/axene/mailer/resources/webhooks.rb', line 47

def delete(id)
  @transport.request(:delete, "/v1/webhooks/#{Util.escape(id)}")
end

#get_delivery(id, delivery_id) ⇒ Hash

Fetch one delivery with its full payload and the endpoint’s response.

Parameters:

  • id (String)
  • delivery_id (String)

Returns:

  • (Hash)


76
77
78
# File 'lib/axene/mailer/resources/webhooks.rb', line 76

def get_delivery(id, delivery_id)
  @transport.request(:get, "/v1/webhooks/#{Util.escape(id)}/deliveries/#{Util.escape(delivery_id)}")
end

#listArray<Hash>

List your active webhooks.

Returns:

  • (Array<Hash>)


17
18
19
# File 'lib/axene/mailer/resources/webhooks.rb', line 17

def list
  @transport.request(:get, "/v1/webhooks/")
end

#list_deliveries(id, page: 0, limit: 20, status: nil) ⇒ Hash

List delivery attempts for a webhook (paginated envelope).

Parameters:

  • id (String)
  • page (Integer) (defaults to: 0)

    default 0

  • limit (Integer) (defaults to: 20)

    default 20

  • status (String, nil) (defaults to: nil)

Returns:

  • (Hash)

    { items:, total:, page:, limit: }



66
67
68
69
# File 'lib/axene/mailer/resources/webhooks.rb', line 66

def list_deliveries(id, page: 0, limit: 20, status: nil)
  @transport.request(:get, "/v1/webhooks/#{Util.escape(id)}/deliveries",
                     query: { page: page, limit: limit, status: status })
end

#test(id) ⇒ Hash

Queue a sample email.delivered delivery to test the endpoint.

Parameters:

  • id (String)

Returns:

  • (Hash)

    { queued:, url: }



55
56
57
# File 'lib/axene/mailer/resources/webhooks.rb', line 55

def test(id)
  @transport.request(:post, "/v1/webhooks/#{Util.escape(id)}/test")
end

#update(id, url: nil, events: nil, is_active: nil) ⇒ Hash

Update a webhook’s url, events, or active state (partial). The is_active argument maps to the wire field is_active.

Parameters:

  • id (String)
  • url (String, nil) (defaults to: nil)
  • events (Array<String>, nil) (defaults to: nil)
  • is_active (Boolean, nil) (defaults to: nil)

Returns:

  • (Hash)


38
39
40
41
# File 'lib/axene/mailer/resources/webhooks.rb', line 38

def update(id, url: nil, events: nil, is_active: nil)
  @transport.request(:patch, "/v1/webhooks/#{Util.escape(id)}",
                     body: Util.prune(url: url, events: events, is_active: is_active))
end