paypal-rest-api 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +320 -44
  3. data/VERSION +1 -1
  4. data/lib/paypal-api/access_token.rb +16 -2
  5. data/lib/paypal-api/api_collection.rb +29 -0
  6. data/lib/paypal-api/api_collections/authorized_payments.rb +4 -4
  7. data/lib/paypal-api/api_collections/captured_payments.rb +2 -2
  8. data/lib/paypal-api/api_collections/catalog_products.rb +2 -2
  9. data/lib/paypal-api/api_collections/disputes.rb +188 -0
  10. data/lib/paypal-api/api_collections/invoice_templates.rb +82 -0
  11. data/lib/paypal-api/api_collections/invoices.rb +196 -0
  12. data/lib/paypal-api/api_collections/orders.rb +7 -7
  13. data/lib/paypal-api/api_collections/payout_items.rb +47 -0
  14. data/lib/paypal-api/api_collections/payouts.rb +47 -0
  15. data/lib/paypal-api/api_collections/referenced_payout_items.rb +47 -0
  16. data/lib/paypal-api/api_collections/referenced_payouts.rb +47 -0
  17. data/lib/paypal-api/api_collections/refunds.rb +1 -1
  18. data/lib/paypal-api/api_collections/shipment_tracking.rb +2 -2
  19. data/lib/paypal-api/api_collections/subscription_plans.rb +106 -0
  20. data/lib/paypal-api/api_collections/subscriptions.rb +16 -98
  21. data/lib/paypal-api/api_collections/user_info.rb +47 -0
  22. data/lib/paypal-api/api_collections/users.rb +96 -0
  23. data/lib/paypal-api/api_collections/webhook_events.rb +78 -0
  24. data/lib/paypal-api/api_collections/webhook_lookups.rb +68 -0
  25. data/lib/paypal-api/api_collections/webhooks.rb +5 -108
  26. data/lib/paypal-api/client.rb +129 -5
  27. data/lib/paypal-api/config.rb +6 -2
  28. data/lib/paypal-api/request.rb +53 -21
  29. data/lib/paypal-api/request_executor.rb +81 -66
  30. data/lib/paypal-api/response.rb +42 -5
  31. data/lib/paypal-api/webhook_verifier/certs_cache.rb +75 -0
  32. data/lib/paypal-api/webhook_verifier.rb +104 -0
  33. data/lib/paypal-api.rb +120 -12
  34. metadata +17 -3
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PaypalAPI
4
+ #
5
+ # The Referenced Payouts API enables partner merchants and developers to process individual referenced payouts to recipients.
6
+ #
7
+ # @see https://developer.paypal.com/docs/api/referenced-payouts/v1/
8
+ #
9
+ class ReferencedPayouts < APICollection
10
+ #
11
+ # Common class and instance methods
12
+ #
13
+ module APIs
14
+ # @!macro [new] request
15
+ # @param query [Hash, nil] Request query parameters
16
+ # @param body [Hash, nil] Request body parameters
17
+ # @param headers [Hash, nil] Request headers
18
+ # @return [Response] Response object
19
+
20
+ #
21
+ # Create referenced batch payout
22
+ #
23
+ # @see https://developer.paypal.com/docs/api/referenced-payouts/v1/#referenced-payouts_create_batch
24
+ #
25
+ # @macro request
26
+ #
27
+ def create(query: nil, body: nil, headers: nil)
28
+ client.post("/v1/payments/referenced-payouts", query: query, body: body, headers: headers)
29
+ end
30
+
31
+ #
32
+ # List items in referenced batch payout
33
+ #
34
+ # @see https://developer.paypal.com/docs/api/payments.payouts-batch/v1/#payouts_get
35
+ #
36
+ # @param payout_batch_id [String] The ID of the reference batch payout for which to list items.
37
+ # @macro request
38
+ #
39
+ def show(payout_batch_id, query: nil, body: nil, headers: nil)
40
+ client.get("/v1/payments/referenced-payouts/#{encode(payout_batch_id)}", query: query, body: body, headers: headers)
41
+ end
42
+ end
43
+
44
+ include APIs
45
+ extend APIs
46
+ end
47
+ end
@@ -20,7 +20,7 @@ module PaypalAPI
20
20
  # @macro request
