Class: SmartyStreets::USStreet::Client
- Inherits:
-
Object
- Object
- SmartyStreets::USStreet::Client
- Defined in:
- lib/smartystreets_ruby_sdk/us_street/client.rb
Overview
It is recommended to instantiate this class using ClientBuilder.build_us_street_api_client
Instance Method Summary collapse
- #assign_candidates_to_lookups(batch, candidates) ⇒ 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 Street API and stores the results in the result field of the Lookup object.
-
#send_lookup(lookup) ⇒ Object
Sends a Lookup object to the US Street 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_street/client.rb', line 9 def initialize(sender, serializer) @sender = sender @serializer = serializer end |
Instance Method Details
#assign_candidates_to_lookups(batch, candidates) ⇒ Object
68 69 70 71 72 73 |
# File 'lib/smartystreets_ruby_sdk/us_street/client.rb', line 68 def assign_candidates_to_lookups(batch, candidates) candidates.each do |raw_candidate| candidate = Candidate.new(raw_candidate) batch[candidate.input_index].result.push(candidate) end end |
#remap_keys(obj) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/smartystreets_ruby_sdk/us_street/client.rb', line 46 def remap_keys(obj) converted_obj = [] obj.each do |lookup| converted_lookup = {} converted_lookup['street'] = lookup.street converted_lookup['street2'] = lookup.street2 converted_lookup['secondary'] = lookup.secondary converted_lookup['city'] = lookup.city converted_lookup['state'] = lookup.state converted_lookup['zipcode'] = lookup.zipcode converted_lookup['lastline'] = lookup.lastline converted_lookup['addressee'] = lookup.addressee converted_lookup['urbanization'] = lookup.urbanization converted_lookup['match'] = lookup.match converted_lookup['candidates'] = lookup.candidates 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 Street 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 44 |
# File 'lib/smartystreets_ruby_sdk/us_street/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 candidates = @serializer.deserialize(response.payload) candidates = [] if candidates.nil? assign_candidates_to_lookups(batch, candidates) end |
#send_lookup(lookup) ⇒ Object
Sends a Lookup object to the US Street API and stores the result in the Lookup’s result field.
15 16 17 18 19 |
# File 'lib/smartystreets_ruby_sdk/us_street/client.rb', line 15 def send_lookup(lookup) batch = SmartyStreets::Batch.new batch.add(lookup) send_batch(batch) end |