module Fraudrecord

Public Class Methods

query(args={}) click to toggle source
# File lib/fraudrecord.rb, line 7
def self.query(args={})
  raise(ArgumentError, "Env variable FRAUD_RECORD_API_KEY not set") unless ENV["FRAUD_RECORD_API_KEY"]
  processed_args = process_args(args).merge!('_action' => 'query',
                                          '_api'    => ENV["FRAUD_RECORD_API_KEY"])
  response = conn.get '/api/', processed_args
  value, count, reliability, report = *Hash.from_xml(response.body)['report'].split('-')
  {
    value: value.to_i,
    count: count.to_i,
    reliability: reliability.to_f,
    report: "https://www.fraudrecord.com/api/?showreport=#{report}"
  }
end

Private Class Methods

conn() click to toggle source
# File lib/fraudrecord.rb, line 27
def self.conn
  Faraday.new(:url => default_host, ssl: { verify: false }) do |faraday|
    faraday.request  :url_encoded
    faraday.adapter  Faraday.default_adapter
  end
end
default_host() click to toggle source
# File lib/fraudrecord.rb, line 23
def self.default_host
  "https://www.fraudrecord.com"
end
process_args(args) click to toggle source
# File lib/fraudrecord.rb, line 34
def self.process_args(args)
  args.inject({}) do |acc, v|
    acc[v[0]] = salt_and_hash(v[1].gsub(/\s/,'').downcase)
    acc
  end
end
salt_and_hash(value) click to toggle source
# File lib/fraudrecord.rb, line 41
def self.salt_and_hash(value)
  32_000.times do
    value = Digest::SHA1.hexdigest("fraudrecord-#{value}")
  end
  value
end