21
21
  #
22
22
  def show(refund_id, query: nil, body: nil, headers: nil)
23
- client.get("/v2/payments/refunds/#{refund_id}", query: query, body: body, headers: headers)
23
+ client.get("/v2/payments/refunds/#{encode(refund_id)}", query: query, body: body, headers: headers)
24
24
  end
25
25
  end
26
26
 
@@ -37,7 +37,7 @@ module PaypalAPI
37
37
  # @macro request
38
38
  #
39
39
  def update(id, query: nil, body: nil, headers: nil)
40
- client.put("/v1/shipping/trackers/#{id}", query: query, body: body, headers: headers)
40
+ client.put("/v1/shipping/trackers/#{encode(id)}", query: query, body: body, headers: headers)
41
41
  end
42
42
 
43
43
  #
@@ -49,7 +49,7 @@ module PaypalAPI
49
49
  # @macro request
50
50
  #
51
51
  def show(id, query: nil, body: nil, headers: nil)
52
- client.get("/v1/shipping/trackers/#{id}", query: query, body: body, headers: headers)
52
+ client.get("/v1/shipping/trackers/#{encode(id)}", query: query, body: body, headers: headers)
53
53
  end
54
54
  end
55
55
 
@@ -0,0 +1,106 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PaypalAPI
4
+ #
5
+ # Manages subscriptions for recurring PayPal payments
6
+ #
7
+ # @see https://developer.paypal.com/docs/api/subscriptions/v1/
8
+ #
9
+ class SubscriptionPlans < APICollection
10
+ #
11
+ # Common class and instance methods
12
+ #
13
+ module APIs
14
+ # @!macro [new] request
15
+ # @param query [Hash, nil] Request query parameters
16
+ # @param body [Hash, nil] Request body parameters
17
+ # @param headers [Hash, nil] Request headers
18
+ # @return [Response] Response object
19
+
20
+ #
21
+ # Creates a plan that defines pricing and billing cycle details for subscriptions.
22
+ #
23
+ # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_create
24
+ #
25
+ # @macro request
26
+ #
27
+ def create(query: nil, body: nil, headers: nil)
28
+ client.post("/v1/billing/plans", query: query, body: body, headers: headers)
29
+ end
30
+
31
+ #
32
+ # List plans
33
+ #
34
+ # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_list
35
+ #
36
+ # @macro request
37
+ #
38
+ def list(query: nil, body: nil, headers: nil)
39
+ client.get("/v1/billing/plans", query: query, body: body, headers: headers)
40
+ end
41
+
42
+ #
43
+ # Show plan details
44
+ #
45
+ # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_get
46
+ #
47
+ # @param plan_id [String] Plan ID
48
+ # @macro request
49
+ #
50
+ def show(plan_id, query: nil, body: nil, headers: nil)
51
+ client.get("/v1/billing/plans/#{encode(plan_id)}", query: query, body: body, headers: headers)
52
+ end
53
+
54
+ #
55
+ # Update plan
56
+ #
57
+ # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_patch
58
+ #
59
+ # @param plan_id [String] Plan ID
60
+ # @macro request
61
+ #
62
+ def update(plan_id, query: nil, body: nil, headers: nil)
63
+ client.patch("/v1/billing/plans/#{encode(plan_id)}", query: query, body: body, headers: headers)
64
+ end
65
+
66
+ #
67
+ # Activate plan
68
+ #
69
+ # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_activate
70
+ #
71
+ # @param plan_id [String] Plan ID
72
+ # @macro request
73
+ #
74
+ def activate(plan_id, query: nil, body: nil, headers: nil)
75
+ client.post("/v1/billing/plans/#{encode(plan_id)}/activate", query: query, body: body, headers: headers)
76
+ end
77
+
78
+ #
79
+ # Deactivate plan
80
+ #
81
+ # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_deactivate
82
+ #
83
+ # @param plan_id [String] Plan ID
84
+ # @macro request
85
+ #
86
+ def deactivate(plan_id, query: nil, body: nil, headers: nil)
87
+ client.post("/v1/billing/plans/#{encode(plan_id)}/deactivate", query: query, body: body, headers: headers)
88
+ end
89
+
90
+ #
91
+ # Update pricing
92
+ #
93
+ # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_deactivate
94
+ #
95
+ # @param plan_id [String] Plan ID
96
+ # @macro request
97
+ #
98
+ def update_pricing(plan_id, query: nil, body: nil, headers: nil)
99
+ client.post("/v1/billing/plans/#{encode(plan_id)}/update-pricing-schemes", query: query, body: body, headers: headers)
100
+ end
101
+ end
102
+
103
+ include APIs
104
+ extend APIs
105
+ end
106
+ end
@@ -17,88 +17,6 @@ module PaypalAPI
17
17
  # @param headers [Hash, nil] Request headers
