class Admitad::Client

Attributes

access_token[R]

Public Class Methods

new(access_token = nil) click to toggle source
# File lib/admitad/client.rb, line 10
def initialize(access_token = nil)
  @client_id     = Admitad.configuration.client_id
  @client_secret = Admitad.configuration.client_secret
  @scope         = Admitad.configuration.scope || Constants::SCOPES.join(' ')
  @access_token  = access_token
end

Public Instance Methods

advcampaigns(**params) click to toggle source
# File lib/admitad/client.rb, line 44
def advcampaigns(**params)
  path = '/advcampaigns/'
  path << "#{params[:id]}/" if params[:id]

  get(path, query: params.slice(*Constants::AFFILIATE_PROGRAMS_PARAMS))
end
advcampaigns_website(**params) click to toggle source
# File lib/admitad/client.rb, line 51
def advcampaigns_website(**params)
  path = '/advcampaigns/'
  path << "#{params[:c_id]}/" if params[:c_id]
  path << 'website/'
  path << "#{params[:w_id]}/" if params[:w_id]

  get(path, query: params.slice(*Constants::AFFILIATE_PROGRAMS_PARAMS))
end
categories(**params) click to toggle source
# File lib/admitad/client.rb, line 87
def categories(**params)
  get('/categories/', query: params.slice(*Constants::BASE_PARAMS))
end
coupons(**params) click to toggle source
# File lib/admitad/client.rb, line 23
def coupons(**params)
  path = '/coupons/'
  path << "#{params[:id]}/" if params[:id]
  get(path, query: params.slice(*Constants::BASE_PARAMS))
end
coupons_categories(**params) click to toggle source
# File lib/admitad/client.rb, line 17
def coupons_categories(**params)
  path = '/coupons/categories/'
  path << "#{params[:id]}/"
  get(path, query: params.slice(*Constants::BASE_PARAMS))
end
coupons_website(**params) click to toggle source
# File lib/admitad/client.rb, line 29
def coupons_website(**params)
  path = '/coupons/'
  path << "#{params[:c_id]}/" if params[:c_id]
  path << 'website/'
  path << "#{params[:w_id]}/" if params[:w_id]

  get(path, query: params.slice(*Constants::COUPONS_PARAMS))
end
currencies(**params) click to toggle source
# File lib/admitad/client.rb, line 91
def currencies(**params)
  get('/currencies/', query: params.slice(*Constants::BASE_PARAMS))
end
currencies_rate(**params) click to toggle source
# File lib/admitad/client.rb, line 95
def currencies_rate(**params)
  get('/currencies/rate/', query: params.slice(:base, :target, :date))
end
statistics_actions(**params) click to toggle source
# File lib/admitad/client.rb, line 75
def statistics_actions(**params)
  get('/statistics/actions/', query: params.slice(*Constants::STATISTIC_ACTIONS_PARAMS))
end
token(**params) click to toggle source
# File lib/admitad/client.rb, line 71
def token(**params)
  self.class.post('/token/', body: token_body(params), headers: token_headers(params))
end
websites(**params) click to toggle source
# File lib/admitad/client.rb, line 38
def websites(**params)
  path = '/websites/'
  path << "#{params[:id]}/" if params[:id]
  get(path, query: params.slice(*Constants::AD_SPACE_PARAMS))
end
websites_regions(**params) click to toggle source
# File lib/admitad/client.rb, line 83
def websites_regions(**params)
  get('/websites/regions/', query: params.slice(*Constants::BASE_PARAMS))
end

Private Instance Methods

get(path, options = {}, &block) click to toggle source
# File lib/admitad/client.rb, line 106
def get(path, options = {}, &block)
  options[:headers] = { Authorization: "Bearer #{access_token}" }
  self.class.get(path, options, &block)
end
post(path, options = {}, &block) click to toggle source
# File lib/admitad/client.rb, line 101
def post(path, options = {}, &block)
  options[:headers] = { Authorization: "Bearer #{access_token}" }
  self.class.post(path, options, &block)
end
token_body(params) click to toggle source
# File lib/admitad/client.rb, line 111
def token_body(params)
  if params[:grant_type] == :client_credentials
    params.slice(:grant_type).merge(client_id: @client_id, scope: @scope)
  else
    params.slice(:refresh_token, :grant_type).merge(client_id: @client_id, client_secret: @client_secret)
  end
end
token_headers(params) click to toggle source
# File lib/admitad/client.rb, line 119
def token_headers(params)
  if params[:grant_type] == :client_credentials
    { Authorization: "Basic #{Base64.strict_encode64("#{@client_id}:#{@client_secret}")}" }
  else
    self.class.headers
  end
end