Module: Fraudrecord

Defined in:
lib/fraudrecord.rb

Class Method Summary collapse

Class Method Details

.connObject



27
28
29
30
31
32
# 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_hostObject



23
24
25
# File 'lib/fraudrecord.rb', line 23

def self.default_host
  "https://www.fraudrecord.com"
end

.process_args(args) ⇒ Object



34
35
36
37
38
39
# 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

.query(args = {}) ⇒ Object

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
14
15
16
17
18
19
# 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

.salt_and_hash(value) ⇒ Object



41
42
43
44
45
46
# 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