Class: Mailgun::Webhooks
- Inherits:
-
Object
- Object
- Mailgun::Webhooks
- Defined in:
- lib/mailgun/webhooks/webhooks.rb
Overview
A Mailgun::Webhooks object is a simple CRUD interface to Mailgun Webhooks. Uses Mailgun
Instance Method Summary collapse
-
#create(domain, action, url = '') ⇒ Object
(also: #add, #add_webhook)
Public: Add webhook.
-
#create_all(domain, url = '') ⇒ Object
(also: #add_all_webhooks)
Public: Sets all webhooks to the same URL.
-
#info(domain, action) ⇒ Object
(also: #get_webhook_url)
Public: Get webook information for a specific action.
-
#initialize(client = Mailgun::Client.new) ⇒ Webhooks
constructor
Public creates a new Mailgun::Webhooks instance.
-
#list(domain, options = {}) ⇒ Object
(also: #get_webhooks)
Public: Get Webhooks.
-
#remove(domain, action) ⇒ Object
(also: #delete, #delete_webhook)
Public: Delete a specific webhook.
-
#remove_all(domain) ⇒ Object
(also: #delete_all, #delete_all_webooks)
Public: Delete all webhooks for a domain.
Constructor Details
#initialize(client = Mailgun::Client.new) ⇒ Webhooks
Public creates a new Mailgun::Webhooks instance.
Defaults to Mailgun::Client
9 10 11 |
# File 'lib/mailgun/webhooks/webhooks.rb', line 9 def initialize(client = Mailgun::Client.new) @client = client end |
Instance Method Details
#create(domain, action, url = '') ⇒ Object Also known as: add, add_webhook
Public: Add webhook
domain - A String of the domain name (ex. domain.com) action - A String of the action to create a webhook for url - A String of the url of the webhook
Returns a Boolean of whether the webhook was created
47 48 49 50 |
# File 'lib/mailgun/webhooks/webhooks.rb', line 47 def create(domain, action, url = '') res = @client.post("domains/#{domain}/webhooks", id: action, url: url) res.to_h['webhook'] == url && res.to_h[] == 'Webhook has been created' end |
#create_all(domain, url = '') ⇒ Object Also known as: add_all_webhooks
Public: Sets all webhooks to the same URL
domain - A String of the domain name url - A String of the url to set all webhooks to
Returns true or false
60 61 62 63 64 65 66 67 |
# File 'lib/mailgun/webhooks/webhooks.rb', line 60 def create_all(domain, url = '') %w(bounce click deliver drop open spam unsubscribe).each do |action| add_webhook domain, action, url end true rescue false end |
#info(domain, action) ⇒ Object Also known as: get_webhook_url
Public: Get webook information for a specific action
domain - a String of Domain name to find a webhook url for action - a String identifying the webhook to get the URL for
Returns a String of the url for the identified webhook or an
empty String if one is not set
32 33 34 35 36 37 |
# File 'lib/mailgun/webhooks/webhooks.rb', line 32 def info(domain, action) res = @client.get("domains/#{domain}/webhooks/#{action}") res.to_h['webhook']['url'] || '' rescue NoMethodError '' end |
#list(domain, options = {}) ⇒ Object Also known as: get_webhooks
Public: Get Webhooks
domain - a string the domain name to retrieve webhooks for options - a Hash of options
Returns a Hash of the list of domains or nil
19 20 21 22 |
# File 'lib/mailgun/webhooks/webhooks.rb', line 19 def list(domain, = {}) res = @client.get("domains/#{domain}/webhooks", ) res.to_h['webhooks'] end |
#remove(domain, action) ⇒ Object Also known as: delete, delete_webhook
Public: Delete a specific webhook
domain - The required String of domain name action - The required String of the webhook action to delete
Returns a Boolean of the success
76 77 78 79 80 81 82 |
# File 'lib/mailgun/webhooks/webhooks.rb', line 76 def remove(domain, action) fail Mailgun::ParameterError('Domain not provided to remove webhook from') unless domain fail Mailgun::ParameterError('Action not provided to identify webhook to remove') unless action @client.delete("domains/#{domain}/webhooks/#{action}").to_h['message'] == 'Webhook has been deleted' rescue Mailgun::CommunicationError false end |
#remove_all(domain) ⇒ Object Also known as: delete_all, delete_all_webooks
Public: Delete all webhooks for a domain
domain - A required String of the domain to remove all webhooks for
Returns a Boolean on the success
91 92 93 94 95 96 |
# File 'lib/mailgun/webhooks/webhooks.rb', line 91 def remove_all(domain) fail Mailgun::ParameterError('Domain not provided to remove webhooks from') unless domain %w(bounce click deliver drop open spam unsubscribe).each do |action| delete_webhook domain, action end end |