module Usps::Api::Endpoints::TrackV2

Public Instance Methods

track_v2(options = {}) click to toggle source

The Package Tracking “Fields” API is similar to the Package Track API except for the request fields, API name, and the return information. Data returned still contains the detail and summary information, but this information is broken down into fields instead of having only one line of text. Up to 10 tracking IDs may be contained in each API request to the Web Tools server. @param [Hash] options @option options [required, Hash] track_field_request

* *:revision* (required, Integer)
* *:client_ip* (String)
* *:source_id* (required, String)
* *:track_id* (required, String)
* *:destination_zip_code* (String)
* *:mailing_date* (String)
# File lib/usps/api/endpoints/track_v2.rb, line 24
def track_v2(options = {})
                                        throw ArgumentError.new('Required arguments :track_field_request missing') if options[:track_field_request].nil?
                                        throw ArgumentError.new('Required arguments :track_field_request, :revision missing') if options[:track_field_request][:revision].nil?
                                        throw ArgumentError.new('Required arguments :track_field_request, :source_id missing') if options[:track_field_request][:source_id].nil?
                                        throw ArgumentError.new('Required arguments :track_field_request, :track_id missing') if options[:track_field_request][:track_id].nil?

                                        request = build_request(:track_v2, options)
                                        get('https://secure.shippingapis.com/ShippingAPI.dll', {
                                                API: 'TrackV2',
                                                XML: request,
                                        })
                                end

Private Instance Methods

build_track_v2_request(xml, options = {}) click to toggle source
# File lib/usps/api/endpoints/track_v2.rb, line 43
def build_track_v2_request(xml, options = {})
        xml.tag!('Revision', options[:track_field_request][:revision])
        tag_unless_blank(xml, 'ClientIp', options[:track_field_request][:client_ip])
        xml.tag!('SourceId', options[:track_field_request][:source_id])
        xml.tag!('TrackID', options[:track_field_request][:track_id])
        tag_unless_blank(xml, 'DestinationZipCode', options[:track_field_request][:destination_zip_code])
        tag_unless_blank(xml, 'MailingDate', options[:track_field_request][:mailing_date])
        xml.target!
end
tag_unless_blank(xml, tag_name, data) click to toggle source
# File lib/usps/api/endpoints/track_v2.rb, line 39
def tag_unless_blank(xml, tag_name, data)
        xml.tag!(tag_name, data) unless data.blank? || data.nil?
end