paypal-sdk-rest 1.7.6 → 2.0.0.rc1

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 (235) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +4 -14
  3. data/README.md +45 -255
  4. data/lib/lib.rb +88 -0
  5. data/lib/paypal/core/access_token.rb +20 -0
  6. data/lib/paypal/core/paypal_environment.rb +38 -0
  7. data/lib/paypal/core/paypal_http_client.rb +51 -0
  8. data/lib/paypal/core/token_requests.rb +40 -0
  9. data/lib/paypal/core/version.rb +3 -0
  10. data/lib/v1/billing_agreements/agreement_bill_balance_request.rb +35 -0
  11. data/lib/v1/billing_agreements/agreement_cancel_request.rb +35 -0
  12. data/lib/v1/billing_agreements/agreement_create_request.rb +33 -0
  13. data/lib/v1/billing_agreements/agreement_execute_request.rb +31 -0
  14. data/lib/v1/billing_agreements/agreement_get_request.rb +31 -0
  15. data/lib/v1/billing_agreements/agreement_re_activate_request.rb +35 -0
  16. data/lib/v1/billing_agreements/agreement_set_balance_request.rb +35 -0
  17. data/lib/v1/billing_agreements/agreement_suspend_request.rb +35 -0
  18. data/lib/v1/billing_agreements/agreement_transactions_request.rb +41 -0
  19. data/lib/v1/billing_agreements/agreement_update_request.rb +35 -0
  20. data/lib/v1/billing_plans/plan_create_request.rb +33 -0
  21. data/lib/v1/billing_plans/plan_get_request.rb +31 -0
  22. data/lib/v1/billing_plans/plan_list_request.rb +49 -0
  23. data/lib/v1/billing_plans/plan_update_request.rb +35 -0
  24. data/lib/v1/identity/user_consent.rb +45 -0
  25. data/lib/v1/identity/userinfo_get_request.rb +33 -0
  26. data/lib/v1/invoices/invoice_cancel_request.rb +35 -0
  27. data/lib/v1/invoices/invoice_create_request.rb +33 -0
  28. data/lib/v1/invoices/invoice_delete_external_payment_request.rb +33 -0
  29. data/lib/v1/invoices/invoice_delete_external_refund_request.rb +33 -0
  30. data/lib/v1/invoices/invoice_delete_request.rb +31 -0
  31. data/lib/v1/invoices/invoice_get_request.rb +31 -0
  32. data/lib/v1/invoices/invoice_list_request.rb +44 -0
  33. data/lib/v1/invoices/invoice_next_invoice_number_request.rb +29 -0
  34. data/lib/v1/invoices/invoice_qr_code_request.rb +46 -0
  35. data/lib/v1/invoices/invoice_record_payment_request.rb +35 -0
  36. data/lib/v1/invoices/invoice_record_refund_request.rb +35 -0
  37. data/lib/v1/invoices/invoice_remind_request.rb +35 -0
  38. data/lib/v1/invoices/invoice_search_request.rb +33 -0
  39. data/lib/v1/invoices/invoice_send_request.rb +36 -0
  40. data/lib/v1/invoices/invoice_update_request.rb +40 -0
  41. data/lib/v1/invoices/template_create_request.rb +33 -0
  42. data/lib/v1/invoices/template_delete_request.rb +31 -0
  43. data/lib/v1/invoices/template_get_request.rb +31 -0
  44. data/lib/v1/invoices/template_list_request.rb +34 -0
  45. data/lib/v1/invoices/template_update_request.rb +35 -0
  46. data/lib/v1/orders/orders_cancel_request.rb +31 -0
  47. data/lib/v1/orders/orders_create_request.rb +33 -0
  48. data/lib/v1/orders/orders_get_request.rb +31 -0
  49. data/lib/v1/orders/orders_pay_request.rb +35 -0
  50. data/lib/v1/payment_experience/web_profile_create_request.rb +33 -0
  51. data/lib/v1/payment_experience/web_profile_delete_request.rb +31 -0
  52. data/lib/v1/payment_experience/web_profile_get_request.rb +31 -0
  53. data/lib/v1/payment_experience/web_profile_list_request.rb +29 -0
  54. data/lib/v1/payment_experience/web_profile_partial_update_request.rb +35 -0
  55. data/lib/v1/payment_experience/web_profile_update_request.rb +35 -0
  56. data/lib/v1/payments/authorization_capture_request.rb +35 -0
  57. data/lib/v1/payments/authorization_get_request.rb +31 -0
  58. data/lib/v1/payments/authorization_reauthorize_request.rb +35 -0
  59. data/lib/v1/payments/authorization_void_request.rb +31 -0
  60. data/lib/v1/payments/capture_get_request.rb +31 -0
  61. data/lib/v1/payments/capture_refund_request.rb +35 -0
  62. data/lib/v1/payments/order_authorize_request.rb +35 -0
  63. data/lib/v1/payments/order_capture_request.rb +35 -0
  64. data/lib/v1/payments/order_get_request.rb +31 -0
  65. data/lib/v1/payments/order_void_request.rb +31 -0
  66. data/lib/v1/payments/payment_create_request.rb +33 -0
  67. data/lib/v1/payments/payment_execute_request.rb +35 -0
  68. data/lib/v1/payments/payment_get_request.rb +31 -0
  69. data/lib/v1/payments/payment_list_request.rb +69 -0
  70. data/lib/v1/payments/payment_update_request.rb +35 -0
  71. data/lib/v1/payments/refund_get_request.rb +31 -0
  72. data/lib/v1/payments/sale_get_request.rb +31 -0
  73. data/lib/v1/payments/sale_refund_request.rb +35 -0
  74. data/lib/v1/sync/search_get_request.rb +99 -0
  75. data/lib/v1/vault/credit_card_create_request.rb +33 -0
  76. data/lib/v1/vault/credit_card_delete_request.rb +31 -0
  77. data/lib/v1/vault/credit_card_get_request.rb +31 -0
  78. data/lib/v1/vault/credit_card_list_request.rb +79 -0
  79. data/lib/v1/vault/credit_card_update_request.rb +35 -0
  80. data/lib/v1/webhooks/available_event_type_list_request.rb +29 -0
  81. data/lib/v1/webhooks/event_get_request.rb +31 -0
  82. data/lib/v1/webhooks/event_list_request.rb +54 -0
  83. data/lib/v1/webhooks/event_resend_request.rb +35 -0
  84. data/lib/v1/webhooks/simulate_event_request.rb +33 -0
  85. data/lib/v1/webhooks/webhook_create_request.rb +33 -0
  86. data/lib/v1/webhooks/webhook_delete_request.rb +31 -0
  87. data/lib/v1/webhooks/webhook_get_request.rb +31 -0
  88. data/lib/v1/webhooks/webhook_list_event_subscriptions_request.rb +31 -0
  89. data/lib/v1/webhooks/webhook_list_request.rb +34 -0
  90. data/lib/v1/webhooks/webhook_update_request.rb +35 -0
  91. data/lib/v1/webhooks/webhook_verify_signature_request.rb +33 -0
  92. data/spec/integration/test_harness.rb +25 -0
  93. data/spec/integration/v1/billing_agreements/agreement_create_spec.rb +63 -0
  94. data/spec/integration/v1/billing_plans/plan_create_spec.rb +12 -0
  95. data/spec/integration/v1/billing_plans/plan_get_spec.rb +16 -0
  96. data/spec/integration/v1/billing_plans/plan_helper.rb +71 -0
  97. data/spec/integration/v1/billing_plans/plan_list_spec.rb +16 -0
  98. data/spec/integration/v1/billing_plans/plan_update_spec.rb +19 -0
  99. data/spec/integration/v1/identity/userinfo_get_spec.rb +65 -0
  100. data/spec/integration/v1/invoices/invoice_cancel_spec.rb +23 -0
  101. data/spec/integration/v1/invoices/invoice_create_spec.rb +15 -0
  102. data/spec/integration/v1/invoices/invoice_delete_external_payment_spec.rb +23 -0
  103. data/spec/integration/v1/invoices/invoice_delete_external_refund_spec.rb +21 -0
  104. data/spec/integration/v1/invoices/invoice_delete_spec.rb +16 -0
  105. data/spec/integration/v1/invoices/invoice_get_spec.rb +18 -0
  106. data/spec/integration/v1/invoices/invoice_helper.rb +171 -0
  107. data/spec/integration/v1/invoices/invoice_list_spec.rb +20 -0
  108. data/spec/integration/v1/invoices/invoice_next_invoice_number_spec.rb +14 -0
  109. data/spec/integration/v1/invoices/invoice_qr_code_spec.rb +18 -0
  110. data/spec/integration/v1/invoices/invoice_record_payment_spec.rb +14 -0
  111. data/spec/integration/v1/invoices/invoice_record_refund_spec.rb +14 -0
  112. data/spec/integration/v1/invoices/invoice_remind_spec.rb +22 -0
  113. data/spec/integration/v1/invoices/invoice_search_spec.rb +20 -0
  114. data/spec/integration/v1/invoices/invoice_send_spec.rb +15 -0
  115. data/spec/integration/v1/invoices/invoice_update_spec.rb +26 -0
  116. data/spec/integration/v1/invoices/template_create_spec.rb +14 -0
  117. data/spec/integration/v1/invoices/template_delete_spec.rb +15 -0
  118. data/spec/integration/v1/invoices/template_get_spec.rb +18 -0
  119. data/spec/integration/v1/invoices/template_list_spec.rb +15 -0
  120. data/spec/integration/v1/invoices/template_update_spec.rb +62 -0
  121. data/spec/integration/v1/orders/orders_cancel_spec.rb +15 -0
  122. data/spec/integration/v1/orders/orders_create_spec.rb +17 -0
  123. data/spec/integration/v1/orders/orders_get_spec.rb +18 -0
  124. data/spec/integration/v1/orders/orders_helper.rb +36 -0
  125. data/spec/integration/v1/orders/orders_pay_spec.rb +19 -0
  126. data/spec/integration/v1/payment_experience/pe_helper.rb +35 -0
  127. data/spec/integration/v1/payment_experience/web_profile_create_spec.rb +20 -0
  128. data/spec/integration/v1/payment_experience/web_profile_delete_spec.rb +15 -0
  129. data/spec/integration/v1/payment_experience/web_profile_get_spec.rb +17 -0
  130. data/spec/integration/v1/payment_experience/web_profile_list_spec.rb +18 -0
  131. data/spec/integration/v1/payment_experience/web_profile_partial_update_spec.rb +32 -0
  132. data/spec/integration/v1/payment_experience/web_profile_update_spec.rb +44 -0
  133. data/spec/integration/v1/payments/authorization_capture_spec.rb +17 -0
  134. data/spec/integration/v1/payments/authorization_get_spec.rb +18 -0
  135. data/spec/integration/v1/payments/authorization_reauthorize_spec.rb +26 -0
  136. data/spec/integration/v1/payments/authorization_void_spec.rb +19 -0
  137. data/spec/integration/v1/payments/capture_get_spec.rb +20 -0
  138. data/spec/integration/v1/payments/capture_refund_spec.rb +27 -0
  139. data/spec/integration/v1/payments/order_authorize_spec.rb +20 -0
  140. data/spec/integration/v1/payments/order_capture_spec.rb +21 -0
  141. data/spec/integration/v1/payments/order_get_spec.rb +14 -0
  142. data/spec/integration/v1/payments/order_void_spec.rb +14 -0
  143. data/spec/integration/v1/payments/payment_create_spec.rb +13 -0
  144. data/spec/integration/v1/payments/payment_execute_spec.rb +19 -0
  145. data/spec/integration/v1/payments/payment_get_spec.rb +17 -0
  146. data/spec/integration/v1/payments/payment_list_spec.rb +16 -0
  147. data/spec/integration/v1/payments/payment_update_spec.rb +28 -0
  148. data/spec/integration/v1/payments/payments_helper.rb +72 -0
  149. data/spec/integration/v1/payments/refund_get_spec.rb +19 -0
  150. data/spec/integration/v1/payments/sale_get_spec.rb +18 -0
  151. data/spec/integration/v1/payments/sale_refund_spec.rb +18 -0
  152. data/spec/integration/v1/sync/search_get_spec.rb +34 -0
  153. data/spec/integration/v1/vault/credit_card_create_spec.rb +16 -0
  154. data/spec/integration/v1/vault/credit_card_delete_spec.rb +16 -0
  155. data/spec/integration/v1/vault/credit_card_get_spec.rb +17 -0
  156. data/spec/integration/v1/vault/credit_card_list_spec.rb +18 -0
  157. data/spec/integration/v1/vault/credit_card_update_spec.rb +26 -0
  158. data/spec/integration/v1/vault/vault_helper.rb +28 -0
  159. data/spec/integration/v1/webhooks/available_event_type_list_spec.rb +16 -0
  160. data/spec/integration/v1/webhooks/webhook_create_spec.rb +12 -0
  161. data/spec/integration/v1/webhooks/webhook_delete_spec.rb +13 -0
  162. data/spec/integration/v1/webhooks/webhook_get_spec.rb +16 -0
  163. data/spec/integration/v1/webhooks/webhook_helper.rb +43 -0
  164. data/spec/integration/v1/webhooks/webhook_list_event_subscriptions_spec.rb +16 -0
  165. data/spec/integration/v1/webhooks/webhook_list_spec.rb +15 -0
  166. data/spec/integration/v1/webhooks/webhook_update_spec.rb +29 -0
  167. data/spec/integration/v1/webhooks/webhook_verify_signature_spec.rb +20 -0
  168. data/spec/spec_helper.rb +97 -28
  169. data/spec/unit/paypal_http_client_spec.rb +264 -0
  170. metadata +257 -127
  171. data/Rakefile +0 -15
  172. data/data/DigiCertHighAssuranceEVRootCA.pem +0 -23
  173. data/data/DigiCertSHA2ExtendedValidationServerCA.pem +0 -28
  174. data/data/paypal.crt +0 -171
  175. data/lib/generators/paypal/sdk/USAGE +0 -3
  176. data/lib/generators/paypal/sdk/install_generator.rb +0 -17
  177. data/lib/generators/paypal/sdk/templates/paypal.rb +0 -2
  178. data/lib/generators/paypal/sdk/templates/paypal.yml +0 -29
  179. data/lib/paypal-sdk/core/api/base.rb +0 -169
  180. data/lib/paypal-sdk/core/api/data_types/array_with_block.rb +0 -44
  181. data/lib/paypal-sdk/core/api/data_types/base.rb +0 -225
  182. data/lib/paypal-sdk/core/api/data_types/enum.rb +0 -26
  183. data/lib/paypal-sdk/core/api/data_types/simple_types.rb +0 -52
  184. data/lib/paypal-sdk/core/api/ipn.rb +0 -66
  185. data/lib/paypal-sdk/core/api/rest.rb +0 -177
  186. data/lib/paypal-sdk/core/api.rb +0 -20
  187. data/lib/paypal-sdk/core/authentication.rb +0 -66
  188. data/lib/paypal-sdk/core/config.rb +0 -253
  189. data/lib/paypal-sdk/core/credential/base.rb +0 -27
  190. data/lib/paypal-sdk/core/credential/certificate.rb +0 -32
  191. data/lib/paypal-sdk/core/credential/signature.rb +0 -22
  192. data/lib/paypal-sdk/core/credential/third_party/subject.rb +0 -25
  193. data/lib/paypal-sdk/core/credential/third_party/token.rb +0 -39
  194. data/lib/paypal-sdk/core/credential.rb +0 -16
  195. data/lib/paypal-sdk/core/exceptions.rb +0 -112
  196. data/lib/paypal-sdk/core/logging.rb +0 -50
  197. data/lib/paypal-sdk/core/openid_connect/api.rb +0 -50
  198. data/lib/paypal-sdk/core/openid_connect/data_types.rb +0 -73
  199. data/lib/paypal-sdk/core/openid_connect/get_api.rb +0 -28
  200. data/lib/paypal-sdk/core/openid_connect/request_data_type.rb +0 -52
  201. data/lib/paypal-sdk/core/openid_connect/set_api.rb +0 -36
  202. data/lib/paypal-sdk/core/openid_connect.rb +0 -140
  203. data/lib/paypal-sdk/core/util/http_helper.rb +0 -171
  204. data/lib/paypal-sdk/core/util/oauth_signature.rb +0 -64
  205. data/lib/paypal-sdk/core/util/ordered_hash.rb +0 -165
  206. data/lib/paypal-sdk/core/util.rb +0 -11
  207. data/lib/paypal-sdk/rest/api.rb +0 -23
  208. data/lib/paypal-sdk/rest/data_types.rb +0 -2597
  209. data/lib/paypal-sdk/rest/error_hash.rb +0 -39
  210. data/lib/paypal-sdk/rest/get_api.rb +0 -20
  211. data/lib/paypal-sdk/rest/request_data_type.rb +0 -53
  212. data/lib/paypal-sdk/rest/set_api.rb +0 -42
  213. data/lib/paypal-sdk/rest/version.rb +0 -7
  214. data/lib/paypal-sdk/rest.rb +0 -39
  215. data/lib/paypal-sdk-core.rb +0 -38
  216. data/lib/paypal-sdk-rest.rb +0 -2
  217. data/spec/README.md +0 -22
  218. data/spec/config/cacert.pem +0 -171
  219. data/spec/config/cert_key.pem +0 -33
  220. data/spec/config/paypal.yml +0 -35
  221. data/spec/config/sample_data.yml +0 -3
  222. data/spec/core/api/data_type_spec.rb +0 -289
  223. data/spec/core/api/rest_spec.rb +0 -211
  224. data/spec/core/config_spec.rb +0 -192
  225. data/spec/core/logging_spec.rb +0 -28
  226. data/spec/core/openid_connect_spec.rb +0 -153
  227. data/spec/invoice_examples_spec.rb +0 -38
  228. data/spec/payments_examples_spec.rb +0 -437
  229. data/spec/payouts_examples_spec.rb +0 -74
  230. data/spec/rest/data_types_spec.rb +0 -62
  231. data/spec/rest/error_hash_spec.rb +0 -83
  232. data/spec/subscription_examples_spec.rb +0 -227
  233. data/spec/support/sample_data.rb +0 -5
  234. data/spec/web_profile_examples_spec.rb +0 -106
  235. data/spec/webhooks_examples_spec.rb +0 -93