18
18
  # @return [Response] Response object
19
19
 
20
- #
21
- # Creates a plan that defines pricing and billing cycle details for subscriptions.
22
- #
23
- # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_create
24
- #
25
- # @macro request
26
- #
27
- def create_plan(query: nil, body: nil, headers: nil)
28
- client.post("/v1/billing/plans", query: query, body: body, headers: headers)
29
- end
30
-
31
- #
32
- # List plans
33
- #
34
- # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_list
35
- #
36
- # @macro request
37
- #
38
- def list_plans(query: nil, body: nil, headers: nil)
39
- client.get("/v1/billing/plans", query: query, body: body, headers: headers)
40
- end
41
-
42
- #
43
- # Show plan details
44
- #
45
- # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_get
46
- #
47
- # @param plan_id [String] Plan ID
48
- # @macro request
49
- #
50
- def show_plan(plan_id, query: nil, body: nil, headers: nil)
51
- client.get("/v1/billing/plans/#{plan_id}", query: query, body: body, headers: headers)
52
- end
53
-
54
- #
55
- # Update plan
56
- #
57
- # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_patch
58
- #
59
- # @param plan_id [String] Plan ID
60
- # @macro request
61
- #
62
- def update_plan(plan_id, query: nil, body: nil, headers: nil)
63
- client.patch("/v1/billing/plans/#{plan_id}", query: query, body: body, headers: headers)
64
- end
65
-
66
- #
67
- # Activate plan
68
- #
69
- # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_activate
70
- #
71
- # @param plan_id [String] Plan ID
72
- # @macro request
73
- #
74
- def activate_plan(plan_id, query: nil, body: nil, headers: nil)
75
- client.post("/v1/billing/plans/#{plan_id}/activate", query: query, body: body, headers: headers)
76
- end
77
-
78
- #
79
- # Deactivate plan
80
- #
81
- # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_deactivate
82
- #
83
- # @param plan_id [String] Plan ID
84
- # @macro request
85
- #
86
- def deactivate_plan(plan_id, query: nil, body: nil, headers: nil)
87
- client.post("/v1/billing/plans/#{plan_id}/deactivate", query: query, body: body, headers: headers)
88
- end
89
-
90
- #
91
- # Update pricing
92
- #
93
- # @see https://developer.paypal.com/docs/api/subscriptions/v1/#plans_deactivate
94
- #
95
- # @param plan_id [String] Plan ID
96
- # @macro request
97
- #
98
- def update_plan_pricing(plan_id, query: nil, body: nil, headers: nil)
99
- client.post("/v1/billing/plans/#{plan_id}/update-pricing-schemes", query: query, body: body, headers: headers)
100
- end
101
-
102
20
  #
