   getEta: (shipment) ->
 
   getService: (shipment) ->
-    description = shipment['Service']?[0]?['Desc']?[0]
-    if description? then titleCase description
 
   getWeight: (shipment) ->
     weight = shipment['Weight']?[0]

  constructor: ({@userId, @password}, @options) ->
    super
    @parser = new Parser()
    @builder = new Builder(renderOpts: pretty: false)

  generateRequest: (trk) ->
    @builder.buildObject
      'ECommerce':
        '$': action: 'Request', version: '1.1'
        'Requestor':
          'ID': @userId
          'Password': @password
        'Track':
          '$': action: 'Get', version: '1.0'
          'Shipment': 'TrackingNbr': trk

  validateResponse: (response, cb) ->
    handleResponse = (xmlErr, trackResult) ->
      return cb(xmlErr) if xmlErr? or !trackResult?
      shipment = trackResult['ECommerce']?['Track']?[0]?['Shipment']?[0]
      return cb(error: 'could not find shipment') unless shipment?
      trackStatus = shipment['Result']?[0]
      statusCode = trackStatus?['Code']?[0]
      statusDesc = trackStatus?['Desc']?[0]
      return cb(error: "unexpected track status code=#{statusCode} desc=#{statusDesc}") unless statusCode is "0"
      cb null, shipment
    @parser.reset()
    @parser.parseString response, handleResponse

    'BT': ShipperClient.STATUS_TYPES.OUT_FOR_DELIVERY
    'OD': ShipperClient.STATUS_TYPES.OUT_FOR_DELIVERY
    'ED': ShipperClient.STATUS_TYPES.OUT_FOR_DELIVERY
    'CC': ShipperClient.STATUS_TYPES.EN_ROUTE
    'DH': ShipperClient.STATUS_TYPES.EN_ROUTE
    'GH': ShipperClient.STATUS_TYPES.EN_ROUTE
