Module: Fraudrecord
- Defined in:
- lib/fraudrecord.rb
Class Method Summary collapse
- .conn ⇒ Object
- .default_host ⇒ Object
- .process_args(args) ⇒ Object
- .query(args = {}) ⇒ Object
- .salt_and_hash(value) ⇒ Object
Class Method Details
.conn ⇒ Object
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_host ⇒ Object
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
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 |