module ADIWG::Mdtranslator::Readers::MdJson::Address

Public Class Methods

unpack(hAddress, responseObj, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_address.rb, line 22
def self.unpack(hAddress, responseObj, inContext = nil)

   @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson

   # return nil object if input is empty
   if hAddress.empty?
      @MessagePath.issueWarning(10, responseObj, inContext)
      return nil
   end

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intAdd = intMetadataClass.newAddress

   # address - address type [adiwg_addressType] (required)
   if hAddress.has_key?('addressType')
      hAddress['addressType'].each do |item|
         unless item == ''
            intAdd[:addressTypes] << item
         end
      end
   end
   if intAdd[:addressTypes].empty?
      @MessagePath.issueError(11, responseObj, inContext)
   end

   # address - description
   if hAddress.has_key?('description')
      unless hAddress['description'] == ''
         intAdd[:description] = hAddress['description']
      end
   end

   # address - delivery point
   if hAddress.has_key?('deliveryPoint')
      hAddress['deliveryPoint'].each do |item|
         unless item == ''
            intAdd[:deliveryPoints] << item
         end
      end
   end

   # address - city
   if hAddress.has_key?('city')
      unless hAddress['city'] == ''
         intAdd[:city] = hAddress['city']
      end
   end

   # address - admin area
   if hAddress.has_key?('administrativeArea')
      unless hAddress['administrativeArea'] == ''
         intAdd[:adminArea] = hAddress['administrativeArea']
      end
   end

   # address - postal code
   if hAddress.has_key?('postalCode')
      unless hAddress['postalCode'] == ''
         intAdd[:postalCode] = hAddress['postalCode']
      end
   end

   # address - country
   if hAddress.has_key?('country')
      unless hAddress['country'] == ''
         intAdd[:country] = hAddress['country']
      end
   end

   return intAdd

end