class BalihooLpcClient::Api

Attributes

config[RW]

Public Class Methods

new(config:) click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 5
def initialize(config:)
  self.config = config
end

Public Instance Methods

authenticate!() click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 9
def authenticate!
  auth = Request::Authentication.new(api: self)
  auth.authenticate!
end
campaigns(params: {}) click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 14
def campaigns(params: {})
  validate_params_and_fetch!(params: params, class: Request::Campaigns)
end
campaigns_with_tactics(params: {}) click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 22
def campaigns_with_tactics(params: {})
  validate_params_and_fetch!(params: params, class: Request::CampaignsWithTactics)
end
metrics(tactic_id:, params: {}) click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 26
def metrics(tactic_id:, params: {})
  validate_params_and_fetch!(params: params, tactic_id: tactic_id, class: Request::Metrics)
end
tactics(campaign_id:, params: {}) click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 18
def tactics(campaign_id:, params: {})
  validate_params_and_fetch!(params: params, campaign_id: campaign_id, class: Request::Tactics)
end
website_metrics(params: {}) click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 30
def website_metrics(params: {})
  validate_params_and_fetch!(params: params, class: Request::WebsiteMetrics)
end

Private Instance Methods

authenticated?() click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 51
def authenticated?
  if config.client_id.nil? || config.client_api_key.nil?
    raise NotAuthenticatedError, 'must call authenticate! before any endpoint'
  end
end
fetch(**args) click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 57
def fetch(**args)
  klass = args.delete(:class)
  klass.new(api: self, **args).fetch
end
validate_locations_key(locations:) click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 43
def validate_locations_key(locations:)
  if config.location_key.nil? && locations.nil?
    raise ApiOptionError, 'must give params[:locations] since no location_key given'
  elsif config.location_key.nil? && !locations.is_a?(Array)
    raise ApiOptionError, 'locations must be an array'
  end
end
validate_params_and_fetch!(**args) click to toggle source
# File lib/balihoo_lpc_client/api.rb, line 36
def validate_params_and_fetch!(**args)
  validate_locations_key locations: args[:params][:locations]
  authenticated?

  fetch(**args)
end