Sha256: 5b3bdb8606159cbf19d38bd3cb157cd6bad1915034b75eb1101eb31bbb577fc0

Contents?: true

Size: 1.1 KB

Versions: 6

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

class EasyPost::Services::Pickup < EasyPost::Services::Service
  MODEL_CLASS = EasyPost::Models::Pickup

  # Create a Pickup object
  def create(params = {})
    wrapped_params = { pickup: params }
    @client.make_request(:post, 'pickups', MODEL_CLASS, wrapped_params)
  end

  # Retrieve a Pickup object
  def retrieve(id)
    @client.make_request(:get, "pickups/#{id}", MODEL_CLASS)
  end

  # Retrieve all Pickup objects
  def all(params = {})
    @client.make_request(:get, 'pickups', MODEL_CLASS, params)
  end

  # Buy a Pickup
  def buy(id, params = {})
    if params.instance_of?(EasyPost::Models::PickupRate)
      params = { carrier: params[:carrier], service: params[:service] }
    end

    @client.make_request(:post, "pickups/#{id}/buy", MODEL_CLASS, params)
  end

  # Cancel a Pickup
  def cancel(id, params = {})
    @client.make_request(:post, "pickups/#{id}/cancel", MODEL_CLASS, params)
  end

  # Get next page of Pickups
  def get_next_page(collection, page_size = nil)
    get_next_page_helper(collection, collection.pickups, 'pickups', MODEL_CLASS, page_size)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
easypost-5.3.0 lib/easypost/services/pickup.rb
easypost-5.2.0 lib/easypost/services/pickup.rb
easypost-5.1.1 lib/easypost/services/pickup.rb
easypost-5.1.0 lib/easypost/services/pickup.rb
easypost-5.0.1 lib/easypost/services/pickup.rb
easypost-5.0.0 lib/easypost/services/pickup.rb