lib/gds_api/gov_uk_delivery.rb
require_relative 'base' require_relative 'exceptions' require 'json' class GdsApi::GovUkDelivery < GdsApi::Base def initialize(endpoint_url, options = {}) super(endpoint_url, options.merge(timeout: 10)) end def subscribe(email, feed_urls) data = { email: email, feed_urls: feed_urls } url = "#{base_url}/subscriptions" post_url(url, data) end def topic(feed_url, title, description = nil) data = { feed_url: feed_url, title: title, description: description } url = "#{base_url}/lists" post_url(url, data) end def signup_url(feed_url) response = get_json("#{base_url}/list-url?feed_url=#{CGI.escape(feed_url)}") if response response['list_url'] end end def notify(feed_urls, subject, body, logging_params = {}) data = { feed_urls: feed_urls, subject: subject, body: body, logging_params: logging_params } url = "#{base_url}/notifications" post_url(url, data) end def enable_list(gov_delivery_id) data = { gov_delivery_id: gov_delivery_id } url = "#{base_url}/lists/enable" post_url(url, data) end def disable_list(gov_delivery_id) data = { gov_delivery_id: gov_delivery_id } url = "#{base_url}/lists/disable" post_url(url, data) end private def base_url endpoint end def post_url(url, data) if ! @options[:noop] post_json(url, data) elsif @options[:noop] && @options[:stdout] puts "Would POST #{data.to_json} to #{url}" end end end