@@ -0,0 +1,14 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './invoice_helper'
3
+
4
+ include PayPal::V1::Invoices
5
+
6
+ describe TemplateCreateRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = InvoiceHelper::create_template
9
+
10
+ expect(create_response.status_code).to eq(201)
11
+ expect(create_response.result).not_to be_nil
12
+ expect(create_response.result.unit_of_measure).to eq('HOURS')
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './invoice_helper'
3
+ require 'json'
4
+
5
+ include PayPal::V1::Invoices
6
+
7
+ describe TemplateDeleteRequest do
8
+ it 'successfully makes a request' do
9
+ create_response = InvoiceHelper::create_template
10
+ request = TemplateDeleteRequest.new(create_response.result.template_id)
11
+ resp = TestHarness::client.execute(request)
12
+
13
+ expect(resp.status_code).to eq(204)
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './invoice_helper'
3
+
4
+ include PayPal::V1::Invoices
5
+
6
+ describe TemplateGetRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = InvoiceHelper::create_invoice
9
+
10
+ request = TemplateGetRequest.new(create_response.result.template_id)
11
+
12
+ resp = TestHarness::client.execute(request)
13
+ expect(resp.status_code).to eq(200)
14
+ expect(resp.result).not_to be_nil
15
+
16
+ expect(resp.result.template_id).to eq(create_response.result.template_id)
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../../test_harness'
2
+ require 'json'
3
+
4
+ include PayPal::V1::Invoices
5
+
6
+ describe TemplateListRequest do
7
+ it 'successfully makes a request' do
8
+ request = TemplateListRequest.new()
9
+ request.fields('all')
10
+
11
+ resp = TestHarness::client.execute(request)
12
+ expect(resp.status_code).to eq(200)
13
+ expect(resp.result).not_to be_nil
14
+ end
15
+ end
@@ -0,0 +1,62 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './invoice_helper'
3
+
4
+ include PayPal::V1::Invoices
5
+
6
+ describe TemplateUpdateRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = InvoiceHelper::create_template
9
+
10
+ template = create_response.result
11
+ request = TemplateUpdateRequest.new(template.template_id)
12
+
13
+ body = {
14
+ "name": "Hours Template_ruby#{Random.new.rand(1000000)}",
15
+ "default": true,
16
+ "unit_of_measure": "Hours",
17
+ "template_data": {
18
+ "items": [
19
+ {
20
+ "name": "Nutri Bullet 3000",
21
+ "quantity": 1,
22
+ "unit_price": {
23
+ "currency": "USD",
24
+ "value": "50.00",
25
+ },
26
+ },
27
+ ],
28
+ "merchant_info": {
29
+ "email": "team-dx-clients-facilitator@getbraintree.com",
30
+ },
31
+ "tax_calculated_after_discount": false,
32
+ "tax_inclusive": false,
33
+ "note": "Thank you for your business.",
34
+ "logo_url": "https://pics.paypal.com/v1/images/redDot.jpeg",
35
+ "allow_tip": true,
36
+ },
37
+ "settings": [
38
+ {
39
+ "field_name": "items.date",
40
+ "display_preference": {
41
+ "hidden": true,
42
+ },
43
+ },
44
+ {
45
+ "field_name": "custom",
46
+ "display_preference": {
47
+ "hidden": true,
48
+ },
49
+ },
50
+ ],
51
+ }
52
+
53
+ request.request_body(body)
54
+
55
+ resp = TestHarness::client.execute(request)
56
+ expect(resp.status_code).to eq(200)
57
+ expect(resp.result).not_to be_nil
58
+
59
+ get_response = InvoiceHelper::get_template(resp.result.template_id)
60
+ expect(get_response.result.template_data.items[0].name).to eq('Nutri Bullet 3000')
61
+ end
62
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './orders_helper'
3
+
4
+ include PayPal::V1::Orders
5
+
6
+ describe OrdersCancelRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = OrdersHelper::create_order
9
+
10
+ request = OrdersCancelRequest.new(create_response.result.id)
11
+
12
+ resp = TestHarness::client.execute(request)
13
+ expect(resp.status_code).to eq(204)
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './orders_helper'
3
+ require 'json'
4
+
5
+ include PayPal::V1::Orders
6
+
7
+ describe OrdersCreateRequest do
8
+ it 'successfully makes a request' do
9
+ create_response = OrdersHelper::create_order
10
+
11
+ expect(create_response.status_code).to eq(201)
12
+ expect(create_response.result).not_to be_nil
13
+ expect(create_response.result.intent).to eq('SALE')
14
+ expect(create_response.result.purchase_units.count).to eq(2)
15
+ expect(create_response.result.purchase_units[0].reference_id).to eq('test_ref_id1')
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './orders_helper'
3
+
4
+ include PayPal::V1::Orders
5
+
6
+ describe OrdersGetRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = OrdersHelper::create_order
9
+
10
+ request = OrdersGetRequest.new(create_response.result.id)
11
+
12
+ resp = TestHarness::client.execute(request)
13
+ expect(resp.status_code).to eq(200)
14
+ expect(resp.result).not_to be_nil
15
+ expect(resp.result.id).to eq(create_response.result.id)
16
+ expect(resp.result.purchase_units[0].reference_id).to eq('test_ref_id1')
17
+ end
18
+ end
@@ -0,0 +1,36 @@
1
+ require_relative '../../test_harness'
2
+
3
+ include PayPal::V1::Orders
4
+
5
+ module OrdersHelper
6
+ class << self
7
+ def create_order
8
+ body = {
9
+ :intent => 'SALE',
10
+ :purchase_units => [{
11
+ :reference_id => 'test_ref_id1',
12
+ :amount => {
13
+ :total => '100.00',
14
+ :currency => 'USD',
15
+ },
16
+ }, {
17
+ :reference_id => 'test_ref_id2',
18
+ :amount => {
19
+ :total => '50.00',
20
+ :currency => 'USD',
21
+ },
22
+ }],
23
+ :redirect_urls => {
24
+ :cancel_url => 'https://example.com/cancel',
25
+ :return_url => 'https://example.com/return',
26
+ },
27
+ }
28
+
29
+ TestHarness::exec(OrdersCreateRequest.new, body)
30
+ end
31
+
32
+ def get_order(id)
33
+ TestHarness::exec(OrdersGetRequest.new(id))
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,19 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './orders_helper'
3
+ require 'json'
4
+
5
+ include PayPal::V1::Orders
6
+
7
+ describe OrdersPayRequest do
8
+ it 'successfully makes a request', :skip => 'This test is an example, in production, orders require payer approval' do
9
+ create_response = OrdersHelper::create_order
10
+ request = OrdersPayRequest.new(create_response.result.id)
11
+ request.request_body({
12
+ :disbursement_mode => 'INSTANT',
13
+ })
14
+
15
+ resp = TestHarness::client.execute(request)
16
+ expect(resp.status_code).to eq(202)
17
+ expect(resp.result).not_to be_nil
18
+ end
19
+ end
@@ -0,0 +1,35 @@
1
+ require_relative '../../test_harness'
2
+
3
+ include PayPal::V1::PaymentExperience
4
+
5
+ module PaymentExperienceHelper
6
+ class << self
7
+ def create_profile
8
+ profile_name = "#{Random.new.rand(1000000)}"
9
+ body = {
10
+ :name => profile_name,
11
+ :flow_config => {
12
+ :landing_page_type => 'billing',
13
+ :bank_txn_pending_url => 'http://yeowza.com',
14
+ :user_action => 'commit',
15
+ :return_uri_http_method => 'GET',
16
+ },
17
+ :presentation => {
18
+ :logo_image => 'http://example.com/icon.ico',
19
+ :brand_name => 'example supply & co',
20
+ :locale_code => 'US',
21
+ :return_url_label => 'Return',
22
+ :note_to_seller_label => 'Thanks',
23
+ },
24
+ :input_fields => {
25
+ :allow_note => true,
26
+ :no_shipping => 1,
27
+ :address_override => 0,
28
+ },
29
+ :temporary => true,
30
+ }
31
+
32
+ TestHarness::exec(WebProfileCreateRequest.new, body)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './pe_helper'
3
+ require 'json'
4
+
5
+ include PayPal::V1::PaymentExperience
6
+
7
+ describe WebProfileCreateRequest do
8
+ it 'successfully makes a request' do
9
+ begin
10
+ create_response = PaymentExperienceHelper::create_profile
11
+ rescue Exception => e
12
+ puts e.status_code
13
+ puts e.result
14
+ end
15
+
16
+ expect(create_response.status_code).to eq(201)
17
+ expect(create_response.result).not_to be_nil
18
+ expect(create_response.result.presentation.brand_name).to eq('example supply & co')
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './pe_helper'
3
+
4
+ include PayPal::V1::PaymentExperience
5
+
6
+ describe WebProfileDeleteRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = PaymentExperienceHelper::create_profile
9
+
10
+ request = WebProfileDeleteRequest.new(create_response.result.id)
11
+
12
+ resp = TestHarness::client.execute(request)
13
+ expect(resp.status_code).to eq(204)
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './pe_helper'
3
+ require 'json'
4
+
5
+ include PayPal::V1::PaymentExperience
6
+
7
+ describe WebProfileGetRequest do
8
+ it 'successfully makes a request' do
9
+ create_response = PaymentExperienceHelper::create_profile
10
+ request = WebProfileGetRequest.new(create_response.result.id)
11
+
12
+ resp = TestHarness::client.execute(request)
13
+ expect(resp.status_code).to eq(200)
14
+ expect(resp.result).not_to be_nil
15
+ expect(resp.result.id).to eq(create_response.result.id)
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './pe_helper'
3
+ require 'json'
4
+
5
+ include PayPal::V1::PaymentExperience
6
+
7
+ describe WebProfileListRequest do
8
+ it 'successfully makes a request' do
9
+ create_response = PaymentExperienceHelper::create_profile
10
+
11
+ request = WebProfileListRequest.new
12
+
13
+ resp = TestHarness::client.execute(request)
14
+ expect(resp.status_code).to eq(200)
15
+ expect(resp.result).not_to be_nil
16
+ expect(resp.result.count > 0).to be(true)
17
+ end
18
+ end
@@ -0,0 +1,32 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './pe_helper'
3
+ require 'json'
4
+
5
+ include PayPal::V1::PaymentExperience
6
+
7
+ describe WebProfilePartialUpdateRequest do
8
+ it 'successfully makes a request' do
9
+ create_response = PaymentExperienceHelper::create_profile
10
+
11
+ request = WebProfilePartialUpdateRequest.new(create_response.result.id)
12
+ request.request_body([
13
+ {
14
+ :op => 'add',
15
+ :path => '/presentation/brand_name',
16
+ :value => 'example supply and company',
17
+ },
18
+ {
19
+ :op => 'remove',
20
+ :path => '/flow_config/landing_page_type',
21
+ },
22
+ ])
23
+
24
+ resp = TestHarness::client.execute(request)
25
+ expect(resp.status_code).to eq(204)
26
+
27
+ get_resp = TestHarness::client.execute(WebProfileGetRequest.new(create_response.result.id))
28
+
29
+ expect(get_resp.result.presentation.brand_name).to eq('example supply and company')
30
+ expect(get_resp.result.presentation.landing_page_type).to be_nil
31
+ end
32
+ end
@@ -0,0 +1,44 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './pe_helper'
3
+
4
+ include PayPal::V1::PaymentExperience
5
+
6
+ describe WebProfileUpdateRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = PaymentExperienceHelper::create_profile
9
+
10
+ profile_name = "Updated #{Random.new.rand(1000000)}"
11
+ body = {
12
+ :name => profile_name,
13
+ :flow_config => {
14
+ :landing_page_type => 'billing',
15
+ :bank_txn_pending_url => 'http://updated.com',
16
+ :user_action => 'commit',
17
+ :return_uri_http_method => 'GET',
18
+ },
19
+ :presentation => {
20
+ :logo_image => 'http://example.com/icon.ico',
21
+ :brand_name => 'example supply & co',
22
+ :locale_code => 'US',
23
+ :return_url_label => 'Return',
24
+ :note_to_seller_label => 'Thanks',
25
+ },
26
+ :input_fields => {
27
+ :allow_note => true,
28
+ :no_shipping => 1,
29
+ :address_override => 0,
30
+ },
31
+ :temporary => true,
32
+ }
33
+
34
+ request = WebProfileUpdateRequest.new(create_response.result.id)
35
+ request.request_body(body)
36
+
37
+ resp = TestHarness::client.execute(request)
38
+ expect(resp.status_code).to eq(204)
39
+
40
+ get_resp = TestHarness::client.execute(WebProfileGetRequest.new(create_response.result.id))
41
+ expect(get_resp.result.flow_config.bank_txn_pending_url).to eq('http://updated.com')
42
+ expect(get_resp.result.name).to eq(profile_name)
43
+ end
44
+ end
@@ -0,0 +1,17 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+
4
+ include PayPal::V1::Payments
5
+
6
+ describe AuthorizationCaptureRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = PaymentsHelper::create_payment('authorize')
9
+ auth_id = create_response.result.transactions[0].related_resources[0].authorization.id
10
+
11
+ auth_capture_response = PaymentsHelper::create_auth_capture(auth_id)
12
+
13
+ expect(auth_capture_response.status_code).to eq(200)
14
+ expect(auth_capture_response.result).not_to be_nil
15
+ expect(auth_capture_response.result.parent_payment).to eq(create_response.result.id)
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+
4
+ include PayPal::V1::Payments
5
+
6
+ describe AuthorizationGetRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = PaymentsHelper::create_payment('authorize')
9
+ auth_id = create_response.result.transactions[0].related_resources[0].authorization.id
10
+
11
+ request = AuthorizationGetRequest.new(auth_id)
12
+
13
+ resp = TestHarness::client.execute(request)
14
+ expect(resp.status_code).to eq(200)
15
+ expect(resp.result).not_to be_nil
16
+ expect(resp.result.id).to eq(auth_id)
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+ require 'json'
4
+
5
+ include PayPal::V1::Payments
6
+
7
+ describe AuthorizationReauthorizeRequest do
8
+ it 'successfully makes a request', :skip => 'creating a reauthorization on a paypal payment method requires user interaction' do
9
+ create_response = PaymentsHelper::create_payment('authorize', payment_method='paypal')
10
+ auth_id = create_response.result.transactions[0].related_resources[0].authorization.id
11
+
12
+ request = AuthorizationReauthorizeRequest.new(auth_id)
13
+ body = {
14
+ :amount => {
15
+ :total => '10',
16
+ :currency => 'USD'
17
+ }
18
+ }
19
+
20
+ request.request_body(body)
21
+
22
+ resp = TestHarness::client.execute(request)
23
+ expect(resp.status_code).to eq(201)
24
+ expect(resp.result).not_to be_nil
25
+ end
26
+ end
@@ -0,0 +1,19 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+ require 'json'
4
+
5
+ include PayPal::V1::Payments
6
+
7
+ describe AuthorizationVoidRequest do
8
+ it 'successfully makes a request' do
9
+ create_response = PaymentsHelper::create_payment('authorize')
10
+ auth_id = create_response.result.transactions[0].related_resources[0].authorization.id
11
+
12
+ request = AuthorizationVoidRequest.new(auth_id)
13
+
14
+ resp = TestHarness::client.execute(request)
15
+ expect(resp.status_code).to eq(200)
16
+ expect(resp.result).not_to be_nil
17
+ expect(resp.result.parent_payment).to eq(create_response.result.id)
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+
4
+ include PayPal::V1::Payments
5
+
6
+ describe CaptureGetRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = PaymentsHelper::create_payment('authorize')
9
+ auth_id = create_response.result.transactions[0].related_resources[0].authorization.id
10
+
11
+ auth_capture_response = PaymentsHelper::create_auth_capture(auth_id)
12
+
13
+ request = CaptureGetRequest.new(auth_capture_response.result.id)
14
+
15
+ resp = TestHarness::client.execute(request)
16
+ expect(resp.status_code).to eq(200)
17
+ expect(resp.result).not_to be_nil
18
+ expect(resp.result.id).to eq(auth_capture_response.result.id)
19
+ end
20
+ end
@@ -0,0 +1,27 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+
4
+ include PayPal::V1::Payments
5
+
6
+ describe CaptureRefundRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = PaymentsHelper::create_payment('authorize')
9
+ auth_id = create_response.result.transactions[0].related_resources[0].authorization.id
10
+
11
+ auth_capture_response = PaymentsHelper::create_auth_capture(auth_id)
12
+
13
+ request = CaptureRefundRequest.new(auth_capture_response.result.id)
14
+ request.request_body({
15
+ :amount => {
16
+ :total => '10',
17
+ :currency => 'USD'
18
+ }
19
+ })
20
+
21
+ resp = TestHarness::client.execute(request)
22
+
23
+ expect(resp.status_code).to eq(201)
24
+ expect(resp.result).not_to be_nil
25
+ expect(resp.result.capture_id).to eq(auth_capture_response.result.id)
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+
4
+ include PayPal::V1::Payments
5
+
6
+ describe OrderAuthorizeRequest do
7
+ it 'successfully makes a request', :skip => 'Order authoriztion requires user interaction' do
8
+ request = OrderAuthorizeRequest.new(PaymentsHelper::FAKE_ID)
9
+ request.request_body({
10
+ :amount => {
11
+ :currency => 'USD',
12
+ :total => '10'
13
+ }
14
+ })
15
+
16
+ resp = TestHarness::client.execute(request)
17
+ expect(resp.status_code).to eq(201)
18
+ expect(resp.result).not_to be_nil
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+
4
+ include PayPal::V1::Payments
5
+
6
+ describe OrderCaptureRequest do
7
+ it 'successfully makes a request', :skip => 'Order capturing requires user interaction' do
8
+ request = OrderCaptureRequest.new(PaymentsHelper::FAKE_ID)
9
+ request.request_body({
10
+ :amount => {
11
+ :total => '10',
12
+ :currency => 'USD'
13
+ },
14
+ :is_final_capture => true
15
+ })
16
+
17
+ resp = TestHarness::client.execute(request)
18
+ expect(resp.status_code).to eq(201)
19
+ expect(resp.result).not_to be_nil
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+
4
+ include PayPal::V1::Payments
5
+
6
+ describe OrderGetRequest do
7
+ it 'successfully makes a request', :skip => 'Executing an order requires user approval via the executed payment\'s approval_url' do
8
+ request = OrderGetRequest.new(PaymentsHelper::FAKE_ID)
9
+
10
+ resp = TestHarness::client.execute(request)
11
+ expect(resp.status_code).to eq(200)
12
+ expect(resp.result).not_to be_nil
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+
4
+ include PayPal::V1::Payments
5
+
6
+ describe OrderVoidRequest do
7
+ it 'successfully makes a request', :skip => 'Order voiding requires user interaction' do
8
+ request = OrderVoidRequest.new(PaymentsHelper::FAKE_ID)
9
+
10
+ resp = TestHarness::client.execute(request)
11
+ expect(resp.status_code).to eq(200)
12
+ expect(resp.result).not_to be_nil
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ require_relative '../../test_harness'
2
+ require_relative './payments_helper'
3
+
4
+ include PayPal::V1::Payments
5
+
6
+ describe PaymentCreateRequest do
7
+ it 'successfully makes a request' do
8
+ create_response = PaymentsHelper::create_payment('sale')
9
+
10
+ expect(create_response.status_code).to eq(201)
11
+ expect(create_response.result).not_to be_nil
12
+ end
13
+ end