Class: FedexWebServices::ProcessShipmentResponse

Inherits:
Response
  • Object
show all
Defined in:
lib/fedex_web_services/process_shipment_response.rb

Instance Attribute Summary

Attributes inherited from Response

#contents

Instance Method Summary collapse

Methods inherited from Response

#errors, #initialize

Constructor Details

This class inherits a constructor from FedexWebServices::Response

Instance Method Details

#labelObject



5
6
7
8
# File 'lib/fedex_web_services/process_shipment_response.rb', line 5

def label
  label = contents.completedShipmentDetail.completedPackageDetails.first.label
  Base64.decode64(label.parts.map { |p| Base64.decode64(p.image) } * "")
end

#package_rateObject



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fedex_web_services/process_shipment_response.rb', line 16

def package_rate
  details = contents.completedShipmentDetail.completedPackageDetails.first

  details.packageRating.packageRateDetails.inject(0) do |acc, rate|
    rate.rateType == FedexWebServices::Soap::Ship::ReturnedRateType::PAYOR_ACCOUNT_PACKAGE ?
        acc + BigDecimal.new(rate.netCharge.amount) :
        acc
  end
rescue
  raise "Unable to extract rate information from response"
end

#tracking_numberObject



10
11
12
13
14
# File 'lib/fedex_web_services/process_shipment_response.rb', line 10

def tracking_number
  contents.completedShipmentDetail.completedPackageDetails[0].trackingIds[0].trackingNumber
rescue
  raise "Unable to extract tracking number from response"
end