class Framed::Client

Attributes

config[RW]

Public Class Methods

new(config) click to toggle source
# File lib/framed/client.rb, line 11
def initialize(config)
  raise Error.new('No API endpoint specified') unless config[:endpoint]
  raise Error.new('No api_key specified') unless config[:api_key]

  @config = config
end

Public Instance Methods

track(data) click to toggle source
# File lib/framed/client.rb, line 18
def track(data)
  Framed.log_info("Client#track #{data.length} events")

  creds = Base64.strict_encode64(@config[:api_key] + ':')
  payload = JSON.generate(data)
  response = Excon.post(
    @config[:endpoint],
    :headers => {
      'Authorization' => "Basic #{creds}",
      'Content-Type' => 'application/json'
    },
    :body => payload
  )

  if response.status != 200
    raise Framed::RequestError.new("Failed Client.track #{response.status} with data #{payload}")
  end
end