class EasyPost::Services::Tracker

Constants

MODEL_CLASS

A Tracker object contains all of the tracking information for a package.

Public Instance Methods

all(params = {}) click to toggle source

Retrieve a list of Trackers

# File lib/easypost/services/tracker.rb, line 22
def all(params = {})
  filters = {
    key: 'trackers',
    tracking_code: params[:tracking_code],
    carrier: params[:carrier],
  }

  get_all_helper('trackers', MODEL_CLASS, params, filters)
end
create(params = {}) click to toggle source

Create a Tracker

# File lib/easypost/services/tracker.rb, line 7
def create(params = {})
  wrapped_params = { tracker: params }
  response = @client.make_request(:post, 'trackers', wrapped_params)

  EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
end
create_list(params = {}) click to toggle source

Create multiple Tracker objects in bulk.

# File lib/easypost/services/tracker.rb, line 33
def create_list(params = {})
  wrapped_params = { 'trackers' => params }

  @client.make_request(:post, 'trackers/create_list', wrapped_params)
  true # This endpoint does not return a response so we return true here instead
end
get_next_page(collection, page_size = nil) click to toggle source

Get the next page of trackers.

# File lib/easypost/services/tracker.rb, line 41
def get_next_page(collection, page_size = nil)
  raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)

  params = { before_id: collection.trackers.last.id }
  params[:page_size] = page_size unless page_size.nil?
  params.merge!(collection[EasyPost::InternalUtilities::Constants::FILTERS_KEY]).delete(:key)

  all(params)
end
retrieve(id) click to toggle source

Retrieve a Tracker

# File lib/easypost/services/tracker.rb, line 15
def retrieve(id)
  response = @client.make_request(:get, "trackers/#{id}")

  EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
end