Class: SmartyStreets::InternationalPostalCode::Client
- Inherits:
-
Object
- Object
- SmartyStreets::InternationalPostalCode::Client
- Defined in:
- lib/smartystreets_ruby_sdk/international_postal_code/client.rb
Overview
It is recommended to instantiate this class using ClientBuilder.build_international_postal_code_api_client
Instance Method Summary collapse
- #add_parameter(request, key, value) ⇒ Object
- #build_request(lookup) ⇒ Object
- #convert_candidates(candidate_hashes) ⇒ Object
-
#initialize(sender, serializer) ⇒ Client
constructor
A new instance of Client.
-
#send_lookup(lookup) ⇒ Object
Sends a Lookup object to the International Postal Code API and stores the result in the Lookup’s results field.
Constructor Details
#initialize(sender, serializer) ⇒ Client
Returns a new instance of Client.
9 10 11 12 |
# File 'lib/smartystreets_ruby_sdk/international_postal_code/client.rb', line 9 def initialize(sender, serializer) @sender = sender @serializer = serializer end |
Instance Method Details
#add_parameter(request, key, value) ⇒ Object
53 54 55 |
# File 'lib/smartystreets_ruby_sdk/international_postal_code/client.rb', line 53 def add_parameter(request, key, value) request.parameters[key] = value unless value.nil? or value.empty? end |
#build_request(lookup) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/smartystreets_ruby_sdk/international_postal_code/client.rb', line 30 def build_request(lookup) request = SmartyStreets::Request.new add_parameter(request, 'input_id', lookup.input_id) add_parameter(request, 'country', lookup.country) add_parameter(request, 'locality', lookup.locality) add_parameter(request, 'administrative_area', lookup.administrative_area) add_parameter(request, 'postal_code', lookup.postal_code) request end |
#convert_candidates(candidate_hashes) ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/smartystreets_ruby_sdk/international_postal_code/client.rb', line 42 def convert_candidates(candidate_hashes) converted = [] return converted if candidate_hashes.nil? candidate_hashes.each do |obj| converted.push(InternationalPostalCode::Candidate.new(obj)) end converted end |
#send_lookup(lookup) ⇒ Object
Sends a Lookup object to the International Postal Code API and stores the result in the Lookup’s results field.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/smartystreets_ruby_sdk/international_postal_code/client.rb', line 15 def send_lookup(lookup) raise SmartyStreets::SmartyError, 'Send() must be passed a Lookup.' if lookup.nil? request = build_request(lookup) response = @sender.send(request) raise response.error if response.error candidate_hashes = @serializer.deserialize(response.payload) || [] candidates = convert_candidates(candidate_hashes) lookup.results = candidates candidates end |