Class: MelissaData::WebSmart::Client

Inherits:
Object
  • Object
show all
Includes:
Formatters, ResponseProcessor
Defined in:
lib/melissa_data/web_smart/client.rb

Constant Summary

Constants included from ResponseProcessor

ResponseProcessor::CODE_TYPES

Instance Method Summary collapse

Methods included from Formatters

#viperize, #viperize_hash

Methods included from ResponseProcessor

#codes, #codes_for, #error_codes, #has_error_codes?, #process

Constructor Details

#initializeClient

Returns a new instance of Client.



7
8
9
# File 'lib/melissa_data/web_smart/client.rb', line 7

def initialize
  @client = MelissaData::WebSmart::PropertyAPI.new
end

Instance Method Details

#add_coordinates(response) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/melissa_data/web_smart/client.rb', line 32

def add_coordinates(response)
  addr  = response[:property_address][:address]
  city  = response[:property_address][:city]
  state = response[:property_address][:state]
  zip   = response[:property_address][:zip]
  full_address = "#{addr}, #{city}, #{state}, #{zip}"
  MelissaData::GeoLookup::Geocoder
    .address_to_coordinates(full_address)
end

#address(address:, city:, state:, zip:, country: "USA") ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/melissa_data/web_smart/client.rb', line 23

def address(address:, city:, state:, zip:, country: "USA")
  resp = viperize_hash(@client.address(address: address,
                                       city: city,
                                       state: state,
                                       zip: zip,
                                       country: country))
  process(resp, 'address')
end

#property_by_address_key(address_key:) ⇒ Object



17
18
19
20
21
# File 'lib/melissa_data/web_smart/client.rb', line 17

def property_by_address_key(address_key:)
  res = process(@client.property_by_address_key(address_key: address_key), 'property')
  add_coordinates(res) unless MelissaData::GeoLookup::Geocoder.coordinates? res
  res
end

#property_by_apn(fips:, apn:) ⇒ Object



11
12
13
14
15
# File 'lib/melissa_data/web_smart/client.rb', line 11

def property_by_apn(fips:, apn:)
  res = process(@client.property_by_apn(fips: fips, apn: apn), 'property')
  add_coordinates(res) unless MelissaData::GeoLookup::Geocoder.coordinates? res
  res
end