class WhoisXMLAPI2::Request::V1

Public Class Methods

go(domain) click to toggle source
# File lib/whoisxmlapi2/request.rb, line 32
def go(domain)
  return WhoisXMLAPI2::Request.send(:fixture_value) if config.mock_out_for_testing

  timestamp = (Time.now.to_f * 1000).to_i
  digest = generate_digest(timestamp)

  JSON.parse(open(config.url + params(digest, domain, timestamp)).read)
end

Private Class Methods

config() click to toggle source
# File lib/whoisxmlapi2/request.rb, line 56
def config
  raise 'Missing configuration' unless WhoisXMLAPI2::Configuration.set_v1?

  WhoisXMLAPI2.configuration
end
generate_digest(timestamp) click to toggle source
# File lib/whoisxmlapi2/request.rb, line 42
def generate_digest(timestamp)
  digest = config.username + timestamp.to_s + config.api_key

  URI.escape(OpenSSL::HMAC.hexdigest(OpenSSL::Digest::MD5.new, config.secret, digest))
end
params(digest, domain, timestamp) click to toggle source
# File lib/whoisxmlapi2/request.rb, line 48
def params(digest, domain, timestamp)
  "requestObject=#{prepare_data(timestamp)}&digest=#{digest}&domainName=#{domain}&outputFormat=json"
end
prepare_data(timestamp) click to toggle source
# File lib/whoisxmlapi2/request.rb, line 52
def prepare_data(timestamp)
  Base64.encode64( { u: config.username, t: timestamp }.to_json )
end