Sha256: 56cc717975b06f520f7d25046c81bf7f17b971caf4c6f64ca9b1bc09aa587510

Contents?: true

Size: 1.05 KB

Versions: 27

Compression:

Stored size: 1.05 KB

Contents

require_relative '../request'
require_relative 'us_reverse_geo_response'

module SmartyStreets
  module USReverseGeo
    # It is recommended to instantiate this class using ClientBuilder.build_us_reverse_geo_api_client()
    class Client
      def initialize(sender, serializer)
        @sender = sender
        @serializer = serializer
      end

      # Sends a Lookup object to the US Reverse Geo API and stores the result in the Lookup's response field.
      def send(lookup)
        request = build_request(lookup)

        response = @sender.send(request)

        raise response.error if response.error

        lookup.response = Response.new(@serializer.deserialize(response.payload))
      end

      def build_request(lookup)
        request = SmartyStreets::Request.new

        add_parameter(request, 'latitude', lookup.latitude)
        add_parameter(request, 'longitude', lookup.longitude)

        request
      end

      def add_parameter(request, key, value)
        request.parameters[key] = value unless value.nil? or value.empty?
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
smartystreets_ruby_sdk-5.14.19 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.18 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.17 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.14 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.13 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-0.0.0 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.11 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.10 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.9 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.8 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.7 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.6 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.5 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.4 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.3 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.1 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.14.0 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.13.0 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.12.1 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb
smartystreets_ruby_sdk-5.12.0 lib/smartystreets_ruby_sdk/us_reverse_geo/client.rb