class ParcelApi::Address
This module provides API requests to Search Domestic(NZ) Addresses, Get Specific Domestic Address
Detail, Search International Addresses and Get Specifc International Address
Detail.
Constants
- AUSTRALIAN_URL
- DOMESTIC_URL
- INTERNATIONAL_URL
Public Class Methods
Creates a new ParcelApi::Address
instance.
# File lib/parcel_api/address.rb, line 13 def initialize(connection=nil) @connection ||= connection || ParcelApi::Client.connection end
Public Instance Methods
Return australian address details for a specific international address id @param address_id [String] @return australian address detail
# File lib/parcel_api/address.rb, line 55 def australian_details(address_id) details_url = File.join(AUSTRALIAN_URL, address_id.to_s) response = @connection.get details_url RecursiveOpenStruct.new(response.parsed['address'], recurse_over_arrays: true) end
Search for an Australian Address
@param [String] characters to search for @param [Integer] number of search results to return (max 10) @return [Array] array of australian addresses
# File lib/parcel_api/address.rb, line 47 def australian_search(query, count=5) international_search(query, count, 'AU') end
Return domestic address details for a domestic address id @param address_id [String] @return address detail object
# File lib/parcel_api/address.rb, line 36 def details(address_id) details_url = File.join(DOMESTIC_URL, address_id.to_s) response = @connection.get details_url OpenStruct.new(response.parsed['address']) end
Return international address details for a specific international address id @param address_id [String] @return international address detail
# File lib/parcel_api/address.rb, line 78 def international_details(address_id) details_url = File.join(INTERNATIONAL_URL, address_id.to_s) response = @connection.get details_url RecursiveOpenStruct.new(response.parsed['result'], recurse_over_arrays: true) end
Search for an International Address
@param [String] characters to search for @param [Integer] number of search results to return (max 10) @param [String] country code for results - listed here: developers.google.com/public-data/docs/canonical/countries_csv/ @return [Array] array of international addresses
# File lib/parcel_api/address.rb, line 67 def international_search(query, count=5, country_code=nil) return [] if query.length < 4 response = @connection.get INTERNATIONAL_URL, params: { q: query.to_ascii, count: count, country_code: country_code } response.parsed['addresses'].map {|address| OpenStruct.new(address)} end
Search for a Domestic (NZ) Address
@param [String] characters to search for @param [Integer] number of search results to return (max 10) @return [Array] array of addresses
# File lib/parcel_api/address.rb, line 22 def search(query, count=10) return [] if query.length < 4 response = @connection.get DOMESTIC_URL, params: { q: query.to_ascii, count: count } addresses = response.parsed['addresses'].each do |a| a['address_id'] = Integer(a['address_id']) a['dpid'] = Integer(a['dpid']) if a['dpid'] end addresses.map {|address| OpenStruct.new(address)} end