103
21
  # Create subscription
104
22
  #
@@ -106,7 +24,7 @@ module PaypalAPI
106
24
  #
107
25
  # @macro request
108
26
  #
109
- def create_subscription(query: nil, body: nil, headers: nil)
27
+ def create(query: nil, body: nil, headers: nil)
110
28
  client.post("/v1/billing/subscriptions", query: query, body: body, headers: headers)
111
29
  end
112
30
 
@@ -118,8 +36,8 @@ module PaypalAPI
118
36
  # @param subscription_id [String] Subscripton ID
119
37
  # @macro request
120
38
  #
121
- def show_subscription(subscription_id, query: nil, body: nil, headers: nil)
122
- client.get("/v1/billing/subscriptions/#{subscription_id}", query: query, body: body, headers: headers)
39
+ def show(subscription_id, query: nil, body: nil, headers: nil)
40
+ client.get("/v1/billing/subscriptions/#{encode(subscription_id)}", query: query, body: body, headers: headers)
123
41
  end
124
42
 
125
43
  #
@@ -130,8 +48,8 @@ module PaypalAPI
130
48
  # @param subscription_id [String] Subscripton ID
131
49
  # @macro request
132
50
  #
133
- def update_subscription(subscription_id, query: nil, body: nil, headers: nil)
134
- client.patch("/v1/billing/subscriptions/#{subscription_id}", query: query, body: body, headers: headers)
51
+ def update(subscription_id, query: nil, body: nil, headers: nil)
52
+ client.patch("/v1/billing/subscriptions/#{encode(subscription_id)}", query: query, body: body, headers: headers)
135
53
  end
136
54
 
137
55
  #
@@ -142,8 +60,8 @@ module PaypalAPI
142
60
  # @param subscription_id [String] Subscripton ID
143
61
  # @macro request
144
62
  #
145
- def revise_subscription(subscription_id, query: nil, body: nil, headers: nil)
146
- client.post("/v1/billing/subscriptions/#{subscription_id}/revise", query: query, body: body, headers: headers)
63
+ def revise(subscription_id, query: nil, body: nil, headers: nil)
64
+ client.post("/v1/billing/subscriptions/#{encode(subscription_id)}/revise", query: query, body: body, headers: headers)
147
65
  end
148
66
 
149
67
  #
@@ -154,8 +72,8 @@ module PaypalAPI
154
72
  # @param subscription_id [String] Subscripton ID
155
73
  # @macro request
156
74
  #
157
- def suspend_subscription(subscription_id, query: nil, body: nil, headers: nil)
158
- client.post("/v1/billing/subscriptions/#{subscription_id}/suspend", query: query, body: body, headers: headers)
75
+ def suspend(subscription_id, query: nil, body: nil, headers: nil)
76
+ client.post("/v1/billing/subscriptions/#{encode(subscription_id)}/suspend", query: query, body: body, headers: headers)
159
77
  end
160
78
 
161
79
  #
@@ -166,8 +84,8 @@ module PaypalAPI
166
84
  # @param subscription_id [String] Subscripton ID
167
85
  # @macro request
168
86
  #
169
- def cancel_subscription(subscription_id, query: nil, body: nil, headers: nil)
170
- client.post("/v1/billing/subscriptions/#{subscription_id}/cancel", query: query, body: body, headers: headers)
87
+ def cancel(subscription_id, query: nil, body: nil, headers: nil)
88
+ client.post("/v1/billing/subscriptions/#{encode(subscription_id)}/cancel", query: query, body: body, headers: headers)
171
89
  end
172
90
 
173
91
  #
@@ -178,8 +96,8 @@ module PaypalAPI
178
96
  # @param subscription_id [String] Subscripton ID
179
97
  # @macro request
180
98
  #
