Module: Paperdrive::Client::Products

Includes:
Parameters
Included in:
Paperdrive::Client
Defined in:
lib/paperdrive/client/products.rb

Overview

Instance methods related to Products to embed into Paperdrive::Client
arguments are compatible with the Pipedribe API.

Instance Method Summary collapse

Instance Method Details

#all_products(**args) ⇒ Paperdrive::Response

GET

Get all products



18
19
20
21
22
23
# File 'lib/paperdrive/client/products.rb', line 18

def all_products(**args)
  params = parameters(args) do
    optional_params :user_id, :filter_id, :first_char, :start, :limit
  end
  request(:get, 'products', params)
end

#create_product(**args) ⇒ Paperdrive::Response

POST

Add a product



101
102
103
104
105
106
107
# File 'lib/paperdrive/client/products.rb', line 101

def create_product(**args)
  params = parameters(args) do
    required_params :name
    optional_params :name, :code, :unit, :tax, :active_flag, :visible_to, :owner_id, :prices
  end
  request(:post, 'products', params)
end

#create_product_follower(id:, **args) ⇒ Paperdrive::Response

POST

Add a follower to a product



114
115
116
117
118
119
120
# File 'lib/paperdrive/client/products.rb', line 114

def create_product_follower(id:, **args)
  params = parameters(args) do
    required_params :user_id
    optional_params :user_id
  end
  request(:post, "products/#{id}/followers", params)
end

#delete_product(id:, **args) ⇒ Paperdrive::Response

DELETE

Delete a product



139
140
141
142
143
144
# File 'lib/paperdrive/client/products.rb', line 139

def delete_product(id:, **args)
  params = parameters(args) do
    optional_params
  end
  request(:delete, "products/#{id}", params)
end

#delete_product_follower(id:, follower_id:, **args) ⇒ Paperdrive::Response

DELETE

Delete a follower from a product



152
153
154
155
156
157
# File 'lib/paperdrive/client/products.rb', line 152

def delete_product_follower(id:, follower_id:, **args)
  params = parameters(args) do
    optional_params
  end
  request(:delete, "products/#{id}/followers/#{follower_id}", params)
end

#find_products_by_name(**args) ⇒ Paperdrive::Response

GET

Find products by name



29
30
31
32
33
34
35
# File 'lib/paperdrive/client/products.rb', line 29

def find_products_by_name(**args)
  params = parameters(args) do
    required_params :term
    optional_params :term, :currency, :start, :limit
  end
  request(:get, 'products/find', params)
end

#product(id:, **args) ⇒ Paperdrive::Response

GET

Get one product



42
43
44
45
46
47
# File 'lib/paperdrive/client/products.rb', line 42

def product(id:, **args)
  params = parameters(args) do
    optional_params
  end
  request(:get, "products/#{id}", params)
end

#product_deals(id:, **args) ⇒ Paperdrive::Response

GET

Get deals where a product is attached to



54
55
56
57
58
59
# File 'lib/paperdrive/client/products.rb', line 54

def product_deals(id:, **args)
  params = parameters(args) do
    optional_params :start, :limit, :status
  end
  request(:get, "products/#{id}/deals", params)
end

#product_files(id:, **args) ⇒ Paperdrive::Response

GET

List files attached to a product



66
67
68
69
70
71
# File 'lib/paperdrive/client/products.rb', line 66

def product_files(id:, **args)
  params = parameters(args) do
    optional_params :start, :limit, :include_deleted_files, :sort
  end
  request(:get, "products/#{id}/files", params)
end

#product_followers(id:, **args) ⇒ Paperdrive::Response

GET

List followers of a product



78
79
80
81
82
83
# File 'lib/paperdrive/client/products.rb', line 78

def product_followers(id:, **args)
  params = parameters(args) do
    optional_params
  end
  request(:get, "products/#{id}/followers", params)
end

#product_permitted_users(id:, **args) ⇒ Paperdrive::Response

GET

List permitted users



90
91
92
93
94
95
# File 'lib/paperdrive/client/products.rb', line 90

def product_permitted_users(id:, **args)
  params = parameters(args) do
    optional_params :access_level
  end
  request(:get, "products/#{id}/permittedUsers", params)
end

#update_product(id:, **args) ⇒ Paperdrive::Response

PUT

Update a product



127
128
129
130
131
132
# File 'lib/paperdrive/client/products.rb', line 127

def update_product(id:, **args)
  params = parameters(args) do
    optional_params :name, :code, :unit, :tax, :active_flag, :visible_to, :owner_id, :prices
  end
  request(:put, "products/#{id}", params)
end