Sha256: 0c28a715633850e0b385b23cdc46325327b18dc069f716cf28ca76581a17378e

Contents?: true

Size: 1.4 KB

Versions: 2

Compression:

Stored size: 1.4 KB

Contents

# frozen_string_literal: true

# A Tracker object contains all of the tracking information for a package.
class EasyPost::Tracker < EasyPost::Resource
  # Create multiple Tracker objects in bulk.
  def self.create_list(params = {}, api_key = nil)
    url = "#{self.url}/create_list"
    new_params = { 'trackers' => params }
    EasyPost.make_request(:post, url, api_key, new_params)
    true # This endpoint does not return a response so we return true here instead
  end

  # Retrieve a list of Tracker objects.
  def self.all(filters = {}, api_key = nil)
    collection = super(filters, api_key)

    # Store the filters used to retrieve the collection.
    collection.refresh_from({ tracking_code: filters[:tracking_code], carrier: filters[:carrier] }, api_key)

    collection
  end

  # Get the next page of trackers.
  def self.get_next_page(collection, page_size = nil)
    get_next_page_exec(method(:all), collection, collection.trackers, page_size)
  end

  # Build the next page parameters.
  def self.build_next_page_params(collection, current_page_items, page_size = nil)
    params = {}
    params[:before_id] = current_page_items.last.id
    unless page_size.nil?
      params[:page_size] = page_size
    end
    unless collection.tracking_code.nil?
      params[:tracking_code] = collection.tracking_code
    end
    unless collection.carrier.nil?
      params[:carrier] = collection.carrier
    end
    params
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
easypost-4.13.1 lib/easypost/tracker.rb
easypost-4.13.0 lib/easypost/tracker.rb