Class: ParcelApi::Address
- Inherits:
-
Object
- Object
- ParcelApi::Address
- Defined in:
- lib/parcel_api/address.rb
Overview
This module provides API requests to Search Domestic(NZ) Addresses, Get Specific Domestic Address Detail, Search International Addresses and Get Specifc International Address Detail.
Constant Summary collapse
- AUSTRALIAN_URL =
'/ParcelAddress/2.0/australia/addresses'
- DOMESTIC_URL =
'/ParcelAddress/2.0/domestic/addresses'
- INTERNATIONAL_URL =
'/ParcelAddress/2.0/international/addresses'
Instance Method Summary collapse
-
#australian_details(address_id)
Return australian address details for a specific international address id.
-
#australian_search(query, count = 5) ⇒ Array
Search for an Australian Address.
-
#details(address_id)
Return domestic address details for a domestic address id.
-
#initialize(connection = nil) ⇒ Address
constructor
Creates a new ParcelApi::Address instance.
-
#international_details(address_id)
Return international address details for a specific international address id.
-
#international_search(query, count = 5, country_code = nil) ⇒ Array
Search for an International Address.
-
#search(query, count = 10) ⇒ Array
Search for a Domestic (NZ) Address.
Constructor Details
#initialize(connection = nil) ⇒ Address
Creates a new ParcelApi::Address instance.
13 14 15 |
# File 'lib/parcel_api/address.rb', line 13
def initialize(connection=nil)
@connection ||= connection || ParcelApi::Client.connection
end
|
Instance Method Details
#australian_details(address_id)
Return australian address details for a specific international address id
55 56 57 58 59 |
# 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
|
#australian_search(query, count = 5) ⇒ Array
Search for an Australian Address
47 48 49 |
# File 'lib/parcel_api/address.rb', line 47
def australian_search(query, count=5)
international_search(query, count, 'AU')
end
|
#details(address_id)
Return domestic address details for a domestic address id
36 37 38 39 40 |
# 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
|
#international_details(address_id)
Return international address details for a specific international address id
78 79 80 81 82 |
# 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
|
#international_search(query, count = 5, country_code = nil) ⇒ Array
Search for an International Address
67 68 69 70 71 72 |
# 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(query, count = 10) ⇒ Array
Search for a Domestic (NZ) Address
22 23 24 25 26 27 28 29 30 |
# 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
|