181
- def activate_subscription(subscription_id, query: nil, body: nil, headers: nil)
182
- client.post("/v1/billing/subscriptions/#{subscription_id}/activate", query: query, body: body, headers: headers)
99
+ def activate(subscription_id, query: nil, body: nil, headers: nil)
100
+ client.post("/v1/billing/subscriptions/#{encode(subscription_id)}/activate", query: query, body: body, headers: headers)
183
101
  end
184
102
 
185
103
  #
@@ -190,8 +108,8 @@ module PaypalAPI
190
108
  # @param subscription_id [String] Subscripton ID
191
109
  # @macro request
192
110
  #
193
- def capture_subscription(subscription_id, query: nil, body: nil, headers: nil)
194
- client.post("/v1/billing/subscriptions/#{subscription_id}/capture", query: query, body: body, headers: headers)
111
+ def capture(subscription_id, query: nil, body: nil, headers: nil)
112
+ client.post("/v1/billing/subscriptions/#{encode(subscription_id)}/capture", query: query, body: body, headers: headers)
195
113
  end
196
114
 
197
115
  #
@@ -203,7 +121,7 @@ module PaypalAPI
203
121
  # @macro request
204
122
  #
205
123
  def transactions(subscription_id, query: nil, body: nil, headers: nil)
206
- client.get("/v1/billing/subscriptions/#{subscription_id}/transactions", query: query, body: body, headers: headers)
124
+ client.get("/v1/billing/subscriptions/#{encode(subscription_id)}/transactions", query: query, body: body, headers: headers)
207
125
  end
208
126
  end
