class DeviseSqreener::Sqreen

sqreen an email of ip

Constants

BASE_URL

Attributes

sqreen_api_token[RW]

Public Class Methods

new(token) click to toggle source
# File lib/devise_sqreener/sqreen.rb, line 11
def initialize(token)
  self.sqreen_api_token = token
end

Public Instance Methods

sqreen_email(email) click to toggle source

Sqreen an email address @param [String] email address to sqreen @return [String, nil] nil (on any error) or the metadata hash

# File lib/devise_sqreener/sqreen.rb, line 18
def sqreen_email(email)
  sqreen(:emails, email)
end
sqreen_ip(ip) click to toggle source

Sqreen an ip address @param [String] ip address to sqreen @return [] nil (on any error) or the metadata hash

# File lib/devise_sqreener/sqreen.rb, line 25
def sqreen_ip(ip)
  sqreen(:ips, ip)
end

Protected Instance Methods

handle_response(kind, value, response) click to toggle source
# File lib/devise_sqreener/sqreen.rb, line 42
def handle_response(kind, value, response)
  case response
  when Net::HTTPSuccess then
    return JSON.load(response.body)
  else
    Rails.logger.debug do
      "Cannot sqreen #{kind} #{value} #{response.inspect}"
    end
    nil
  end
end
sqreen(kind, value) click to toggle source
# File lib/devise_sqreener/sqreen.rb, line 31
def sqreen(kind, value)
  uri = URI(format(BASE_URL, kind, value))
  user_agent = "DeviseSqreener/#{DeviseSqreener::VERSION} #{Gem::Platform.local.os}/#{Gem::Platform.local.version} Rails/#{Rails::VERSION::STRING} Ruby/#{RUBY_VERSION}"
  response = Net::HTTP.start(uri.hostname, uri.port,
                             :use_ssl => uri.scheme == 'https') do |http|
    http.request_get(uri, 'x-api-key' => sqreen_api_token.to_s, 'User-Agent' => user_agent)
  end

  handle_response(kind, value, response)
end