Class: Trackerific::UPS

Inherits:
Base
  • Object
show all
Includes:
HTTParty
Defined in:
lib/ups.rb

Overview

Provides package tracking support for UPS.

Instance Method Summary (collapse)

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Trackerific::Base

Instance Method Details

- (Trackerific::Details) track_package(package_id)

Tracks a UPS package

Examples:

Track a package

ups = Trackerific::UPS.new key: 'api key', user_id: 'user', password: 'secret'
details = ups.track_package("1Z12345E0291980793")

Parameters:

  • package_id (String)

    the package identifier

Returns:

Raises:

  • (Trackerific::Error)

    raised when the server returns an error (invalid credentials, tracking package, etc.)



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/ups.rb', line 25

def track_package(package_id)
  super
  # connect to UPS via HTTParty
  http_response = self.class.post('/Track', :body => build_xml_request)
  # throw any HTTP errors
  http_response.error! unless http_response.code == 200
  # Check the response for errors, return a Trackerific::Error, or parse
  # the response from UPS and return a Trackerific::Details
  case http_response['TrackResponse']['Response']['ResponseStatusCode']
    when "0" then raise Trackerific::Error, parse_error_response(http_response)
    when "1" then return parse_success_response(http_response)
    else raise Trackerific::Error, "Invalid response code returned from server."
  end
end