Class: MelissaData::WebSmart::Client
Constant Summary
ResponseProcessor::CODE_TYPES
Instance Method Summary
collapse
Methods included from Formatters
#viperize, #viperize_hash
#codes, #codes_for, #error_codes, #has_error_codes?, #map_codes_for, #process
Constructor Details
#initialize ⇒ Client
Returns a new instance of Client.
Instance Method Details
#add_coordinates(response) ⇒ Object
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/melissa_data/web_smart/client.rb', line 45
def add_coordinates(response)
addr = response.dig(:property_address, :address)
city = response.dig(:property_address, :city)
state = response.dig(:property_address, :state)
zip = response.dig(:property_address, :zip)
if addr && city && state && zip
full_address = "#{addr}, #{city}, #{state}, #{zip}"
MelissaData::GeoLookup::Geocoder.address_to_coordinates(full_address)
end
end
|
#address(address:, city:, state:, zip:, country: "USA") ⇒ Object
36
37
38
39
40
41
42
43
|
# File 'lib/melissa_data/web_smart/client.rb', line 36
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(address:) ⇒ Object
31
32
33
34
|
# File 'lib/melissa_data/web_smart/client.rb', line 31
def property_by_address(address:)
@response = process(@client.property_by_address(address: address), 'property')
resolve_response
end
|
#property_by_address_key(address_key:) ⇒ Object
16
17
18
19
|
# File 'lib/melissa_data/web_smart/client.rb', line 16
def property_by_address_key(address_key:)
@response = process(@client.property_by_address_key(address_key: address_key), 'property')
resolve_response
end
|
#property_by_apn(fips:, apn:) ⇒ Object
11
12
13
14
|
# File 'lib/melissa_data/web_smart/client.rb', line 11
def property_by_apn(fips:, apn:)
@response = process(@client.property_by_apn(fips: fips, apn: apn), 'property')
resolve_response
end
|
#resolve_response ⇒ Object
25
26
27
28
29
|
# File 'lib/melissa_data/web_smart/client.rb', line 25
def resolve_response
return @response unless success?
add_coordinates(@response[:records].first) unless MelissaData::GeoLookup::Geocoder.coordinates? @response[:records].first
@response
end
|
#success? ⇒ Boolean
21
22
23
|
# File 'lib/melissa_data/web_smart/client.rb', line 21
def success?
!@response.key?(:errors)
end
|