module GdsApi::Helpers

def self.included(klass)

def self.included(klass)
  if klass.respond_to?(:helper_method)
    klass.helper_method :publisher_api, :panopticon_api, :imminence_api, :content_api, :licence_application_api
  end
end

def asset_manager_api(options = {})

def asset_manager_api(options = {})
  @asset_manager_api ||= GdsApi::AssetManager.new(Plek.current.find('asset-manager'), options)
end

def content_api(options = {})

def content_api(options = {})
  @content_api ||= GdsApi::ContentApi.new(Plek.current.find("contentapi"), options)
end

def fact_cave_api(options = {})

def fact_cave_api(options = {})
  @fact_cave_api ||= GdsApi::FactCave.new(Plek.current.find("fact-cave"), options)
end

def imminence_api(options = {})

def imminence_api(options = {})
  @imminence_api ||= GdsApi::Imminence.new(Plek.current.find("imminence"), options)
end

def licence_application_api(options = {})

def licence_application_api(options = {})
  @licence_application_api ||= GdsApi::LicenceApplication.new(Plek.current.find("licensify"), options)
end

def need_api(options = {})

def need_api(options = {})
  @need_api ||= GdsApi::NeedApi.new(Plek.current.find("needapi"), options)
end

def panopticon_api(options = {})

def panopticon_api(options = {})
  @panopticon_api ||= GdsApi::Panopticon.new(Plek.current.find("panopticon"), panopticon_api_credentials.merge(options))
end

def panopticon_api_credentials

def panopticon_api_credentials
  Object::const_defined?(:PANOPTICON_API_CREDENTIALS) ? PANOPTICON_API_CREDENTIALS : {}
end

def publisher_api(options = {})

def publisher_api(options = {})
  @api ||= GdsApi::Publisher.new(Plek.current.find("publisher"), options)
end

def worldwide_api(options = {})

def worldwide_api(options = {})
  @worldwide_api ||= GdsApi::Worldwide.new(Plek.current.find("whitehall-admin"), options)
end