Sha256: e6567d4c092b60a26e4570bfb0904db34c6da781db94edb683becd41b6f0f1a4

Contents?: true

Size: 1.3 KB

Versions: 1

Compression:

Stored size: 1.3 KB

Contents

module RRD::Response
  class Tracking
    require 'rrd-track/response/shipment_detail'
    require 'rrd-track/response/track_detail'
    
    attr_accessor :tracking_events, :shipment_detail

    def initialize(xml)
       @shipment_detail = parse_shipment_detail(xml.search("ParcelTrackingViewModel"))
       @tracking_events = []
       xml.search("StopDetailViewModel").each do |event|
         @tracking_events << parse_tracking_detail(event)
       end
     end
     
     private
     
     def parse_shipment_detail(node)
      RRD::Response::ShipmentDetail.new(
        {
          airway_bill:        node.search('AirwayBill').text, 
          tracking_number:    node.search('TrackingNumber').text, 
          location:           node.search('Location').text, 
          status:             node.search('Status').text,  
          vendor_code:        node.search('VendorCode').text,  
          vendor_name:        node.search('VendorName').text,
          is_courier:         node.search('IsCourier').text
        }
      )
     end

     def parse_tracking_detail(node)
      RRD::Response::TrackDetail.new(
        {
         description:   node.search('Description').text,
         location:      node.search('Location').text,
         timestamp:     node.search('TimeStamp').text
        }
      )
     end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rrd-track-1.0.1 lib/rrd-track/response/tracking.rb