class ActiveShipping::AustraliaPost
Constants
- HOST
- PARCEL_ENDPOINTS
Public Instance Methods
calculate_rates(origin, destination, packages, service_code, options = {})
click to toggle source
# File lib/active_shipping/carriers/australia_post.rb, line 38 def calculate_rates(origin, destination, packages, service_code, options = {}) packages = Array(packages) calculate_requests = packages.map do |package| calculate_request = CalculateRequest.new(origin, destination, package, service_code, options) calculate_request.parse(commit(calculate_request.url)) calculate_request end combined_response = CombinedResponse.new(origin, destination, packages, calculate_requests) RateResponse.new(true, 'success', combined_response.params, combined_response.options) end
find_rates(origin, destination, packages, options = {})
click to toggle source
# File lib/active_shipping/carriers/australia_post.rb, line 23 def find_rates(origin, destination, packages, options = {}) packages = Array(packages) service_requests = packages.map do |package| service_request = ServiceRequest.new(origin, destination, package, options) service_request.parse(commit(service_request.url)) service_request end combined_response = CombinedResponse.new(origin, destination, packages, service_requests) RateResponse.new(true, 'success', combined_response.params, combined_response.options) end
requirements()
click to toggle source
# File lib/active_shipping/carriers/australia_post.rb, line 19 def requirements [:api_key] end
Private Instance Methods
commit(request_url)
click to toggle source
# File lib/active_shipping/carriers/australia_post.rb, line 55 def commit(request_url) ssl_get(request_url, headers) rescue ActiveUtils::ResponseError, ActiveShipping::ResponseError => e data = JSON.parse(e.response.body) error_message = data['error'] && data['error']['errorMessage'] ? data['error']['errorMessage'] : 'unknown' RateResponse.new(false, error_message, data) end
headers()
click to toggle source
# File lib/active_shipping/carriers/australia_post.rb, line 65 def headers { 'Content-type' => 'application/json', 'auth-key' => @options[:api_key] } end