Class: ParcelApi::Track
- Inherits:
-
Object
- Object
- ParcelApi::Track
- Defined in:
- lib/parcel_api/track.rb
Overview
This module provides API requests to track the parcels and return tracking information for a specific tracking reference.
Constant Summary collapse
- PARCELTRACK_URL =
'/ParcelTrack/3.0/parcels'
Instance Method Summary collapse
-
#details(tracking_reference)
Return details for a specific tracking reference.
-
#initialize(connection = nil) ⇒ Track
constructor
Creates a new ParcelApi::Track instance.
Constructor Details
#initialize(connection = nil) ⇒ Track
Creates a new ParcelApi::Track instance.
11 12 13 |
# File 'lib/parcel_api/track.rb', line 11
def initialize(connection=nil)
@connection ||= connection || ParcelApi::Client.connection
end
|
Instance Method Details
#details(tracking_reference)
Return details for a specific tracking reference.
19 20 21 22 23 24 25 26 27 |
# File 'lib/parcel_api/track.rb', line 19
def details(tracking_reference)
details_url = File.join(PARCELTRACK_URL, tracking_reference.to_s)
response = @connection.get details_url
events = response.parsed['results'].tap do |d|
d['tracking_events'].map {|e| e['event_datetime'] = Time.parse(e['event_datetime'])}
d['tracking_events'].sort_by! {|k| k['event_datetime'].to_i}
end
RecursiveOpenStruct.new(events, recurse_over_arrays: true)
end
|