Module: MelissaData::WebSmart::ResponseProcessor

Included in:
Client
Defined in:
lib/melissa_data/web_smart/response_processor.rb

Instance Method Summary collapse

Instance Method Details

#codes(response) ⇒ Object



18
19
20
# File 'lib/melissa_data/web_smart/response_processor.rb', line 18

def codes(response)
  response[:result][:code].split(",")
end

#codes_for(codes, type) ⇒ Object



14
15
16
# File 'lib/melissa_data/web_smart/response_processor.rb', line 14

def codes_for(codes, type)
  codes.map { |c| method("property_#{type}_codes").call[c.to_sym] }.compact
end

#has_error_codes?(codes) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/melissa_data/web_smart/response_processor.rb', line 22

def has_error_codes?(codes)
  !codes.select { |c| c if property_error_codes.keys.include? c.to_sym }.empty?
end

#process_property(response) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/melissa_data/web_smart/response_processor.rb', line 4

def process_property(response)
  codes = codes(response)

  if has_error_codes?(codes)
    { errors: codes_for(codes, 'error') }
  else
    response.merge!(success: codes_for(codes, 'success'))
  end
end

#property_error_codesObject



33
34
35
36
37
# File 'lib/melissa_data/web_smart/response_processor.rb', line 33

def property_error_codes
   { YE01: "No FIPS/APN or AddressKey provided",
     YE02: "No match found",
     YE03: "Invalid FIPS/APN or AddressKey provided" }
end

#property_success_codesObject



26
27
28
29
30
31
# File 'lib/melissa_data/web_smart/response_processor.rb', line 26

def property_success_codes
  { YS01: "FIPS/APN Match found",
    YS02: "AddressKey Match found",
    YS03: "Basic information returned",
    YS04: "Detailed information returned" }
end