209
127
 
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PaypalAPI
4
+ #
5
+ # Shows OpenID Connect user profile information
6
+ #
7
+ # @see https://developer.paypal.com/docs/api/identity/v1/
8
+ #
9
+ class UserInfo < APICollection
10
+ #
11
+ # Common class and instance methods
12
+ #
13
+ module APIs
14
+ # @!macro [new] request
15
+
16
+ #
17
+ # Show user profile details
18
+ #
19
+ # @see https://developer.paypal.com/docs/api/identity/v1/#userinfo_get
20
+ #
21
+ # @param query [Hash, nil] Request query parameters
22
+ # @param body [Hash, nil] Request body parameters
23
+ # @param headers [Hash, nil] Request headers
24
+ # @return [Response] Response object
25
+ #
26
+ def show(query: nil, body: nil, headers: nil)
27
+ query = add_schema_param(query)
28
+
29
+ client.get("/v1/identity/openidconnect/userinfo", query: query, body: body, headers: headers)
30
+ end
31
+
32
+ private
33
+
34
+ def add_schema_param(query)
35
+ return query if query.is_a?(Hash) && (query.key?(:schema) || query.key?("schema"))
36
+
37
+ defaults = {schema: "openid"}
38
+ return defaults unless query
39
+
40
+ query.merge(defaults)
41
+ end
42
+ end
43
+
44
+ include APIs
45
+ extend APIs
46
+ end
47
+ end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PaypalAPI
4
+ #
5
+ # Managing users APIs
6
+ #
7
+ # https://developer.paypal.com/docs/api/identity/v2/
8
+ #
9
+ class Users < APICollection
10
+ #
11
+ # Common class and instance methods
12
+ #
13
+ module APIs
14
+ # @!macro [new] request
15
+ # @param query [Hash, nil] Request query parameters
16
+ # @param body [Hash, nil] Request body parameters
17
+ # @param headers [Hash, nil] Request headers
18
+ # @return [Response] Response object
19
+
20
+ #
21
+ # Create user
22
+ #
23
+ # @see https://developer.paypal.com/docs/api/identity/v2/#users_create
24
+ #
25
+ # @macro request
26
+ #
27
+ def create(query: nil, body: nil, headers: nil)
28
+ headers = add_scim_content_type(headers)
29
+ client.post("/v2/scim/Users", query: query, body: body, headers: headers)
30
+ end
31
+
32
+ #
33
+ # List users
34
+ #
35
+ # @see https://developer.paypal.com/docs/api/identity/v2/#users_list
36
+ #
37
+ # @macro request
38
+ #
39
+ def list(query: nil, body: nil, headers: nil)
40
+ headers = add_scim_content_type(headers)
41
+ client.get("/v2/scim/Users", query: query, body: body, headers: headers)
42
+ end
43
+
44
+ #
45
+ # Show user details
46
+ #
47
+ # @see https://developer.paypal.com/docs/api/identity/v2/#users_get
48
+ #
49
+ # @param user_id [String] User ID
50
+ # @macro request
51
+ #
52
+ def show(user_id, query: nil, body: nil, headers: nil)
53
+ headers = add_scim_content_type(headers)
54
+ client.get("/v2/scim/Users/#{encode(user_id)}", query: query, body: body, headers: headers)
55
+ end
56
+
57
+ #
58
+ # Update user
59
+ #
60
+ # @see https://developer.paypal.com/docs/api/identity/v2/#users_update
61
+ #
62
+ # @param user_id [String] User ID
63
+ # @macro request
64
+ #
65
+ def update(user_id, query: nil, body: nil, headers: nil)
66
+ headers = add_scim_content_type(headers)
67
+ client.patch("/v2/scim/Users/#{encode(user_id)}", query: query, body: body, headers: headers)
68
+ end
69
+
70
+ #
71
+ # Delete user
72
+ #
73
+ # @see https://developer.paypal.com/docs/api/identity/v2/#users_delete
74
+ #
75
+ # @param user_id [String] User ID
76
+ # @macro request
77
+ #
78
+ def delete(user_id, query: nil, body: nil, headers: nil)
79
+ headers = add_scim_content_type(headers)
80
+ client.delete("/v2/scim/Users/#{encode(user_id)}", query: query, body: body, headers: headers)
81
+ end
82
+
83
+ private
84
+
85
+ def add_scim_content_type(headers)
86
+ headers ||= {}
87
+ headers = headers.transform_keys { |key| (key.to_s.downcase == "content-type") ? "content-type" : key }
88
+ headers["content-type"] ||= "application/scim+json"
89
+ headers
90
+ end
91
+ end
92
+
93
+ include APIs
94
+ extend APIs
95
+ end
96
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PaypalAPI
4
+ #
5
+ # https://developer.paypal.com/docs/api/webhooks/v1/
6
+ #
7
+ class WebhookEvents < APICollection
8
+ #
9
+ # Common class and instance methods
10
+ #
11
+ module APIs
12
+ # @!macro [new] request
13
+ # @param query [Hash, nil] Request query parameters
14
+ # @param body [Hash, nil] Request body parameters
15
+ # @param headers [Hash, nil] Request headers
16
+ # @return [Response] Response object
17
+
18
+ # Lists available events to which any webhook can subscribe
19
+ #
20
+ # @see https://developer.paypal.com/docs/api/webhooks/v1/#webhooks-event-types_list
21
+ #
22
+ # @macro request
23
+ #
24
+ def available(query: nil, body: nil, headers: nil)
25
+ client.get("/v1/notifications/webhooks-event-types", query: query, body: body, headers: headers)
26
+ end
27
+
28
+ #
29
+ # List event notifications
30
+ #
31
+ # @see https://developer.paypal.com/docs/api/webhooks/v1/#webhooks-events_list
32
+ #
33
+ # @macro request
34
+ #
35
+ def list(query: nil, body: nil, headers: nil)
36
+ client.get("/v1/notifications/webhooks-events", query: query, body: body, headers: headers)
37
+ end
38
+
39
+ #
40
+ # Show event notification details
41
+ #
42
+ # @see https://developer.paypal.com/docs/api/webhooks/v1/#webhooks-events_get
43
+ #
44
+ # @param event_id [String] Event ID
45
+ # @macro request
46
+ #
47
+ def show(event_id, query: nil, body: nil, headers: nil)
48
+ client.get("/v1/notifications/webhooks-events/#{encode(event_id)}", query: query, body: body, headers: headers)
49
+ end
50
+
51
+ #
52
+ # Resend event notification
53
+ #
54
+ # @see https://developer.paypal.com/docs/api/webhooks/v1/#webhooks-events_resend
55
+ #
56
+ # @param event_id [String] Event ID
57
+ # @macro request
58
+ #
59
+ def resend(event_id, query: nil, body: nil, headers: nil)
60
+ client.post("/v1/notifications/webhooks-events/#{encode(event_id)}/resend", query: query, body: body, headers: headers)
61
+ end
62
+
63
+ #
64
+ # Simulate webhook event
65
+ #
66
+ # @see https://developer.paypal.com/docs/api/webhooks/v1/#simulate-event_post
67
+ #
68
+ # @macro request
69
+ #
70
+ def simulate(query: nil, body: nil, headers: nil)
71
+ client.post("/v1/notifications/simulate-event", query: query, body: body, headers: headers)
72
+ end
73
+ end
74
+
75
+ include APIs
76
+ extend APIs
77
+ end
78
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PaypalAPI
4
+ #
5
+ # https://developer.paypal.com/docs/api/webhooks/v1/
6
+ #
7
+ class WebhookLookups < APICollection
8
+ #
9
+ # Common class and instance methods
10
+ #
11
+ module APIs
12
+ # @!macro [new] request
13
+ # @param query [Hash, nil] Request query parameters
14
+ # @param body [Hash, nil] Request body parameters
15
+ # @param headers [Hash, nil] Request headers
16
+ # @return [Response] Response object
17
+
18
+ #
19
+ # Create webhook lookup
20
+ #
21
+ # @see https://developer.paypal.com/docs/api/webhooks/v1/#webhooks-lookup_post
22
+ #
23
+ # @macro request
24
+ #
25
+ def create(query: nil, body: nil, headers: nil)
26
+ client.post("/v1/notifications/webhooks-lookup", query: query, body: body, headers: headers)
27
+ end
28
+
29
+ #
30
+ # List webhook lookups
31
+ #
32
+ # @see https://developer.paypal.com/docs/api/webhooks/v1/#webhooks-lookup_list
33
+ #
34
+ # @macro request
35
+ #
36
+ def list(query: nil, body: nil, headers: nil)
37
+ client.get("/v1/notifications/webhooks-lookup", query: query, body: body, headers: headers)
38
+ end
39
+
40
+ #
41
+ # Show webhook lookup details
42
+ #
43
+ # @see https://developer.paypal.com/docs/api/webhooks/v1/#webhooks-lookup_get
44
+ #
45
+ # @param webhook_lookup_id [String] Webhook lookup ID
46
+ # @macro request
47
+ #
48
+ def show(webhook_lookup_id, query: nil, body: nil, headers: nil)
49
+ client.get("/v1/notifications/webhooks-lookup/#{encode(webhook_lookup_id)}", query: query, body: body, headers: headers)
50
+ end
51
+
52
+ #
53
+ # Delete webhook lookup
54
+ #
55
+ # @see https://developer.paypal.com/docs/api/webhooks/v1/#webhooks-lookup_delete
56
+ #
57
+ # @param webhook_lookup_id [String] Webhook lookup ID
58
+ # @macro request
59
+ #
60
+ def delete(webhook_lookup_id, query: nil, body: nil, headers: nil)
61
+ client.delete("/v1/notifications/webhooks-lookup/#{encode(webhook_lookup_id)}", query: query, body: body, headers: headers)
62
+ end
63
+ end
64
+
65
+ include APIs
66
+ extend APIs
67
+ end
68
+ end