Module: Paperdrive::Client::Deals

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

Overview

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

Instance Method Summary collapse

Instance Method Details

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

POST

Add a follower to a deal



198
199
200
201
202
203
204
# File 'lib/paperdrive/client/deals.rb', line 198

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

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

POST

Add a participant to a deal



211
212
213
214
215
216
217
# File 'lib/paperdrive/client/deals.rb', line 211

def add_participant_to_deal(id:, **args)
  params = parameters(args) do
    required_params :person_id
    optional_params :person_id
  end
  request(:post, "deals/#{id}/participants", params)
end

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

POST

Add a product to the deal, eventually creating a new item called a deal-product.



224
225
226
227
228
229
230
# File 'lib/paperdrive/client/deals.rb', line 224

def add_product_to_deal(id:, **args)
  params = parameters(args) do
    required_params :product_id, :item_price, :quantity
    optional_params :product_id, :item_price, :quantity, :discount_percentage, :duration, :product_variation_id, :comments, :enabled_flag
  end
  request(:post, "deals/#{id}/products", params)
end

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

GET

Get all deals



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

def all_deals(**args)
  params = parameters(args) do
    optional_params :user_id, :filter_id, :stage_id, :status, :start, :limit, :sort, :owned_by_you
  end
  request(:get, 'deals', params)
end

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

POST

Add a deal



173
174
175
176
177
178
179
# File 'lib/paperdrive/client/deals.rb', line 173

def create_deal(**args)
  params = parameters(args) do
    required_params :title
    optional_params :title, :value, :currency, :user_id, :person_id, :org_id, :stage_id, :status, :probability, :lost_reason, :add_time, :visible_to
  end
  request(:post, 'deals', params)
end

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

GET

List activities associated with a deal



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

def deal_activities(id:, **args)
  params = parameters(args) do
    optional_params :start, :limit, :done, :exclude
  end
  request(:get, "deals/#{id}/activities", params)
end

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

GET

Get details of a deal



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

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

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

GET

List files attached to a deal



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

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

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

GET

List followers of a deal



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

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

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

GET

List mail messages associated with a deal



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

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

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

GET

List participants of a deal



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

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

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

GET

List permitted users



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

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

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

GET

List all persons associated with a deal



150
151
152
153
154
155
# File 'lib/paperdrive/client/deals.rb', line 150

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

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

GET

List products attached to a deal



162
163
164
165
166
167
# File 'lib/paperdrive/client/deals.rb', line 162

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

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

GET

List updates about a deal



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

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

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

GET

Get deals timeline



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

def deals_timeline(**args)
  params = parameters(args) do
    required_params :start_date, :interval, :amount, :field_key
    optional_params :start_date, :interval, :amount, :field_key, :user_id, :pipeline_id, :filter_id, :exclude_deals, :totals_convert_currency
  end
  request(:get, 'deals/timeline', params)
end

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

DELETE

Delete a deal



288
289
290
291
292
293
# File 'lib/paperdrive/client/deals.rb', line 288

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

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

DELETE

Delete a follower from a deal



301
302
303
304
305
306
# File 'lib/paperdrive/client/deals.rb', line 301

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

#delete_deal_participants(id:, deal_participant_id:, **args) ⇒ Paperdrive::Response

DELETE

Delete a participant from a deal



314
315
316
317
318
319
# File 'lib/paperdrive/client/deals.rb', line 314

def delete_deal_participants(id:, deal_participant_id:, **args)
  params = parameters(args) do
    optional_params
  end
  request(:delete, "deals/#{id}/participants/#{deal_participant_id}", params)
end

#delete_deal_product(id:, product_attachment_id:, **args) ⇒ Paperdrive::Response

DELETE

Delete an attached product from a deal

Parameters:

  • id: (integer)
  • product_attachment_id: (integer)

Returns:

See Also:



327
328
329
330
331
332
# File 'lib/paperdrive/client/deals.rb', line 327

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

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

DELETE

Delete multiple deals in bulk



275
276
277
278
279
280
281
# File 'lib/paperdrive/client/deals.rb', line 275

def delete_deals(**args)
  params = parameters(args) do
    required_params :ids
    optional_params :ids
  end
  request(:delete, 'deals', params)
end

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

POST

Duplicate deal



186
187
188
189
190
191
# File 'lib/paperdrive/client/deals.rb', line 186

def duplicate_deal(id:, **args)
  params = parameters(args) do
    optional_params
  end
  request(:post, "deals/#{id}/duplicate", params)
end

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

GET

Find deals by name



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

def find_deals_by_name(**args)
  params = parameters(args) do
    required_params :term
    optional_params :term, :person_id, :org_id
  end
  request(:get, 'deals/find', params)
end

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

PUT

Merge two deals



249
250
251
252
253
254
255
# File 'lib/paperdrive/client/deals.rb', line 249

def merge_deals(id:, **args)
  params = parameters(args) do
    required_params :merge_with_id
    optional_params :merge_with_id
  end
  request(:put, "deals/#{id}/merge", params)
end

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

PUT

Update a deal



237
238
239
240
241
242
# File 'lib/paperdrive/client/deals.rb', line 237

def update_deal(id:, **args)
  params = parameters(args) do
    optional_params :title, :value, :currency, :user_id, :person_id, :org_id, :stage_id, :status, :probability, :lost_reason, :visible_to
  end
  request(:put, "deals/#{id}", params)
end

#update_deal_product(id:, deal_product_id:, **args) ⇒ Paperdrive::Response

PUT

Update product attachment details of the deal-product (a product already attached to a deal)

Parameters:

  • id: (integer)
  • deal_product_id: (integer)

Returns:

See Also:



263
264
265
266
267
268
269
# File 'lib/paperdrive/client/deals.rb', line 263

def update_deal_product(id:, deal_product_id:, **args)
  params = parameters(args) do
    required_params :item_price, :quantity
    optional_params :item_price, :quantity, :discount_percentage, :duration, :product_variation_id, :comments, :enabled_flag
  end
  request(:put, "deals/#{id}/products/#{deal_product_id}", params)
end