paperdrive 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.rubocop.yml +18 -0
- data/.travis.yml +9 -0
- data/CHANGELOG.md +29 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +75 -0
- data/README.md +120 -0
- data/Rakefile +8 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/lib/paperdrive/client/activities.rb +92 -0
- data/lib/paperdrive/client/activity_fields.rb +36 -0
- data/lib/paperdrive/client/activity_types.rb +77 -0
- data/lib/paperdrive/client/currencies.rb +26 -0
- data/lib/paperdrive/client/deal_fields.rb +87 -0
- data/lib/paperdrive/client/deals.rb +335 -0
- data/lib/paperdrive/client/filters.rb +87 -0
- data/lib/paperdrive/client/global_messages.rb +38 -0
- data/lib/paperdrive/client/mail_messages.rb +26 -0
- data/lib/paperdrive/client/mail_threads.rb +75 -0
- data/lib/paperdrive/client/note_fields.rb +25 -0
- data/lib/paperdrive/client/notes.rb +74 -0
- data/lib/paperdrive/client/organization_fields.rb +87 -0
- data/lib/paperdrive/client/organization_relationships.rb +75 -0
- data/lib/paperdrive/client/organizations.rb +233 -0
- data/lib/paperdrive/client/permission_sets.rb +89 -0
- data/lib/paperdrive/client/person_fields.rb +87 -0
- data/lib/paperdrive/client/persons.rb +258 -0
- data/lib/paperdrive/client/pipelines.rb +111 -0
- data/lib/paperdrive/client/product_fields.rb +87 -0
- data/lib/paperdrive/client/products.rb +160 -0
- data/lib/paperdrive/client/recents.rb +27 -0
- data/lib/paperdrive/client/roles.rb +149 -0
- data/lib/paperdrive/client/search_results.rb +39 -0
- data/lib/paperdrive/client/stages.rb +98 -0
- data/lib/paperdrive/client/user_connections.rb +26 -0
- data/lib/paperdrive/client/user_settings.rb +26 -0
- data/lib/paperdrive/client/users.rb +235 -0
- data/lib/paperdrive/client/webhooks.rb +50 -0
- data/lib/paperdrive/client.rb +122 -0
- data/lib/paperdrive/error.rb +42 -0
- data/lib/paperdrive/parameters.rb +34 -0
- data/lib/paperdrive/response.rb +42 -0
- data/lib/paperdrive/version.rb +6 -0
- data/lib/paperdrive.rb +7 -0
- data/paperdrive.gemspec +33 -0
- metadata +203 -0
@@ -0,0 +1,258 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'paperdrive/parameters'
|
4
|
+
|
5
|
+
module Paperdrive
|
6
|
+
class Client
|
7
|
+
# Instance methods related to Persons to embed into Paperdrive::Client<br>
|
8
|
+
# arguments are compatible with the Pipedribe API.
|
9
|
+
#
|
10
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons
|
11
|
+
module Persons
|
12
|
+
include Paperdrive::Parameters
|
13
|
+
|
14
|
+
# [GET] Get all persons
|
15
|
+
#
|
16
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons
|
17
|
+
# @return [Paperdrive::Response]
|
18
|
+
def all_persons(**args)
|
19
|
+
params = parameters(args) do
|
20
|
+
optional_params :user_id, :filter_id, :first_char, :start, :limit, :sort
|
21
|
+
end
|
22
|
+
request(:get, 'persons', params)
|
23
|
+
end
|
24
|
+
|
25
|
+
# [GET] Find persons by name
|
26
|
+
#
|
27
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_find
|
28
|
+
# @return [Paperdrive::Response]
|
29
|
+
def find_persons_by_name(**args)
|
30
|
+
params = parameters(args) do
|
31
|
+
required_params :term
|
32
|
+
optional_params :term, :org_id, :start, :limit, :search_by_email
|
33
|
+
end
|
34
|
+
request(:get, 'persons/find', params)
|
35
|
+
end
|
36
|
+
|
37
|
+
# [GET] Get details of a person
|
38
|
+
#
|
39
|
+
# @param [integer] id:
|
40
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id
|
41
|
+
# @return [Paperdrive::Response]
|
42
|
+
def person(id:, **args)
|
43
|
+
params = parameters(args) do
|
44
|
+
optional_params
|
45
|
+
end
|
46
|
+
request(:get, "persons/#{id}", params)
|
47
|
+
end
|
48
|
+
|
49
|
+
# [GET] List activities associated with a person
|
50
|
+
#
|
51
|
+
# @param [integer] id:
|
52
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id_activities
|
53
|
+
# @return [Paperdrive::Response]
|
54
|
+
def person_activities(id:, **args)
|
55
|
+
params = parameters(args) do
|
56
|
+
optional_params :start, :limit, :done, :exclude
|
57
|
+
end
|
58
|
+
request(:get, "persons/#{id}/activities", params)
|
59
|
+
end
|
60
|
+
|
61
|
+
# [GET] List deals associated with a person
|
62
|
+
#
|
63
|
+
# @param [integer] id:
|
64
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id_deals
|
65
|
+
# @return [Paperdrive::Response]
|
66
|
+
def person_deals(id:, **args)
|
67
|
+
params = parameters(args) do
|
68
|
+
optional_params :start, :limit, :status, :sort
|
69
|
+
end
|
70
|
+
request(:get, "persons/#{id}/deals", params)
|
71
|
+
end
|
72
|
+
|
73
|
+
# [GET] List files attached to a person
|
74
|
+
#
|
75
|
+
# @param [integer] id:
|
76
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id_files
|
77
|
+
# @return [Paperdrive::Response]
|
78
|
+
def person_files(id:, **args)
|
79
|
+
params = parameters(args) do
|
80
|
+
optional_params :start, :limit, :include_deleted_files, :sort
|
81
|
+
end
|
82
|
+
request(:get, "persons/#{id}/files", params)
|
83
|
+
end
|
84
|
+
|
85
|
+
# [GET] List updates about a person
|
86
|
+
#
|
87
|
+
# @param [integer] id:
|
88
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id_flow
|
89
|
+
# @return [Paperdrive::Response]
|
90
|
+
def person_updates(id:, **args)
|
91
|
+
params = parameters(args) do
|
92
|
+
optional_params :start, :limit
|
93
|
+
end
|
94
|
+
request(:get, "persons/#{id}/flow", params)
|
95
|
+
end
|
96
|
+
|
97
|
+
# [GET] List followers of a person
|
98
|
+
#
|
99
|
+
# @param [integer] id:
|
100
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id_followers
|
101
|
+
# @return [Paperdrive::Response]
|
102
|
+
def person_followers(id:, **args)
|
103
|
+
params = parameters(args) do
|
104
|
+
optional_params
|
105
|
+
end
|
106
|
+
request(:get, "persons/#{id}/followers", params)
|
107
|
+
end
|
108
|
+
|
109
|
+
# [GET] List mail messages associated with a person
|
110
|
+
#
|
111
|
+
# @param [integer] id:
|
112
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id_mailMessages
|
113
|
+
# @return [Paperdrive::Response]
|
114
|
+
def person_mail_messages(id:, **args)
|
115
|
+
params = parameters(args) do
|
116
|
+
optional_params :start, :limit
|
117
|
+
end
|
118
|
+
request(:get, "persons/#{id}/mailMessages", params)
|
119
|
+
end
|
120
|
+
|
121
|
+
# [GET] List permitted users
|
122
|
+
#
|
123
|
+
# @param [integer] id:
|
124
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id_permittedUsers
|
125
|
+
# @return [Paperdrive::Response]
|
126
|
+
def person_permitted_users(id:, **args)
|
127
|
+
params = parameters(args) do
|
128
|
+
optional_params :access_level
|
129
|
+
end
|
130
|
+
request(:get, "persons/#{id}/permittedUsers", params)
|
131
|
+
end
|
132
|
+
|
133
|
+
# [GET] List products associated with a person
|
134
|
+
#
|
135
|
+
# @param [integer] id:
|
136
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/get_persons_id_products
|
137
|
+
# @return [Paperdrive::Response]
|
138
|
+
def person_products(id:, **args)
|
139
|
+
params = parameters(args) do
|
140
|
+
optional_params :start, :limit
|
141
|
+
end
|
142
|
+
request(:get, "persons/#{id}/products", params)
|
143
|
+
end
|
144
|
+
|
145
|
+
# [POST] Add a person
|
146
|
+
#
|
147
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/post_persons
|
148
|
+
# @return [Paperdrive::Response]
|
149
|
+
def create_person(**args)
|
150
|
+
params = parameters(args) do
|
151
|
+
required_params :name
|
152
|
+
optional_params :name, :owner_id, :org_id, :email, :phone, :visible_to, :add_time
|
153
|
+
end
|
154
|
+
request(:post, 'persons', params)
|
155
|
+
end
|
156
|
+
|
157
|
+
# [POST] Add a follower to a person
|
158
|
+
#
|
159
|
+
# @param [integer] id:
|
160
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/post_persons_id_followers
|
161
|
+
# @return [Paperdrive::Response]
|
162
|
+
def create_person_follower(id:, **args)
|
163
|
+
params = parameters(args) do
|
164
|
+
required_params :user_id
|
165
|
+
optional_params :user_id
|
166
|
+
end
|
167
|
+
request(:post, "persons/#{id}/followers", params)
|
168
|
+
end
|
169
|
+
|
170
|
+
# [POST] Add person picture
|
171
|
+
#
|
172
|
+
# @param [integer] id:
|
173
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/post_persons_id_picture
|
174
|
+
# @return [Paperdrive::Response]
|
175
|
+
# def create_person_picture(id:, **args)
|
176
|
+
# params = parameters(args) do
|
177
|
+
# required_params :file
|
178
|
+
# optional_params :file, :crop_x, :crop_y, :crop_width, :crop_height
|
179
|
+
# end
|
180
|
+
# request(:post, "persons/#{id}/picture", params)
|
181
|
+
# end
|
182
|
+
|
183
|
+
# [PUT] Update a person
|
184
|
+
#
|
185
|
+
# @param [integer] id:
|
186
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/put_persons_id
|
187
|
+
# @return [Paperdrive::Response]
|
188
|
+
def update_person(id:, **args)
|
189
|
+
params = parameters(args) do
|
190
|
+
optional_params :name, :owner_id, :org_id, :email, :phone, :visible_to
|
191
|
+
end
|
192
|
+
request(:put, "persons/#{id}", params)
|
193
|
+
end
|
194
|
+
|
195
|
+
# [PUT] Merge two persons
|
196
|
+
#
|
197
|
+
# @param [integer] id:
|
198
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/put_persons_id_merge
|
199
|
+
# @return [Paperdrive::Response]
|
200
|
+
def merge_persons(id:, **args)
|
201
|
+
params = parameters(args) do
|
202
|
+
required_params :merge_with_id
|
203
|
+
optional_params :merge_with_id
|
204
|
+
end
|
205
|
+
request(:put, "persons/#{id}/merge", params)
|
206
|
+
end
|
207
|
+
|
208
|
+
# [DELETE] Delete multiple persons in bulk
|
209
|
+
#
|
210
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/delete_persons
|
211
|
+
# @return [Paperdrive::Response]
|
212
|
+
def delete_persons(**args)
|
213
|
+
params = parameters(args) do
|
214
|
+
required_params :ids
|
215
|
+
optional_params :ids
|
216
|
+
end
|
217
|
+
request(:delete, 'persons', params)
|
218
|
+
end
|
219
|
+
|
220
|
+
# [DELETE] Delete a person
|
221
|
+
#
|
222
|
+
# @param [integer] id:
|
223
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/delete_persons_id
|
224
|
+
# @return [Paperdrive::Response]
|
225
|
+
def delete_person(id:, **args)
|
226
|
+
params = parameters(args) do
|
227
|
+
optional_params
|
228
|
+
end
|
229
|
+
request(:delete, "persons/#{id}", params)
|
230
|
+
end
|
231
|
+
|
232
|
+
# [DELETE] Delete a follower from a person
|
233
|
+
#
|
234
|
+
# @param [integer] id:
|
235
|
+
# @param [integer] follower_id:
|
236
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/delete_persons_id_followers_follower_id
|
237
|
+
# @return [Paperdrive::Response]
|
238
|
+
def delete_person_follower(id:, follower_id:, **args)
|
239
|
+
params = parameters(args) do
|
240
|
+
optional_params
|
241
|
+
end
|
242
|
+
request(:delete, "persons/#{id}/followers/#{follower_id}", params)
|
243
|
+
end
|
244
|
+
|
245
|
+
# [DELETE] Delete person picture
|
246
|
+
#
|
247
|
+
# @param [integer] id:
|
248
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Persons/delete_persons_id_picture
|
249
|
+
# @return [Paperdrive::Response]
|
250
|
+
def delete_person_picture(id:, **args)
|
251
|
+
params = parameters(args) do
|
252
|
+
optional_params
|
253
|
+
end
|
254
|
+
request(:delete, "persons/#{id}/picture", params)
|
255
|
+
end
|
256
|
+
end
|
257
|
+
end
|
258
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'paperdrive/parameters'
|
4
|
+
|
5
|
+
module Paperdrive
|
6
|
+
class Client
|
7
|
+
# Instance methods related to Pipelines to embed into Paperdrive::Client<br>
|
8
|
+
# arguments are compatible with the Pipedribe API.
|
9
|
+
#
|
10
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Pipelines
|
11
|
+
module Pipelines
|
12
|
+
include Paperdrive::Parameters
|
13
|
+
|
14
|
+
# [GET] Get all pipelines
|
15
|
+
#
|
16
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Pipelines/get_pipelines
|
17
|
+
# @return [Paperdrive::Response]
|
18
|
+
def all_pipelines(**args)
|
19
|
+
params = parameters(args) do
|
20
|
+
optional_params
|
21
|
+
end
|
22
|
+
request(:get, 'pipelines', params)
|
23
|
+
end
|
24
|
+
|
25
|
+
# [GET] Get one pipeline
|
26
|
+
#
|
27
|
+
# @param [integer] id:
|
28
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Pipelines/get_pipelines_id
|
29
|
+
# @return [Paperdrive::Response]
|
30
|
+
def pipeline(id:, **args)
|
31
|
+
params = parameters(args) do
|
32
|
+
optional_params :totals_convert_currency
|
33
|
+
end
|
34
|
+
request(:get, "pipelines/#{id}", params)
|
35
|
+
end
|
36
|
+
|
37
|
+
# [GET] Get deals conversion rates in pipeline
|
38
|
+
#
|
39
|
+
# @param [integer] id:
|
40
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Pipelines/get_pipelines_id_conversion_statistics
|
41
|
+
# @return [Paperdrive::Response]
|
42
|
+
def pipeline_deals_cvr(id:, **args)
|
43
|
+
params = parameters(args) do
|
44
|
+
required_params :start_date, :end_date
|
45
|
+
optional_params :start_date, :end_date, :user_id
|
46
|
+
end
|
47
|
+
request(:get, "pipelines/#{id}/conversion_statistics", params)
|
48
|
+
end
|
49
|
+
|
50
|
+
# [GET] Get deals in a pipeline
|
51
|
+
#
|
52
|
+
# @param [integer] id:
|
53
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Pipelines/get_pipelines_id_deals
|
54
|
+
# @return [Paperdrive::Response]
|
55
|
+
def pipeline_deals(id:, **args)
|
56
|
+
params = parameters(args) do
|
57
|
+
optional_params :filter_id, :user_id, :everyone, :stage_id, :start, :limit, :get_summary, :totals_convert_currency
|
58
|
+
end
|
59
|
+
request(:get, "pipelines/#{id}/deals", params)
|
60
|
+
end
|
61
|
+
|
62
|
+
# [GET] Get deals movements in pipeline
|
63
|
+
#
|
64
|
+
# @param [integer] id:
|
65
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Pipelines/get_pipelines_id_movement_statistics
|
66
|
+
# @return [Paperdrive::Response]
|
67
|
+
def pipeline_deals_movements(id:, **args)
|
68
|
+
params = parameters(args) do
|
69
|
+
required_params :start_date, :end_date
|
70
|
+
optional_params :start_date, :end_date, :user_id
|
71
|
+
end
|
72
|
+
request(:get, "pipelines/#{id}/movement_statistics", params)
|
73
|
+
end
|
74
|
+
|
75
|
+
# [POST] Add a new pipeline
|
76
|
+
#
|
77
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Pipelines/post_pipelines
|
78
|
+
# @return [Paperdrive::Response]
|
79
|
+
def create_pipeline(**args)
|
80
|
+
params = parameters(args) do
|
81
|
+
optional_params :name, :deal_probability, :order_nr, :active
|
82
|
+
end
|
83
|
+
request(:post, 'pipelines', params)
|
84
|
+
end
|
85
|
+
|
86
|
+
# [PUT] Edit a pipeline
|
87
|
+
#
|
88
|
+
# @param [integer] id:
|
89
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Pipelines/put_pipelines_id
|
90
|
+
# @return [Paperdrive::Response]
|
91
|
+
def update_pipeline(id:, **args)
|
92
|
+
params = parameters(args) do
|
93
|
+
optional_params :name, :deal_probability, :order_nr, :active
|
94
|
+
end
|
95
|
+
request(:put, "pipelines/#{id}", params)
|
96
|
+
end
|
97
|
+
|
98
|
+
# [DELETE] Delete a pipeline
|
99
|
+
#
|
100
|
+
# @param [integer] id:
|
101
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Pipelines/delete_pipelines_id
|
102
|
+
# @return [Paperdrive::Response]
|
103
|
+
def delete_pipeline(id:, **args)
|
104
|
+
params = parameters(args) do
|
105
|
+
optional_params
|
106
|
+
end
|
107
|
+
request(:delete, "pipelines/#{id}", params)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'paperdrive/parameters'
|
4
|
+
|
5
|
+
module Paperdrive
|
6
|
+
class Client
|
7
|
+
# Instance methods related to ProductFields to embed into Paperdrive::Client<br>
|
8
|
+
# arguments are compatible with the Pipedribe API.
|
9
|
+
#
|
10
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/ProductFields
|
11
|
+
module ProductFields
|
12
|
+
include Paperdrive::Parameters
|
13
|
+
|
14
|
+
# [GET] Get all product fields
|
15
|
+
#
|
16
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/ProductFields/get_productFields
|
17
|
+
# @return [Paperdrive::Response]
|
18
|
+
def all_product_fields(**args)
|
19
|
+
params = parameters(args) do
|
20
|
+
optional_params
|
21
|
+
end
|
22
|
+
request(:get, 'productFields', params)
|
23
|
+
end
|
24
|
+
|
25
|
+
# [GET] Get one product field
|
26
|
+
#
|
27
|
+
# @param [integer] id:
|
28
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/ProductFields/get_productFields_id
|
29
|
+
# @return [Paperdrive::Response]
|
30
|
+
def product_field(id:, **args)
|
31
|
+
params = parameters(args) do
|
32
|
+
optional_params
|
33
|
+
end
|
34
|
+
request(:get, "productFields/#{id}", params)
|
35
|
+
end
|
36
|
+
|
37
|
+
# [POST] Add a new product field
|
38
|
+
#
|
39
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/ProductFields/post_productFields
|
40
|
+
# @return [Paperdrive::Response]
|
41
|
+
def create_product_field(**args)
|
42
|
+
params = parameters(args) do
|
43
|
+
required_params :name, :field_type
|
44
|
+
optional_params :name, :field_type, :options
|
45
|
+
end
|
46
|
+
request(:post, 'productFields', params)
|
47
|
+
end
|
48
|
+
|
49
|
+
# [PUT] Update a product field
|
50
|
+
#
|
51
|
+
# @param [integer] id:
|
52
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/ProductFields/put_productFields_id
|
53
|
+
# @return [Paperdrive::Response]
|
54
|
+
def update_product_field(id:, **args)
|
55
|
+
params = parameters(args) do
|
56
|
+
required_params :name
|
57
|
+
optional_params :name, :options
|
58
|
+
end
|
59
|
+
request(:put, "productFields/#{id}", params)
|
60
|
+
end
|
61
|
+
|
62
|
+
# [DELETE] Delete multiple product fields in bulk
|
63
|
+
#
|
64
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/ProductFields/delete_productFields
|
65
|
+
# @return [Paperdrive::Response]
|
66
|
+
def delete_product_fields(**args)
|
67
|
+
params = parameters(args) do
|
68
|
+
required_params :ids
|
69
|
+
optional_params :ids
|
70
|
+
end
|
71
|
+
request(:delete, 'productFields', params)
|
72
|
+
end
|
73
|
+
|
74
|
+
# [DELETE] Delete a product field
|
75
|
+
#
|
76
|
+
# @param [integer] id:
|
77
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/ProductFields/delete_productFields_id
|
78
|
+
# @return [Paperdrive::Response]
|
79
|
+
def delete_product_field(id:, **args)
|
80
|
+
params = parameters(args) do
|
81
|
+
optional_params
|
82
|
+
end
|
83
|
+
request(:delete, "productFields/#{id}", params)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,160 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'paperdrive/parameters'
|
4
|
+
|
5
|
+
module Paperdrive
|
6
|
+
class Client
|
7
|
+
# Instance methods related to Products to embed into Paperdrive::Client<br>
|
8
|
+
# arguments are compatible with the Pipedribe API.
|
9
|
+
#
|
10
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products
|
11
|
+
module Products
|
12
|
+
include Paperdrive::Parameters
|
13
|
+
|
14
|
+
# [GET] Get all products
|
15
|
+
#
|
16
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/get_products
|
17
|
+
# @return [Paperdrive::Response]
|
18
|
+
def all_products(**args)
|
19
|
+
params = parameters(args) do
|
20
|
+
optional_params :user_id, :filter_id, :first_char, :start, :limit
|
21
|
+
end
|
22
|
+
request(:get, 'products', params)
|
23
|
+
end
|
24
|
+
|
25
|
+
# [GET] Find products by name
|
26
|
+
#
|
27
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/get_products_find
|
28
|
+
# @return [Paperdrive::Response]
|
29
|
+
def find_products_by_name(**args)
|
30
|
+
params = parameters(args) do
|
31
|
+
required_params :term
|
32
|
+
optional_params :term, :currency, :start, :limit
|
33
|
+
end
|
34
|
+
request(:get, 'products/find', params)
|
35
|
+
end
|
36
|
+
|
37
|
+
# [GET] Get one product
|
38
|
+
#
|
39
|
+
# @param [integer] id:
|
40
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/get_products_id
|
41
|
+
# @return [Paperdrive::Response]
|
42
|
+
def product(id:, **args)
|
43
|
+
params = parameters(args) do
|
44
|
+
optional_params
|
45
|
+
end
|
46
|
+
request(:get, "products/#{id}", params)
|
47
|
+
end
|
48
|
+
|
49
|
+
# [GET] Get deals where a product is attached to
|
50
|
+
#
|
51
|
+
# @param [integer] id:
|
52
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/get_products_id_deals
|
53
|
+
# @return [Paperdrive::Response]
|
54
|
+
def product_deals(id:, **args)
|
55
|
+
params = parameters(args) do
|
56
|
+
optional_params :start, :limit, :status
|
57
|
+
end
|
58
|
+
request(:get, "products/#{id}/deals", params)
|
59
|
+
end
|
60
|
+
|
61
|
+
# [GET] List files attached to a product
|
62
|
+
#
|
63
|
+
# @param [integer] id:
|
64
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/get_products_id_files
|
65
|
+
# @return [Paperdrive::Response]
|
66
|
+
def product_files(id:, **args)
|
67
|
+
params = parameters(args) do
|
68
|
+
optional_params :start, :limit, :include_deleted_files, :sort
|
69
|
+
end
|
70
|
+
request(:get, "products/#{id}/files", params)
|
71
|
+
end
|
72
|
+
|
73
|
+
# [GET] List followers of a product
|
74
|
+
#
|
75
|
+
# @param [integer] id:
|
76
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/get_products_id_followers
|
77
|
+
# @return [Paperdrive::Response]
|
78
|
+
def product_followers(id:, **args)
|
79
|
+
params = parameters(args) do
|
80
|
+
optional_params
|
81
|
+
end
|
82
|
+
request(:get, "products/#{id}/followers", params)
|
83
|
+
end
|
84
|
+
|
85
|
+
# [GET] List permitted users
|
86
|
+
#
|
87
|
+
# @param [integer] id:
|
88
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/get_products_id_permittedUsers
|
89
|
+
# @return [Paperdrive::Response]
|
90
|
+
def product_permitted_users(id:, **args)
|
91
|
+
params = parameters(args) do
|
92
|
+
optional_params :access_level
|
93
|
+
end
|
94
|
+
request(:get, "products/#{id}/permittedUsers", params)
|
95
|
+
end
|
96
|
+
|
97
|
+
# [POST] Add a product
|
98
|
+
#
|
99
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/post_products
|
100
|
+
# @return [Paperdrive::Response]
|
101
|
+
def create_product(**args)
|
102
|
+
params = parameters(args) do
|
103
|
+
required_params :name
|
104
|
+
optional_params :name, :code, :unit, :tax, :active_flag, :visible_to, :owner_id, :prices
|
105
|
+
end
|
106
|
+
request(:post, 'products', params)
|
107
|
+
end
|
108
|
+
|
109
|
+
# [POST] Add a follower to a product
|
110
|
+
#
|
111
|
+
# @param [integer] id:
|
112
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/post_products_id_followers
|
113
|
+
# @return [Paperdrive::Response]
|
114
|
+
def create_product_follower(id:, **args)
|
115
|
+
params = parameters(args) do
|
116
|
+
required_params :user_id
|
117
|
+
optional_params :user_id
|
118
|
+
end
|
119
|
+
request(:post, "products/#{id}/followers", params)
|
120
|
+
end
|
121
|
+
|
122
|
+
# [PUT] Update a product
|
123
|
+
#
|
124
|
+
# @param [integer] id:
|
125
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/put_products_id
|
126
|
+
# @return [Paperdrive::Response]
|
127
|
+
def update_product(id:, **args)
|
128
|
+
params = parameters(args) do
|
129
|
+
optional_params :name, :code, :unit, :tax, :active_flag, :visible_to, :owner_id, :prices
|
130
|
+
end
|
131
|
+
request(:put, "products/#{id}", params)
|
132
|
+
end
|
133
|
+
|
134
|
+
# [DELETE] Delete a product
|
135
|
+
#
|
136
|
+
# @param [integer] id:
|
137
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/delete_products_id
|
138
|
+
# @return [Paperdrive::Response]
|
139
|
+
def delete_product(id:, **args)
|
140
|
+
params = parameters(args) do
|
141
|
+
optional_params
|
142
|
+
end
|
143
|
+
request(:delete, "products/#{id}", params)
|
144
|
+
end
|
145
|
+
|
146
|
+
# [DELETE] Delete a follower from a product
|
147
|
+
#
|
148
|
+
# @param [integer] id:
|
149
|
+
# @param [integer] follower_id:
|
150
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Products/delete_products_id_followers_follower_id
|
151
|
+
# @return [Paperdrive::Response]
|
152
|
+
def delete_product_follower(id:, follower_id:, **args)
|
153
|
+
params = parameters(args) do
|
154
|
+
optional_params
|
155
|
+
end
|
156
|
+
request(:delete, "products/#{id}/followers/#{follower_id}", params)
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'paperdrive/parameters'
|
4
|
+
|
5
|
+
module Paperdrive
|
6
|
+
class Client
|
7
|
+
# Instance methods related to Recents to embed into Paperdrive::Client<br>
|
8
|
+
# arguments are compatible with the Pipedribe API.
|
9
|
+
#
|
10
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Recents
|
11
|
+
module Recents
|
12
|
+
include Paperdrive::Parameters
|
13
|
+
|
14
|
+
# [GET] Get recents
|
15
|
+
#
|
16
|
+
# @see https://developers.pipedrive.com/docs/api/v1/#!/Recents/get_recents
|
17
|
+
# @return [Paperdrive::Response]
|
18
|
+
def recents(**args)
|
19
|
+
params = parameters(args) do
|
20
|
+
required_params :since_timestamp
|
21
|
+
optional_params :since_timestamp, :items, :start, :limit
|
22
|
+
end
|
23
|
+
request(:get, 'recents', params)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|