module Usps::Api::Endpoints::ZipCodeLookup
Public Instance Methods
zip_code_lookup(options = {})
click to toggle source
The ZipCodeLookup
API, which returns the ZIP Code and ZIP Code + 4 corresponding to the given address, city, and state (use USPS state abbreviations). The ZipCodeLookup
API processes up to five lookups per request. @param [Hash] options @option options [required, Hash] zip_code_lookup_request API = ZipCodeLookupRequest
* *:address* (Hash) — * *:firm_name* (String) — Up to 5 address verifications can be included per transaction. * *:address1* (String) — Delivery Address in the destination address. May contain secondary unit designator, such as APT or SUITE, for Accountable mail.) * *:address2* (required, String) — Delivery Address in the destination address. Required for all mail and packages, however 11-digit Destination Delivery Point ZIP+4 Code can be provided as an alternative in the Detail 1 Record. * *:city* (String) — City name of the destination address. Field is required, unless a verified 11-digit DPV is provided for the mail piece. * *:state* (String) — Two-character state code of the destination address. * *:zip5* (String) — Destination 5-digit ZIP Code. Must be 5-digits. Numeric values (0-9) only. If International, all zeroes. * *:zip4* (String) — Destination ZIP+4. Numeric values (0-9) only. If International, all zeroes. Default to spaces if not available.
# File lib/usps/api/endpoints/zip_code_lookup.rb, line 23 def zip_code_lookup(options = {}) throw ArgumentError.new('Required arguments :zip_code_lookup_request missing') if options[:zip_code_lookup_request].nil? request = build_request(:zip_code_lookup, options) get('https://secure.shippingapis.com/ShippingAPI.dll', { API: 'ZipCodeLookup', XML: request, }) end
Private Instance Methods
build_zip_code_lookup_request(xml, options = {})
click to toggle source
# File lib/usps/api/endpoints/zip_code_lookup.rb, line 39 def build_zip_code_lookup_request(xml, options = {}) xml.tag!('Address') do tag_unless_blank(xml, 'FirmName', options[:zip_code_lookup_request][:address][:firm_name]) tag_unless_blank(xml, 'Address1', options[:zip_code_lookup_request][:address][:address1]) xml.tag!('Address2', options[:zip_code_lookup_request][:address][:address2]) tag_unless_blank(xml, 'City', options[:zip_code_lookup_request][:address][:city]) tag_unless_blank(xml, 'State', options[:zip_code_lookup_request][:address][:state]) tag_unless_blank(xml, 'Zip5', options[:zip_code_lookup_request][:address][:zip5]) tag_unless_blank(xml, 'Zip4', options[:zip_code_lookup_request][:address][:zip4]) end if options[:zip_code_lookup_request][:address].present? xml.target! end
tag_unless_blank(xml, tag_name, data)
click to toggle source
# File lib/usps/api/endpoints/zip_code_lookup.rb, line 35 def tag_unless_blank(xml, tag_name, data) xml.tag!(tag_name, data) unless data.blank? || data.nil? end