class MelissaData::WebSmart::Client

Public Class Methods

new() click to toggle source
# File lib/melissa_data/web_smart/client.rb, line 7
def initialize
  @client = MelissaData::WebSmart::PropertyAPI.new
end

Public Instance Methods

add_coordinates(response) click to toggle source
# 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") click to toggle source
# 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:) click to toggle source
# 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:) click to toggle source
# 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:) click to toggle source
# 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() click to toggle source
# 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?() click to toggle source
# File lib/melissa_data/web_smart/client.rb, line 21
def success?
  !@response.key?(:errors)
end