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



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

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

#codes_for(codes, type) ⇒ Object



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

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

#error_codes?(codes) ⇒ Boolean



25
26
27
# File 'lib/melissa_data/web_smart/response_processor.rb', line 25

def error_codes?(codes)
  codes.map { |c| c if property_error_codes.keys.include? c }.compact.empty?
end

#has_error_codes?(codes) ⇒ Boolean



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

def has_error_codes? codes
  error_codes?(codes)  ? false : true
end

#process_property(response) ⇒ Object



4
5
6
7
8
9
10
11
# 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



36
37
38
39
40
# File 'lib/melissa_data/web_smart/response_processor.rb', line 36

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



29
30
31
32
33
34
# File 'lib/melissa_data/web_smart/response_processor.rb', line 29

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