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.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +18 -0
  5. data/.travis.yml +9 -0
  6. data/CHANGELOG.md +29 -0
  7. data/Gemfile +8 -0
  8. data/Gemfile.lock +75 -0
  9. data/README.md +120 -0
  10. data/Rakefile +8 -0
  11. data/bin/console +15 -0
  12. data/bin/setup +8 -0
  13. data/lib/paperdrive/client/activities.rb +92 -0
  14. data/lib/paperdrive/client/activity_fields.rb +36 -0
  15. data/lib/paperdrive/client/activity_types.rb +77 -0
  16. data/lib/paperdrive/client/currencies.rb +26 -0
  17. data/lib/paperdrive/client/deal_fields.rb +87 -0
  18. data/lib/paperdrive/client/deals.rb +335 -0
  19. data/lib/paperdrive/client/filters.rb +87 -0
  20. data/lib/paperdrive/client/global_messages.rb +38 -0
  21. data/lib/paperdrive/client/mail_messages.rb +26 -0
  22. data/lib/paperdrive/client/mail_threads.rb +75 -0
  23. data/lib/paperdrive/client/note_fields.rb +25 -0
  24. data/lib/paperdrive/client/notes.rb +74 -0
  25. data/lib/paperdrive/client/organization_fields.rb +87 -0
  26. data/lib/paperdrive/client/organization_relationships.rb +75 -0
  27. data/lib/paperdrive/client/organizations.rb +233 -0
  28. data/lib/paperdrive/client/permission_sets.rb +89 -0
  29. data/lib/paperdrive/client/person_fields.rb +87 -0
  30. data/lib/paperdrive/client/persons.rb +258 -0
  31. data/lib/paperdrive/client/pipelines.rb +111 -0
  32. data/lib/paperdrive/client/product_fields.rb +87 -0
  33. data/lib/paperdrive/client/products.rb +160 -0
  34. data/lib/paperdrive/client/recents.rb +27 -0
  35. data/lib/paperdrive/client/roles.rb +149 -0
  36. data/lib/paperdrive/client/search_results.rb +39 -0
  37. data/lib/paperdrive/client/stages.rb +98 -0
  38. data/lib/paperdrive/client/user_connections.rb +26 -0
  39. data/lib/paperdrive/client/user_settings.rb +26 -0
  40. data/lib/paperdrive/client/users.rb +235 -0
  41. data/lib/paperdrive/client/webhooks.rb +50 -0
  42. data/lib/paperdrive/client.rb +122 -0
  43. data/lib/paperdrive/error.rb +42 -0
  44. data/lib/paperdrive/parameters.rb +34 -0
  45. data/lib/paperdrive/response.rb +42 -0
  46. data/lib/paperdrive/version.rb +6 -0
  47. data/lib/paperdrive.rb +7 -0
  48. data/paperdrive.gemspec +33 -0
  49. metadata +203 -0
