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