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
63 64 65 |
# File 'lib/smartystreets_ruby_sdk/international_autocomplete/client.rb', line 63 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 47 48 49 50 |
# 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) for key in lookup.custom_param_hash.keys do add_parameter(request, key, lookup.custom_param_hash[key]) end request end |
#convert_suggestions(suggestion_hashes) ⇒ Object
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/smartystreets_ruby_sdk/international_autocomplete/client.rb', line 52 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 |