class GdsApi::EmailAlertApi
@api documented
@see github.com/alphagov/email-alert-api<br><br>Adapter for the Email Alert API
def change_subscriber(id:, new_address:)
-
(Hash)
- subscriber
Parameters:
-
Subscriber
(string
) -- new_address -
Subscriber
(integer
) -- id
def change_subscriber(id:, new_address:) patch_json( "#{endpoint}/subscribers/#{id}", new_address: new_address ) end
def change_subscription(id:, frequency:)
-
(Hash)
- subscription
Parameters:
-
Subscription
(string
) -- frequency -
Subscription
(string
) -- id
def change_subscription(id:, frequency:) patch_json( "#{endpoint}/subscriptions/#{id}", frequency: frequency ) end
def create_auth_token(address:, destination:, redirect: nil)
-
(Hash)
- subscriber
Parameters:
-
redirect
(string, nil
) -- Path on GOV.UK to be encoded into the token for redirecting -
destination
(string
) -- Path on GOV.UK that subscriber will be emailed -
address
(string
) -- Email address of subscriber to create token for
def create_auth_token(address:, destination:, redirect: nil) post_json( "#{endpoint}/subscribers/auth-token", address: address, destination: destination, redirect: redirect, ) end
def create_subscriber_list(attributes)
-
attributes
(Hash
) -- document_type, links, tags used to search existing subscriber lists
def create_subscriber_list(attributes) post_json("#{endpoint}/subscriber-lists", attributes) end
def find_or_create_subscriber_list(attributes)
-
attributes
(Hash
) -- document_type, links, tags used to search existing subscriber lists
def find_or_create_subscriber_list(attributes) find_subscriber_list(attributes) rescue GdsApi::HTTPNotFound create_subscriber_list(attributes) end
def find_subscriber_list(attributes)
-
attributes
(Hash
) -- document_type, links, tags used to search existing subscriber lists
def find_subscriber_list(attributes) tags = attributes["tags"] links = attributes["links"] document_type = attributes["document_type"] email_document_supertype = attributes["email_document_supertype"] government_document_supertype = attributes["government_document_supertype"] gov_delivery_id = attributes["gov_delivery_id"] content_purpose_supergroup = attributes["content_purpose_supergroup"] reject_content_purpose_supergroup = attributes["reject_content_purpose_supergroup"] if tags && links message = "please provide either tags or links (or neither), but not both" raise ArgumentError, message end params = {} params[:tags] = tags if tags params[:links] = links if links params[:document_type] = document_type if document_type params[:email_document_supertype] = email_document_supertype if email_document_supertype params[:government_document_supertype] = government_document_supertype if government_document_supertype params[:gov_delivery_id] = gov_delivery_id if gov_delivery_id params[:content_purpose_supergroup] = content_purpose_supergroup if content_purpose_supergroup params[:reject_content_purpose_supergroup] = reject_content_purpose_supergroup if reject_content_purpose_supergroup query_string = nested_query_string(params) get_json("#{endpoint}/subscriber-lists?" + query_string) end
def get_subscribable(reference:)
-
(Hash)
- subscribable: {
def get_subscribable(reference:) get_json("#{endpoint}/subscribables/#{reference}") end
def get_subscription(id)
-
(Hash)
- subscription: {
def get_subscription(id) get_json("#{endpoint}/subscriptions/#{id}") end
def get_subscriptions(id:)
-
(Hash)
- subscriber, subscriptions
Parameters:
-
Subscriber
(integer
) -- id
def get_subscriptions(id:) get_json("#{endpoint}/subscribers/#{id}/subscriptions") end
def nested_query_string(params)
def nested_query_string(params) Rack::Utils.build_nested_query(params) end
def send_alert(publication, headers = {})
-
publication
(Hash
) -- Valid publication attributes
def send_alert(publication, headers = {}) post_json("#{endpoint}/notifications", publication, headers) end
def send_unpublish_message(message)
-
message
(Hash
) -- content_id
def send_unpublish_message(message) post_json("#{endpoint}/unpublish-messages", message) end
def subscribe(subscribable_id:, address:, frequency: "immediately")
-
(Hash)
- subscription_id
def subscribe(subscribable_id:, address:, frequency: "immediately") post_json( "#{endpoint}/subscriptions", subscribable_id: subscribable_id, address: address, frequency: frequency, ) end
def topic_matches(attributes)
-
(Hash)
- topics, enabled, disabled
Parameters:
-
attributes
(Hash
) -- tags, links, document_type,
def topic_matches(attributes) query_string = nested_query_string(attributes) get_json("#{endpoint}/topic-matches.json?#{query_string}") end
def unsubscribe(uuid)
-
(nil)
-
Parameters:
-
Subscription
(string
) -- uuid
def unsubscribe(uuid) post_json("#{endpoint}/unsubscribe/#{uuid}") end
def unsubscribe_subscriber(id)
-
(nil)
-
Parameters:
-
Subscriber
(integer
) -- id
def unsubscribe_subscriber(id) delete_json("#{endpoint}/subscribers/#{id}") end