Class: SmartyStreets::InternationalAutocomplete::Client
- Inherits:
-
Object
- Object
- SmartyStreets::InternationalAutocomplete::Client
- Defined in:
- lib/smartystreets_ruby_sdk/international_autocomplete/client.rb
Overview
It is recommended to instantiate this class using ClientBuilder.build_international_autocomplete_api_client
Instance Method Summary collapse
- #add_parameter(request, key, value) ⇒ Object
- #build_request(lookup) ⇒ Object
- #convert_suggestions(suggestion_hashes) ⇒ Object
-
#initialize(sender, serializer) ⇒ Client
constructor
A new instance of Client.
-
#send(lookup) ⇒ Object
Sends a Lookup object to the International Autocomplete API and stores the result in the Lookup’s result field.
Constructor Details
#initialize(sender, serializer) ⇒ Client
Returns a new instance of Client.
9 10 11 12 |
# File 'lib/smartystreets_ruby_sdk/international_autocomplete/client.rb', line 9 def initialize(sender, serializer) @sender = sender @serializer = serializer end |
Instance Method Details
#add_parameter(request, key, value) ⇒ Object
59 60 61 |
# File 'lib/smartystreets_ruby_sdk/international_autocomplete/client.rb', line 59 def add_parameter(request, key, value) request.parameters[key] = value unless value.nil? or value.empty? end |
#build_request(lookup) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/smartystreets_ruby_sdk/international_autocomplete/client.rb', line 32 def build_request(lookup) request = Request.new unless lookup.address_id.nil? request.url_components = '/' + lookup.address_id end add_parameter(request, 'search', lookup.search) add_parameter(request, 'country', lookup.country) add_parameter(request, 'max_results', lookup.max_results.to_s) add_parameter(request, 'include_only_locality', lookup.locality) add_parameter(request, 'include_only_postal_code', lookup.postal_code) request end |
#convert_suggestions(suggestion_hashes) ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/smartystreets_ruby_sdk/international_autocomplete/client.rb', line 48 def convert_suggestions(suggestion_hashes) converted_suggestions = [] return converted_suggestions if suggestion_hashes.nil? suggestion_hashes.each do |suggestion| converted_suggestions.push(InternationalAutocomplete::Suggestion.new(suggestion)) end converted_suggestions end |
#send(lookup) ⇒ Object
Sends a Lookup object to the International Autocomplete API and stores the result in the Lookup’s result field.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/smartystreets_ruby_sdk/international_autocomplete/client.rb', line 15 def send(lookup) if !lookup || (!lookup.search && !lookup.address_id) raise SmartyStreets::SmartyError, 'Send() must be passed a Lookup with country set, and search or address_id set.' end request = build_request(lookup) response = @sender.send(request) raise response.error if response.error result = @serializer.deserialize(response.payload) suggestions = convert_suggestions(result.fetch('candidates', [])) lookup.result = suggestions end |