class Filter8::Client

Constants

API_ENDPOINT
API_URL

Attributes

api_key[RW]
api_secret[RW]

Public Class Methods

new(api_key: nil, api_secret: nil, options: {}) click to toggle source
# File lib/filter8/client.rb, line 13
def initialize(api_key: nil, api_secret: nil, options: {})
  @api_key = api_key
  @api_secret = api_secret
  @options = options
end

Public Instance Methods

nonce_param() click to toggle source
# File lib/filter8/client.rb, line 33
def nonce_param
  "nonce=#{timestamp}"
end
password() click to toggle source
# File lib/filter8/client.rb, line 37
def password 
  Digest::MD5.hexdigest("#{timestamp}#{self.api_secret}")
end
send_request(filter8_request) click to toggle source
# File lib/filter8/client.rb, line 19
def send_request(filter8_request)
  conn = Faraday.new(:url => API_URL) do |faraday|
    faraday.request  :url_encoded
    faraday.adapter  Faraday.default_adapter
  end

  conn.basic_auth self.api_key, password
  response = conn.post "#{API_ENDPOINT}?#{nonce_param}", filter8_request.request_params

  raise Exception.new("Filter8-API error (Status: #{response.status}): #{response.body}") if(response.status != 200)

  Filter8::Result.new JSON.parse(response.body)
end
timestamp() click to toggle source
# File lib/filter8/client.rb, line 41
def timestamp 
  @timestamp ||= Time.now.to_i.to_s
end