Sha256: f2ea9c0d9fed04378496d418ddd959d1c4535de204ccb69395416f01685afb5d

Contents?: true

Size: 1.1 KB

Versions: 3

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module FriendlyShipping
  module Services
    class UpsJson
      class GenerateAddressHash
        class << self
          def call(location:, international: false, shipper_number: nil)
            snippet = {}

            attention_name = location.name if international || location.company_name
            snippet[:AttentionName] = attention_name if attention_name
            snippet[:Name] = (location.company_name || location.name)&.slice(0..34)
            snippet[:ShipperNumber] = shipper_number if shipper_number.present?
            snippet[:Phone] = { Number: location.phone } if location.phone
            snippet[:Address] = {
              AddressLine: [location.address1, location.address2, location.address3].compact,
              City: location.city,
              PostalCode: location.zip,
              StateProvinceCode: location.region&.code,
              CountryCode: location.country&.code,
              ResidentialAddressIndicator: location.commercial? ? nil : 'X'
            }.compact
            snippet.compact
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
friendly_shipping-0.10.1 lib/friendly_shipping/services/ups_json/generate_address_hash.rb
friendly_shipping-0.10.0 lib/friendly_shipping/services/ups_json/generate_address_hash.rb
friendly_shipping-0.9.0 lib/friendly_shipping/services/ups_json/generate_address_hash.rb