class Outbrain::Connection

Constants

BASE
DEFAULT_API_VERSION

Attributes

api_version[RW]
base_url[RW]
connection[RW]
logging[RW]
token[RW]
user_name[RW]
user_password[RW]

Public Class Methods

configure(params={}) click to toggle source
# File lib/outbrain/connection.rb, line 21
def self.configure(params={})
  connection = new(params)
  Config.api = connection.api
  Config.api_version = connection.api_version
  connection
end
new(args={}) click to toggle source
# File lib/outbrain/connection.rb, line 10
def initialize(args={})
  @token = args[:token] || args['token']
  @user_name = args[:user_name] || args['user_name']
  @user_password = args[:user_password] || args['user_password']
  @api_version = args[:api_version] || args['api_version'] || DEFAULT_API_VERSION
  @logging = (args.key?(:logging) || args.key?('logging')) ? (args[:logging] || args['logging']) : true # (default right now)
  @base_url = args[:base_url] || "#{BASE}/amplify/#{api_version}/"
  get_token! unless @token
  # should raise if not authenticated properly
end

Public Instance Methods

api() click to toggle source
# File lib/outbrain/connection.rb, line 42
def api
  @api ||= refresh_api
end
get_token!() click to toggle source

authenticates using basic auth to get token.

> docs.amplifyv01.apiary.io/#reference/authentications

# File lib/outbrain/connection.rb, line 30
def get_token!
  @temp_api = Faraday.new(:url => base_url) do |faraday|
    faraday.response :logger if logging
    faraday.adapter  Faraday.default_adapter
  end

  @temp_api.basic_auth user_name, user_password
  response = @temp_api.get("/login")
  @token = JSON.parse(response.body)[Outbrain::HEADER_AUTH_KEY]
  # need to raise error here if token does not exist
end
refresh_api() click to toggle source
# File lib/outbrain/connection.rb, line 46
def refresh_api
  @api = Faraday.new(:url => base_url) do |faraday|
    faraday.response :logger if logging
    faraday.adapter  Faraday.default_adapter
    faraday.headers['Content-Type'] = 'application/json'
    faraday.headers[Outbrain::HEADER_AUTH_KEY] = token
  end
end