Method: ActiveShipping::UPS#parse_ship_accept

Defined in:
lib/active_shipping/carriers/ups.rb

#parse_ship_accept(response) ⇒ Object (protected)



1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
# File 'lib/active_shipping/carriers/ups.rb', line 1125

def parse_ship_accept(response)
  xml     = build_document(response, 'ShipmentAcceptResponse')
  success = response_success?(xml)
  message = response_message(xml)

  response_info = Hash.from_xml(response).values.first
  packages = response_info["ShipmentResults"]["PackageResults"]
  packages = [packages] if Hash === packages
  labels = packages.map do |package|
    Label.new(package["TrackingNumber"], Base64.decode64(package["LabelImage"]["GraphicImage"]))
  end

  LabelResponse.new(success, message, response_info, {labels: labels})
end