Class: TowerdataEmail::TowerDataDefault

Inherits:
Provider
  • Object
show all
Includes:
HTTParty
Defined in:
lib/towerdata_email/providers.rb

Instance Method Summary collapse

Constructor Details

#initializeTowerDataDefault

Returns a new instance of TowerDataDefault.



19
20
# File 'lib/towerdata_email/providers.rb', line 19

def initialize
end

Instance Method Details

#lead_data(address) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 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| ... } ⇒ Object

Yields:

  • (response)


40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 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