class TowerdataEmail::TowerDataDefault

Public Class Methods

new() click to toggle source
# File lib/towerdata_email/providers.rb, line 19
def initialize
end

Public Instance Methods

lead_data(address) click to toggle source

api10.towerdata.com/person?email=john%2Cdoe@mailinator&find=postal&demos=10&license=12345

# File lib/towerdata_email/providers.rb, line 24
def lead_data(address)
  opts = {
      headers: TowerdataEmail.config.headers,
      query: {
          license: TowerdataEmail.config.token,
          correct: 'email',
          email: address,
      },
      timeout: TowerdataEmail.config.timeout
  }

  with_valid_response('/person', opts) do |response|
    TowerdataEmail::Response.new(response)
  end
end
with_valid_response(url, opts) { |response| ... } click to toggle source
# File lib/towerdata_email/providers.rb, line 40
def with_valid_response(url, opts, &block)
  response = self.class.get(url, opts)
  case response.code
    when 200
      # All good
    when 401, 403
      raise TokenInvalidError
    when 500
      raise UnknownServerError.new("Problem with request.  Response '#{response}'")
    else
      raise BadConnectionToAPIError.new("Unknown status error #{response.code}: #{response}")
  end
  yield response
end