lib/gds_api.rb
require "addressable" require "plek" require "time" require "gds_api/asset_manager" require "gds_api/calendars" require "gds_api/content_store" require "gds_api/email_alert_api" require "gds_api/imminence" require "gds_api/licence_application" require "gds_api/link_checker_api" require "gds_api/local_links_manager" require "gds_api/mapit" require "gds_api/maslow" require "gds_api/organisations" require "gds_api/publishing_api" require "gds_api/router" require "gds_api/search" require "gds_api/support" require "gds_api/support_api" require "gds_api/worldwide" # @api documented module GdsApi # Creates a GdsApi::AssetManager adapter # # This will set a bearer token if a ASSET_MANAGER_BEARER_TOKEN environment # variable is set # # @return [GdsApi::AssetManager] def self.asset_manager(options = {}) GdsApi::AssetManager.new( Plek.find("asset-manager"), { bearer_token: ENV["ASSET_MANAGER_BEARER_TOKEN"] }.merge(options), ) end # Creates a GdsApi::Calendars adapter # # @return [GdsApi::Calendars] def self.calendars(options = {}) GdsApi::Calendars.new(Plek.new.website_root, options) end # Creates a GdsApi::ContentStore adapter # # This will set a bearer token if a CONTENT_STORE_BEARER_TOKEN environment # variable is set # # @return [GdsApi::ContentStore] def self.content_store(options = {}) GdsApi::ContentStore.new( Plek.find("content-store"), { bearer_token: ENV["CONTENT_STORE_BEARER_TOKEN"] }.merge(options), ) end # Creates a GdsApi::EmailAlertApi adapter # # This will set a bearer token if a EMAIL_ALERT_API_BEARER_TOKEN environment # variable is set # # @return [GdsApi::EmailAlertApi] def self.email_alert_api(options = {}) GdsApi::EmailAlertApi.new( Plek.find("email-alert-api"), { bearer_token: ENV["EMAIL_ALERT_API_BEARER_TOKEN"] }.merge(options), ) end # Creates a GdsApi::Imminence adapter # # @return [GdsApi::Imminence] def self.imminence(options = {}) GdsApi::Imminence.new(Plek.find("imminence"), options) end # Creates a GdsApi::LicenceApplication # # @return [GdsApi::LicenceApplication] def self.licence_application(options = {}) GdsApi::LicenceApplication.new(Plek.find("licensify"), options) end # Creates a GdsApi::LinkCheckerApi adapter # # This will set a bearer token if a LINK_CHECKER_API_BEARER_TOKEN environment # variable is set # # @return [GdsApi::LinkCheckerApi] def self.link_checker_api(options = {}) GdsApi::LinkCheckerApi.new( Plek.find("link-checker-api"), { bearer_token: ENV["LINK_CHECKER_API_BEARER_TOKEN"] }.merge(options), ) end # Creates a GdsApi::LocalLinksManager adapter # # @return [GdsApi::LocalLinksManager] def self.local_links_manager(options = {}) GdsApi::LocalLinksManager.new(Plek.find("local-links-manager"), options) end # Creates a GdsApi::Mapit adapter # # @return [GdsApi::Mapit] def self.mapit(options = {}) GdsApi::Mapit.new(Plek.find("mapit"), options) end # Creates a GdsApi::Maslow adapter # # It's set to use an external url as an endpoint as the Maslow adapter is # used to generate external links # # @return [GdsApi::Maslow] def self.maslow(options = {}) GdsApi::Maslow.new(Plek.new.external_url_for("maslow"), options) end # Creates a GdsApi::Organisations adapter for accessing Whitehall # APIs through the origin, where the requests will be handled by # Collections frontend. # # @return [GdsApi::Organisations] def self.organisations(options = {}) GdsApi::Organisations.new(Plek.new.website_root, options) end # Creates a GdsApi::PublishingApi adapter # # This will set a bearer token if a PUBLISHING_API_BEARER_TOKEN environment # variable is set # # @return [GdsApi::PublishingApi] def self.publishing_api(options = {}) GdsApi::PublishingApi.new( Plek.find("publishing-api"), { bearer_token: ENV["PUBLISHING_API_BEARER_TOKEN"] }.merge(options), ) end # Creates a GdsApi::Router adapter for communicating with Router API # # This will set a bearer token if a ROUTER_API_BEARER_TOKEN environment # variable is set # # @return [GdsApi::Router] def self.router(options = {}) GdsApi::Router.new( Plek.find("router-api"), { bearer_token: ENV["ROUTER_API_BEARER_TOKEN"] }.merge(options), ) end # Creates a GdsApi::Search adapter to access via a search.* hostname # # @return [GdsApi::Search] def self.search(options = {}) GdsApi::Search.new(Plek.find("search"), options) end # Creates a GdsApi::Support adapter # # @return [GdsApi::Support] def self.support(options = {}) GdsApi::Support.new(Plek.find("support"), options) end # Creates a GdsApi::SupportApi adapter # # This will set a bearer token if a SUPPORT_API_BEARER_TOKEN environment # variable is set # # @return [GdsApi::SupportApi] def self.support_api(options = {}) GdsApi::SupportApi.new( Plek.find("support-api"), { bearer_token: ENV["SUPPORT_API_BEARER_TOKEN"] }.merge(options), ) end # Creates a GdsApi::Worldwide adapter for accessing Whitehall APIs on a # whitehall-frontend host # # @return [GdsApi::Worldwide] def self.worldwide(options = {}) GdsApi::Worldwide.new(Plek.new.website_root, options) end end