Class: SmartyStreets::USZipcode::Client
- Inherits:
-
Object
- Object
- SmartyStreets::USZipcode::Client
- Defined in:
- lib/smartystreets_ruby_sdk/us_zipcode/client.rb
Overview
It is recommended to instantiate this class using ClientBuilder.build_us_zipcode_api_client.
Instance Method Summary collapse
- #add_field(converted_lookup, key, value) ⇒ Object
- #assign_results_to_lookups(batch, results) ⇒ Object
-
#initialize(sender, serializer) ⇒ Client
constructor
A new instance of Client.
- #remap_keys(obj) ⇒ Object
-
#send_batch(batch) ⇒ Object
Sends a Batch object containing no more than 100 Lookup objects to the US ZIP Code API and stores the results in the result field of the Lookup object.
-
#send_lookup(lookup) ⇒ Object
Sends a Lookup object to the US ZIP Code 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/us_zipcode/client.rb', line 9 def initialize(sender, serializer) @sender = sender @serializer = serializer end |
Instance Method Details
#add_field(converted_lookup, key, value) ⇒ Object
71 72 73 |
# File 'lib/smartystreets_ruby_sdk/us_zipcode/client.rb', line 71 def add_field(converted_lookup, key, value) converted_lookup[key] = value unless value.nil? or value.empty? end |
#assign_results_to_lookups(batch, results) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/smartystreets_ruby_sdk/us_zipcode/client.rb', line 45 def assign_results_to_lookups(batch, results) results.each do |raw_result| result = Result.new(raw_result) batch[result.input_index].result = result end end |
#remap_keys(obj) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/smartystreets_ruby_sdk/us_zipcode/client.rb', line 52 def remap_keys(obj) converted_obj = [] obj.each do |lookup| converted_lookup = {} add_field(converted_lookup, 'city', lookup.city) add_field(converted_lookup, 'state', lookup.state) add_field(converted_lookup, 'zipcode', lookup.zipcode) for key in lookup.custom_param_hash.keys do add_field(converted_lookup, key, lookup.custom_param_hash[key]) end converted_obj.push(converted_lookup) end converted_obj end |
#send_batch(batch) ⇒ Object
Sends a Batch object containing no more than 100 Lookup objects to the US ZIP Code API and stores the results in the result field of the Lookup object.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/smartystreets_ruby_sdk/us_zipcode/client.rb', line 23 def send_batch(batch) smarty_request = Request.new return if batch.empty? converted_lookups = remap_keys(batch.all_lookups) if batch.size > 1 smarty_request.payload = @serializer.serialize(converted_lookups) else smarty_request.parameters = converted_lookups[0] end response = @sender.send(smarty_request) raise response.error if response.error results = @serializer.deserialize(response.payload) results = [] if results.nil? assign_results_to_lookups(batch, results) end |