@@ -0,0 +1,149 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'paperdrive/parameters'
4
+
5
+ module Paperdrive
6
+ class Client
7
+ # Instance methods related to Roles to embed into Paperdrive::Client<br>
8
+ # arguments are compatible with the Pipedribe API.
9
+ #
10
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles
11
+ module Roles
12
+ include Paperdrive::Parameters
13
+
14
+ # [GET] Get all roles
15
+ #
16
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/get_roles
17
+ # @return [Paperdrive::Response]
18
+ def all_roles(**args)
19
+ params = parameters(args) do
20
+ optional_params :start, :limit
21
+ end
22
+ request(:get, 'roles', params)
23
+ end
24
+
25
+ # [GET] Get one role
26
+ #
27
+ # @param [integer] id:
28
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/get_roles_id
29
+ # @return [Paperdrive::Response]
30
+ def role(id:, **args)
31
+ params = parameters(args) do
32
+ optional_params
33
+ end
34
+ request(:get, "roles/#{id}", params)
35
+ end
36
+
37
+ # [GET] List role assignments
38
+ #
39
+ # @param [integer] id:
40
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/get_roles_id_assignments
41
+ # @return [Paperdrive::Response]
42
+ def role_assignments(id:, **args)
43
+ params = parameters(args) do
44
+ optional_params :start, :limit
45
+ end
46
+ request(:get, "roles/#{id}/assignments", params)
47
+ end
48
+
49
+ # [GET] List role sub-roles
50
+ #
51
+ # @param [integer] id:
52
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/get_roles_id_roles
53
+ # @return [Paperdrive::Response]
54
+ def role_sub_roles(id:, **args)
55
+ params = parameters(args) do
56
+ optional_params :start, :limit
57
+ end
58
+ request(:get, "roles/#{id}/roles", params)
59
+ end
60
+
61
+ # [GET] List role settings
62
+ #
63
+ # @param [integer] id:
64
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/get_roles_id_settings
65
+ # @return [Paperdrive::Response]
66
+ def role_settings(id:, **args)
67
+ params = parameters(args) do
68
+ optional_params
69
+ end
70
+ request(:get, "roles/#{id}/settings", params)
71
+ end
72
+
73
+ # [POST] Add a role
74
+ #
75
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/post_roles
76
+ # @return [Paperdrive::Response]
77
+ def create_role(**args)
78
+ params = parameters(args) do
79
+ required_params :name
80
+ optional_params :parent_role_id, :name
81
+ end
82
+ request(:post, 'roles', params)
83
+ end
84
+
85
+ # [POST] Add role assignment
86
+ #
87
+ # @param [integer] id:
88
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/post_roles_id_assignments
89
+ # @return [Paperdrive::Response]
90
+ def create_role_assignment(id:, **args)
91
+ params = parameters(args) do
92
+ required_params :user_id
93
+ optional_params :user_id
94
+ end
95
+ request(:post, "roles/#{id}/assignments", params)
96
+ end
97
+
98
+ # [POST] Add or update role setting
99
+ #
100
+ # @param [integer] id:
101
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/post_roles_id_settings
102
+ # @return [Paperdrive::Response]
103
+ def create_or_update_role_setting(id:, **args)
104
+ params = parameters(args) do
105
+ required_params :setting_key, :value
106
+ optional_params :setting_key, :value
107
+ end
108
+ request(:post, "roles/#{id}/settings", params)
109
+ end
110
+
111
+ # [PUT] Update role details
112
+ #
113
+ # @param [integer] id:
114
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/put_roles_id
115
+ # @return [Paperdrive::Response]
116
+ def update_role_details(id:, **args)
117
+ params = parameters(args) do
118
+ optional_params :parent_role_id, :name
119
+ end
120
+ request(:put, "roles/#{id}", params)
121
+ end
122
+
123
+ # [DELETE] Delete a role
124
+ #
125
+ # @param [integer] id:
126
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/delete_roles_id
127
+ # @return [Paperdrive::Response]
128
+ def delete_role(id:, **args)
129
+ params = parameters(args) do
130
+ optional_params
131
+ end
132
+ request(:delete, "roles/#{id}", params)
133
+ end
134
+
135
+ # [DELETE] Delete a role assignment
136
+ #
137
+ # @param [integer] id:
138
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Roles/delete_roles_id_assignments
139
+ # @return [Paperdrive::Response]
140
+ def delete_role_assignment(id:, **args)
141
+ params = parameters(args) do
142
+ required_params :user_id
143
+ optional_params :user_id
144
+ end
145
+ request(:delete, "roles/#{id}/assignments", params)
146
+ end
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'paperdrive/parameters'
4
+
5
+ module Paperdrive
6
+ class Client
7
+ # Instance methods related to SearchResults to embed into Paperdrive::Client<br>
8
+ # arguments are compatible with the Pipedribe API.
9
+ #
10
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/SearchResults
11
+ module SearchResults
12
+ include Paperdrive::Parameters
13
+
14
+ # [GET] Perform a search
15
+ #
16
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/SearchResults/get_searchResults
17
+ # @return [Paperdrive::Response]
18
+ def search(**args)
19
+ params = parameters(args) do
20
+ required_params :term
21
+ optional_params :term, :item_type, :start, :limit, :exact_match
22
+ end
23
+ request(:get, 'searchResults', params)
24
+ end
25
+
26
+ # [GET] Perform a search using a specific field value
27
+ #
28
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/SearchResults/get_searchResults_field
29
+ # @return [Paperdrive::Response]
30
+ def specific_search(**args)
31
+ params = parameters(args) do
32
+ required_params :term, :field_type, :field_key
33
+ optional_params :term, :exact_match, :field_type, :field_key, :return_field_key, :return_item_ids, :start, :limit
34
+ end
35
+ request(:get, 'searchResults/field', params)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'paperdrive/parameters'
4
+
5
+ module Paperdrive
6
+ class Client
7
+ # Instance methods related to Stages to embed into Paperdrive::Client<br>
8
+ # arguments are compatible with the Pipedribe API.
9
+ #
10
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Stages
11
+ module Stages
12
+ include Paperdrive::Parameters
13
+
14
+ # [GET] Get all stages
15
+ #
16
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Stages/get_stages
17
+ # @return [Paperdrive::Response]
18
+ def all_stages(**args)
19
+ params = parameters(args) do
20
+ optional_params :pipeline_id
21
+ end
22
+ request(:get, 'stages', params)
23
+ end
24
+
25
+ # [GET] Get one stage
26
+ #
27
+ # @param [integer] id:
28
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Stages/get_stages_id
29
+ # @return [Paperdrive::Response]
30
+ def stage(id:, **args)
31
+ params = parameters(args) do
32
+ optional_params
33
+ end
34
+ request(:get, "stages/#{id}", params)
35
+ end
36
+
37
+ # [GET] Get deals in a stage
38
+ #
39
+ # @param [integer] id:
40
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Stages/get_stages_id_deals
41
+ # @return [Paperdrive::Response]
42
+ def stage_deals(id:, **args)
43
+ params = parameters(args) do
44
+ optional_params :filter_id, :user_id, :everyone, :start, :limit
45
+ end
46
+ request(:get, "stages/#{id}/deals", params)
47
+ end
48
+
49
+ # [POST] Add a new stage
50
+ #
51
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Stages/post_stages
52
+ # @return [Paperdrive::Response]
53
+ def create_stage(**args)
54
+ params = parameters(args) do
55
+ required_params :name, :pipeline_id
56
+ optional_params :name, :pipeline_id, :deal_probability, :rotten_flag, :rotten_days
57
+ end
58
+ request(:post, 'stages', params)
59
+ end
60
+
61
+ # [PUT] Update stage details
62
+ #
63
+ # @param [integer] id:
64
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Stages/put_stages_id
65
+ # @return [Paperdrive::Response]
66
+ def update_stage(id:, **args)
67
+ params = parameters(args) do
68
+ optional_params :name, :pipeline_id, :order_nr, :deal_probability, :rotten_flag, :rotten_days
69
+ end
70
+ request(:put, "stages/#{id}", params)
71
+ end
72
+
73
+ # [DELETE] Delete multiple stages in bulk
74
+ #
75
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Stages/delete_stages
76
+ # @return [Paperdrive::Response]
77
+ def delete_stages(**args)
78
+ params = parameters(args) do
79
+ required_params :ids
80
+ optional_params :ids
81
+ end
82
+ request(:delete, 'stages', params)
83
+ end
84
+
85
+ # [DELETE] Delete a stage
86
+ #
87
+ # @param [integer] id:
88
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Stages/delete_stages_id
89
+ # @return [Paperdrive::Response]
90
+ def delete_stage(id:, **args)
91
+ params = parameters(args) do
92
+ optional_params
93
+ end
94
+ request(:delete, "stages/#{id}", params)
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'paperdrive/parameters'
4
+
5
+ module Paperdrive
6
+ class Client
7
+ # Instance methods related to UserConnections to embed into Paperdrive::Client<br>
8
+ # arguments are compatible with the Pipedribe API.
9
+ #
10
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/UserConnections
11
+ module UserConnections
12
+ include Paperdrive::Parameters
13
+
14
+ # [GET] Get all user connections
15
+ #
16
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/UserConnections/get_userConnections
17
+ # @return [Paperdrive::Response]
18
+ def all_user_connections(**args)
19
+ params = parameters(args) do
20
+ optional_params
21
+ end
22
+ request(:get, 'userConnections', params)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'paperdrive/parameters'
4
+
5
+ module Paperdrive
6
+ class Client
7
+ # Instance methods related to UserSettings to embed into Paperdrive::Client<br>
8
+ # arguments are compatible with the Pipedribe API.
9
+ #
10
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/UserSettings
11
+ module UserSettings
12
+ include Paperdrive::Parameters
13
+
14
+ # [GET] List settings of authorized user
15
+ #
16
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/UserSettings/get_userSettings
17
+ # @return [Paperdrive::Response]
18
+ def current_user_settings(**args)
19
+ params = parameters(args) do
20
+ optional_params
21
+ end
22
+ request(:get, 'userSettings', params)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,235 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'paperdrive/parameters'
4
+
5
+ module Paperdrive
6
+ class Client
7
+ # Instance methods related to Users to embed into Paperdrive::Client<br>
8
+ # arguments are compatible with the Pipedribe API.
9
+ #
10
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users
11
+ module Users
12
+ include Paperdrive::Parameters
13
+
14
+ # [GET] Get all users
15
+ #
16
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users
17
+ # @return [Paperdrive::Response]
18
+ def all_users(**args)
19
+ params = parameters(args) do
20
+ optional_params
21
+ end
22
+ request(:get, 'users', params)
23
+ end
24
+
25
+ # [GET] Find users by name
26
+ #
27
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_find
28
+ # @return [Paperdrive::Response]
29
+ def find_users_by_name(**args)
30
+ params = parameters(args) do
31
+ required_params :term
32
+ optional_params :term, :search_by_email
33
+ end
34
+ request(:get, 'users/find', params)
35
+ end
36
+
37
+ # [GET] Get current user data
38
+ #
39
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_me
40
+ # @return [Paperdrive::Response]
41
+ def current_user(**args)
42
+ params = parameters(args) do
43
+ optional_params
44
+ end
45
+ request(:get, 'users/me', params)
46
+ end
47
+
48
+ # [GET] Get one user
49
+ #
50
+ # @param [integer] id:
51
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_id
52
+ # @return [Paperdrive::Response]
53
+ def user(id:, **args)
54
+ params = parameters(args) do
55
+ optional_params
56
+ end
57
+ request(:get, "users/#{id}", params)
58
+ end
59
+
60
+ # [GET] List and filter activities assigned to a specific user
61
+ #
62
+ # @param [integer] id:
63
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_id_activities
64
+ # @return [Paperdrive::Response]
65
+ def user_activities(id:, **args)
66
+ params = parameters(args) do
67
+ optional_params :due_date, :type, :start, :limit, :done
68
+ end
69
+ request(:get, "users/#{id}/activities", params)
70
+ end
71
+
72
+ # [GET] List blacklisted email addresses of a user
73
+ #
74
+ # @param [integer] id:
75
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_id_blacklistedEmails
76
+ # @return [Paperdrive::Response]
77
+ def user_blacklisted_emails(id:, **args)
78
+ params = parameters(args) do
79
+ optional_params
80
+ end
81
+ request(:get, "users/#{id}/blacklistedEmails", params)
82
+ end
83
+
84
+ # [GET] List followers of a user
85
+ #
86
+ # @param [integer] id:
87
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_id_followers
88
+ # @return [Paperdrive::Response]
89
+ def user_followers(id:, **args)
90
+ params = parameters(args) do
91
+ optional_params
92
+ end
93
+ request(:get, "users/#{id}/followers", params)
94
+ end
95
+
96
+ # [GET] List permission set assignments
97
+ #
98
+ # @param [integer] id:
99
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_id_permissionSetAssignments
100
+ # @return [Paperdrive::Response]
101
+ def user_permission_set_assignments(id:, **args)
102
+ params = parameters(args) do
103
+ optional_params :start, :limit
104
+ end
105
+ request(:get, "users/#{id}/permissionSetAssignments", params)
106
+ end
107
+
108
+ # [GET] List user permissions
109
+ #
110
+ # @param [integer] id:
111
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_id_permissions
112
+ # @return [Paperdrive::Response]
113
+ def user_permissions(id:, **args)
114
+ params = parameters(args) do
115
+ optional_params
116
+ end
117
+ request(:get, "users/#{id}/permissions", params)
118
+ end
119
+
120
+ # [GET] List role assignments
121
+ #
122
+ # @param [integer] id:
123
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_id_roleAssignments
124
+ # @return [Paperdrive::Response]
125
+ def user_role_assignments(id:, **args)
126
+ params = parameters(args) do
127
+ optional_params :start, :limit
128
+ end
129
+ request(:get, "users/#{id}/roleAssignments", params)
130
+ end
131
+
132
+ # [GET] List user role settings
133
+ #
134
+ # @param [integer] id:
135
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/get_users_id_roleSettings
136
+ # @return [Paperdrive::Response]
137
+ def user_role_settings(id:, **args)
138
+ params = parameters(args) do
139
+ optional_params
140
+ end
141
+ request(:get, "users/#{id}/roleSettings", params)
142
+ end
143
+
144
+ # [POST] Add a new user
145
+ #
146
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/post_users
147
+ # @return [Paperdrive::Response]
148
+ def create_user(**args)
149
+ params = parameters(args) do
150
+ required_params :name, :email, :active_flag
151
+ optional_params :name, :email, :active_flag
152
+ end
153
+ request(:post, 'users', params)
154
+ end
155
+
156
+ # [POST] Add blacklisted email address for a user
157
+ #
158
+ # @param [integer] id:
159
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/post_users_id_blacklistedEmails
160
+ # @return [Paperdrive::Response]
161
+ def create_user_blacklisted_email(id:, **args)
162
+ params = parameters(args) do
163
+ required_params :address
164
+ optional_params :address
165
+ end
166
+ request(:post, "users/#{id}/blacklistedEmails", params)
167
+ end
168
+
169
+ # [POST] Add permission set assignment
170
+ #
171
+ # @param [integer] id:
172
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/post_users_id_permissionSetAssignments
173
+ # @return [Paperdrive::Response]
174
+ def create_user_permission_set_assignment(id:, **args)
175
+ params = parameters(args) do
176
+ required_params :permission_set_id
177
+ optional_params :permission_set_id
178
+ end
179
+ request(:post, "users/#{id}/permissionSetAssignments", params)
180
+ end
181
+
182
+ # [POST] Add role assignment
183
+ #
184
+ # @param [integer] id:
185
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/post_users_id_roleAssignments
186
+ # @return [Paperdrive::Response]
187
+ def create_user_role_assignment(id:, **args)
188
+ params = parameters(args) do
189
+ required_params :role_id
190
+ optional_params :role_id
191
+ end
192
+ request(:post, "users/#{id}/roleAssignments", params)
193
+ end
194
+
195
+ # [PUT] Update user details
196
+ #
197
+ # @param [integer] id:
198
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/put_users_id
199
+ # @return [Paperdrive::Response]
200
+ def update_user(id:, **args)
201
+ params = parameters(args) do
202
+ required_params :active_flag
203
+ optional_params :active_flag
204
+ end
205
+ request(:put, "users/#{id}", params)
206
+ end
207
+
208
+ # [DELETE] Delete a permission set assignment
209
+ #
210
+ # @param [integer] id:
211
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/delete_users_id_permissionSetAssignments
212
+ # @return [Paperdrive::Response]
213
+ def delete_user_permission_set_assignment(id:, **args)
214
+ params = parameters(args) do
215
+ required_params :permission_set_id
216
+ optional_params :permission_set_id
217
+ end
218
+ request(:delete, "users/#{id}/permissionSetAssignments", params)
219
+ end
220
+
221
+ # [DELETE] Delete a role assignment
222
+ #
223
+ # @param [integer] id:
224
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Users/delete_users_id_roleAssignments
225
+ # @return [Paperdrive::Response]
226
+ def delete_user_role_assignment(id:, **args)
227
+ params = parameters(args) do
228
+ required_params :role_id
229
+ optional_params :role_id
230
+ end
231
+ request(:delete, "users/#{id}/roleAssignments", params)
232
+ end
233
+ end
234
+ end
235
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'paperdrive/parameters'
4
+
5
+ module Paperdrive
6
+ class Client
7
+ # Instance methods related to Webhooks to embed into Paperdrive::Client<br>
8
+ # arguments are compatible with the Pipedribe API.
9
+ #
10
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Webhooks
11
+ module Webhooks
12
+ include Paperdrive::Parameters
13
+
14
+ # [GET] Get all webhooks
15
+ #
16
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Webhooks/get_webhooks
17
+ # @return [Paperdrive::Response]
18
+ def all_webhooks(**args)
19
+ params = parameters(args) do
20
+ optional_params
21
+ end
22
+ request(:get, 'webhooks', params)
23
+ end
24
+
25
+ # [POST] Create a new webhook
26
+ #
27
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Webhooks/post_webhooks
28
+ # @return [Paperdrive::Response]
29
+ def create_webhook(**args)
30
+ params = parameters(args) do
31
+ required_params :subscription_url, :event_action, :event_object
32
+ optional_params :subscription_url, :event_action, :event_object, :user_id, :http_auth_user, :http_auth_password
33
+ end
34
+ request(:post, 'webhooks', params)
35
+ end
36
+
37
+ # [DELETE] Delete existing webhook
38
+ #
39
+ # @param [integer] id:
40
+ # @see https://developers.pipedrive.com/docs/api/v1/#!/Webhooks/delete_webhooks_id
41
+ # @return [Paperdrive::Response]
42
+ def delete_webhook(id:, **args)
43
+ params = parameters(args) do
44
+ optional_params
45
+ end
46
+ request(:delete, "webhooks/#{id}", params)
47
+ end
48
+ end
49
+ end
50
+ end