Sha256: 497a5e956adce90bd3efe9e23c83c6637e7ca0f489cca5abff9987fb04992154

Contents?: true

Size: 952 Bytes

Versions: 21

Compression:

Stored size: 952 Bytes

Contents

# frozen_string_literal: true

module FriendlyShipping
  module Services
    class Ups
      class ParseCityStateLookupResponse
        extend Dry::Monads::Result::Mixin

        def self.call(request:, response:, location:)
          parsing_result = ParseXMLResponse.call(response.body, 'AddressValidationResponse')

          parsing_result.fmap do |xml|
            FriendlyShipping::ApiResult.new(
              [
                Physical::Location.new(
                  city: xml.at('AddressValidationResult/Address/City')&.text,
                  region: xml.at('AddressValidationResult/Address/StateProvinceCode')&.text,
                  country: location.country,
                  zip: xml.at('AddressValidationResult/Address/PostcodePrimaryLow')&.text,
                )
              ],
              original_request: request,
              original_response: response
            )
          end
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
friendly_shipping-0.5.2 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.5.1 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.5 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.14 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.13 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.12 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.11 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.10 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.9 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.8 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.7 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.6 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.5 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.4 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.3 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.2 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.1 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.4.0 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.3.4 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb
friendly_shipping-0.3.3 lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb