adyen-ruby-api-library 6.3.0 → 7.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/Makefile +72 -0
  4. data/README.md +20 -18
  5. data/lib/adyen/client.rb +68 -36
  6. data/lib/adyen/services/balanceControlService.rb +28 -0
  7. data/lib/adyen/services/balancePlatform/account_holders_api.rb +63 -0
  8. data/lib/adyen/services/balancePlatform/balance_accounts_api.rb +123 -0
  9. data/lib/adyen/services/balancePlatform/bank_account_validation_api.rb +27 -0
  10. data/lib/adyen/services/balancePlatform/grant_accounts_api.rb +27 -0
  11. data/lib/adyen/services/balancePlatform/grant_offers_api.rb +39 -0
  12. data/lib/adyen/services/balancePlatform/payment_instrument_groups_api.rb +51 -0
  13. data/lib/adyen/services/balancePlatform/payment_instruments_api.rb +75 -0
  14. data/lib/adyen/services/balancePlatform/platform_api.rb +39 -0
  15. data/lib/adyen/services/balancePlatform/transaction_rules_api.rb +63 -0
  16. data/lib/adyen/services/balancePlatform.rb +61 -0
  17. data/lib/adyen/services/binLookup.rb +40 -0
  18. data/lib/adyen/services/checkout/classic_checkout_sdk_api.rb +39 -0
  19. data/lib/adyen/services/checkout/modifications_api.rb +87 -0
  20. data/lib/adyen/services/checkout/orders_api.rb +51 -0
  21. data/lib/adyen/services/checkout/payment_links_api.rb +51 -0
  22. data/lib/adyen/services/checkout/payments_api.rb +87 -0
  23. data/lib/adyen/services/checkout/recurring_api.rb +39 -0
  24. data/lib/adyen/services/checkout/utility_api.rb +39 -0
  25. data/lib/adyen/services/checkout.rb +38 -211
  26. data/lib/adyen/services/dataProtection.rb +28 -0
  27. data/lib/adyen/services/legalEntityManagement/business_lines_api.rb +63 -0
  28. data/lib/adyen/services/legalEntityManagement/documents_api.rb +63 -0
  29. data/lib/adyen/services/legalEntityManagement/hosted_onboarding_api.rb +51 -0
  30. data/lib/adyen/services/legalEntityManagement/legal_entities_api.rb +75 -0
  31. data/lib/adyen/services/legalEntityManagement/pci_questionnaires_api.rb +63 -0
  32. data/lib/adyen/services/legalEntityManagement/terms_of_service_api.rb +51 -0
  33. data/lib/adyen/services/legalEntityManagement/transfer_instruments_api.rb +63 -0
  34. data/lib/adyen/services/legalEntityManagement.rb +51 -0
  35. data/lib/adyen/services/management/account_company_level_api.rb +51 -0
  36. data/lib/adyen/services/management/account_merchant_level_api.rb +63 -0
  37. data/lib/adyen/services/management/account_store_level_api.rb +111 -0
  38. data/lib/adyen/services/management/allowed_origins_company_level_api.rb +63 -0
  39. data/lib/adyen/services/management/allowed_origins_merchant_level_api.rb +63 -0
  40. data/lib/adyen/services/management/api_credentials_company_level_api.rb +63 -0
  41. data/lib/adyen/services/management/api_credentials_merchant_level_api.rb +63 -0
  42. data/lib/adyen/services/management/api_key_company_level_api.rb +27 -0
  43. data/lib/adyen/services/management/api_key_merchant_level_api.rb +27 -0
  44. data/lib/adyen/services/management/client_key_company_level_api.rb +27 -0
  45. data/lib/adyen/services/management/client_key_merchant_level_api.rb +27 -0
  46. data/lib/adyen/services/management/my_api_credential_api.rb +75 -0
  47. data/lib/adyen/services/management/payment_methods_merchant_level_api.rb +87 -0
  48. data/lib/adyen/services/management/payout_settings_merchant_level_api.rb +75 -0
  49. data/lib/adyen/services/management/terminal_actions_company_level_api.rb +63 -0
  50. data/lib/adyen/services/management/terminal_actions_terminal_level_api.rb +27 -0
  51. data/lib/adyen/services/management/terminal_orders_company_level_api.rb +135 -0
  52. data/lib/adyen/services/management/terminal_orders_merchant_level_api.rb +135 -0
  53. data/lib/adyen/services/management/terminal_settings_company_level_api.rb +63 -0
  54. data/lib/adyen/services/management/terminal_settings_merchant_level_api.rb +63 -0
  55. data/lib/adyen/services/management/terminal_settings_store_level_api.rb +111 -0
  56. data/lib/adyen/services/management/terminal_settings_terminal_level_api.rb +63 -0
  57. data/lib/adyen/services/management/terminals_terminal_level_api.rb +27 -0
  58. data/lib/adyen/services/management/users_company_level_api.rb +63 -0
  59. data/lib/adyen/services/management/users_merchant_level_api.rb +63 -0
  60. data/lib/adyen/services/management/webhooks_company_level_api.rb +99 -0
  61. data/lib/adyen/services/management/webhooks_merchant_level_api.rb +99 -0
  62. data/lib/adyen/services/management.rb +151 -0
  63. data/lib/adyen/services/payment.rb +172 -0
  64. data/lib/adyen/services/payout/initialization_api.rb +51 -0
  65. data/lib/adyen/services/payout/instant_payouts_api.rb +27 -0
  66. data/lib/adyen/services/payout/reviewing_api.rb +39 -0
  67. data/lib/adyen/services/payout.rb +31 -0
  68. data/lib/adyen/services/posTerminalManagement.rb +76 -0
  69. data/lib/adyen/services/recurring.rb +81 -13
  70. data/lib/adyen/services/service.rb +2 -2
  71. data/lib/adyen/services/storedValue.rb +88 -0
  72. data/lib/adyen/services/transfers/transactions_api.rb +39 -0
  73. data/lib/adyen/services/transfers/transfers_api.rb +27 -0
  74. data/lib/adyen/services/transfers.rb +26 -0
  75. data/lib/adyen/version.rb +1 -1
  76. data/lib/adyen-ruby-api-library.rb +11 -5
  77. data/spec/account_spec.rb +1 -1
  78. data/spec/balance_control_spec.rb +44 -0
  79. data/spec/balance_platform_spec.rb +123 -0
  80. data/spec/bin_lookup_spec.rb +68 -10
  81. data/spec/checkout_spec.rb +56 -66
  82. data/spec/client_spec.rb +88 -9
  83. data/spec/fund_spec.rb +1 -1
  84. data/spec/hop_spec.rb +1 -1
  85. data/spec/lem_spec.rb +68 -0
  86. data/spec/management_spec.rb +68 -0
  87. data/spec/mocks/requests/BalanceControl/balance_transfer.json +10 -0
  88. data/spec/mocks/requests/BalancePlatform/create_account_holder.json +5 -0
  89. data/spec/mocks/requests/BalancePlatform/update_account_holder.json +10 -0
  90. data/spec/mocks/requests/LegalEntityManagement/create_business_line.json +15 -0
  91. data/spec/mocks/requests/Management/create_store.json +15 -0
  92. data/spec/mocks/requests/Recurring/create_permit.json +6 -0
  93. data/spec/mocks/requests/StoredValue/issue_giftcard.json +12 -0
  94. data/spec/mocks/requests/Transfers/get_transactions.json +82 -0
  95. data/spec/mocks/requests/Transfers/make_transfer.json +32 -0
  96. data/spec/mocks/responses/BalanceControl/balance_transfer.json +14 -0
  97. data/spec/mocks/responses/BalancePlatform/create_account_holder.json +41 -0
  98. data/spec/mocks/responses/BalancePlatform/get_balance_account.json +15 -0
  99. data/spec/mocks/responses/BalancePlatform/update_account_holder.json +16 -0
  100. data/spec/mocks/responses/LegalEntityManagement/create_business_line.json +17 -0
  101. data/spec/mocks/responses/Management/create_store.json +23 -0
  102. data/spec/mocks/responses/Management/get_companies.json +42 -0
  103. data/spec/mocks/responses/Recurring/create_permit.json +4 -0
  104. data/spec/mocks/responses/StoredValue/issue_giftcard.json +13 -0
  105. data/spec/mocks/responses/Transfers/get_transactions.json +82 -0
  106. data/spec/mocks/responses/Transfers/make_transfer.json +36 -0
  107. data/spec/notification_spec.rb +1 -1
  108. data/spec/payments_spec.rb +41 -23
  109. data/spec/payouts_spec.rb +43 -16
  110. data/spec/pos_terminal_management_spec.rb +46 -0
  111. data/spec/recurring_spec.rb +2 -2
  112. data/spec/spec_helper.rb +0 -10
  113. data/spec/stored_value_spec.rb +43 -0
  114. data/spec/transfers_spec.rb +63 -0
  115. data/templates/api-single.mustache +29 -0
  116. data/templates/api-small.mustache +37 -0
  117. data/templates/api.mustache +36 -0
  118. data/templates/config.yaml +10 -0
  119. metadata +101 -11
  120. data/lib/adyen/services/bin_lookup.rb +0 -18
  121. data/lib/adyen/services/data_protection.rb +0 -17
  122. data/lib/adyen/services/payments.rb +0 -34
  123. data/lib/adyen/services/payouts.rb +0 -22
  124. data/lib/adyen/services/postfmapi.rb +0 -19
  125. data/spec/mocks/requests/Recurring/store_token.json +0 -15
  126. data/spec/mocks/responses/Recurring/store_token.json +0 -7
  127. data/spec/postfmapi_spec.rb +0 -16
@@ -29,7 +29,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
29
29
  body: response_body
30
30
  )
31
31
 
32
- result = @shared_values[:client].checkout.payment_methods(request_body)
32
+ result = @shared_values[:client].checkout.payments_api.payment_methods(request_body)
33
33
  response_hash = result.response
34
34
 
35
35
  expect(result.status).
@@ -44,13 +44,6 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
44
44
 
45
45
  it "makes a paymentMethods/balance call" do
46
46
  request_body = JSON.parse(json_from_file("mocks/requests/Checkout/payment_methods_balance.json"))
47
- request_body[:applicationInfo] = {}
48
- request_body[:applicationInfo][:adyenPaymentSource] = {
49
- :name => "adyen-test",
50
- :version => "1.0.0",
51
- }
52
-
53
- @shared_values[:client].add_application_info(request_body)
54
47
 
55
48
  response_body = json_from_file("mocks/responses/Checkout/payment_methods_balance.json")
56
49
 
@@ -66,16 +59,10 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
66
59
  body: response_body
67
60
  )
68
61
 
69
- result = @shared_values[:client].checkout.payment_methods.balance(request_body)
62
+ result = @shared_values[:client].checkout.orders_api.get_balance_of_gift_card(request_body)
70
63
  # result.response is already a Ruby hash (rather than an unparsed JSON string)
71
64
  response_hash = result.response
72
65
 
73
- expect(request_body[:applicationInfo][:adyenLibrary][:name]).
74
- to eq(Adyen::NAME)
75
- expect(request_body[:applicationInfo][:adyenLibrary][:version]).
76
- to eq(Adyen::VERSION)
77
- expect(request_body[:applicationInfo][:adyenPaymentSource][:name]).
78
- to eq("adyen-test")
79
66
  expect(result.status).
80
67
  to eq(200)
81
68
  expect(response_hash).
@@ -91,13 +78,6 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
91
78
  # must be created manually due to payments/details format
92
79
  it "makes a payments/details call" do
93
80
  request_body = JSON.parse(json_from_file("mocks/requests/Checkout/payment-details.json"))
94
- request_body[:applicationInfo] = {}
95
- request_body[:applicationInfo][:adyenPaymentSource] = {
96
- :name => "adyen-test",
97
- :version => "1.0.0",
98
- }
99
-
100
- @shared_values[:client].add_application_info(request_body)
101
81
 
102
82
  response_body = json_from_file("mocks/responses/Checkout/payment-details.json")
103
83
 
@@ -113,16 +93,10 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
113
93
  body: response_body
114
94
  )
115
95
 
116
- result = @shared_values[:client].checkout.payments.details(request_body)
96
+ result = @shared_values[:client].checkout.payments_api.payments_details(request_body)
117
97
  # result.response is already a Ruby hash (rather than an unparsed JSON string)
118
98
  response_hash = result.response
119
99
 
120
- expect(request_body[:applicationInfo][:adyenLibrary][:name]).
121
- to eq(Adyen::NAME)
122
- expect(request_body[:applicationInfo][:adyenLibrary][:version]).
123
- to eq(Adyen::VERSION)
124
- expect(request_body[:applicationInfo][:adyenPaymentSource][:name]).
125
- to eq("adyen-test")
126
100
  expect(result.status).
127
101
  to eq(200)
128
102
  expect(response_hash).
@@ -140,7 +114,6 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
140
114
  # must be created manually due to payments/result format
141
115
  it "makes a payments/result call" do
142
116
  request_body = JSON.parse(json_from_file("mocks/requests/Checkout/payment-result.json"))
143
- @shared_values[:client].add_application_info(request_body)
144
117
 
145
118
  response_body = json_from_file("mocks/responses/Checkout/payment-result.json")
146
119
 
@@ -156,7 +129,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
156
129
  body: response_body
157
130
  )
158
131
 
159
- result = @shared_values[:client].checkout.payments.result(request_body)
132
+ result = @shared_values[:client].checkout.classic_checkout_sdk_api.verify_payment_result(request_body)
160
133
  response_hash = result.response
161
134
 
162
135
  expect(result.status).
@@ -176,13 +149,6 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
176
149
  # must be created manually due to paymentsLinks format
177
150
  it "makes a paymentLinks call" do
178
151
  request_body = JSON.parse(json_from_file("mocks/requests/Checkout/payment_links.json"))
179
- request_body[:applicationInfo] = {}
180
- request_body[:applicationInfo][:adyenPaymentSource] = {
181
- :name => "adyen-test",
182
- :version => "1.0.0",
183
- }
184
-
185
- @shared_values[:client].add_application_info(request_body)
186
152
 
187
153
  response_body = json_from_file("mocks/responses/Checkout/payment_links.json")
188
154
 
@@ -198,7 +164,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
198
164
  body: response_body
199
165
  )
200
166
 
201
- result = @shared_values[:client].checkout.payment_links(request_body)
167
+ result = @shared_values[:client].checkout.payment_links_api.payment_links(request_body)
202
168
  response_hash = result.response
203
169
 
204
170
  expect(result.status).
@@ -226,7 +192,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
226
192
  body: response_body
227
193
  )
228
194
 
229
- result = @shared_values[:client].checkout.payment_links.get("1")
195
+ result = @shared_values[:client].checkout.payment_links_api.get_payment_link("1")
230
196
  response_hash = result.response
231
197
 
232
198
  expect(result.status).
@@ -249,7 +215,6 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
249
215
  :status => "expired",
250
216
  }
251
217
 
252
- @shared_values[:client].add_application_info(request_body)
253
218
  response_body = json_from_file("mocks/responses/Checkout/update-payment-link.json")
254
219
 
255
220
  url = @shared_values[:client].service_url(@shared_values[:service], "paymentLinks/1", @shared_values[:client].checkout.version)
@@ -264,7 +229,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
264
229
  body: response_body
265
230
  )
266
231
 
267
- result = @shared_values[:client].checkout.payment_links.update("1", request_body)
232
+ result = @shared_values[:client].checkout.payment_links_api.update_payment_link(request_body, "1")
268
233
  response_hash = result.response
269
234
 
270
235
  expect(result.status).
@@ -298,7 +263,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
298
263
  body: response_body
299
264
  )
300
265
 
301
- result = @shared_values[:client].checkout.orders(request_body)
266
+ result = @shared_values[:client].checkout.orders_api.orders(request_body)
302
267
  response_hash = result.response
303
268
 
304
269
  expect(result.status).
@@ -330,7 +295,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
330
295
  body: response_body
331
296
  )
332
297
 
333
- result = @shared_values[:client].checkout.orders.cancel(request_body)
298
+ result = @shared_values[:client].checkout.orders_api.cancel_order(request_body)
334
299
  response_hash = result.response
335
300
 
336
301
  expect(result.status).
@@ -362,7 +327,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
362
327
  body: response_body
363
328
  )
364
329
 
365
- result = @shared_values[:client].checkout.apple_pay.sessions(request_body)
330
+ result = @shared_values[:client].checkout.utility_api.get_apple_pay_session(request_body)
366
331
  response_hash = result.response
367
332
 
368
333
  expect(result.status).
@@ -392,7 +357,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
392
357
  )
393
358
  .to_return(body: response_body, status: 201)
394
359
 
395
- result = @shared_values[:client].checkout.sessions(request_body)
360
+ result = @shared_values[:client].checkout.payments_api.sessions(request_body)
396
361
  response_hash = result.response
397
362
 
398
363
  expect(result.status).
@@ -420,7 +385,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
420
385
  )
421
386
  .to_return(body: response_body, status: 201)
422
387
 
423
- result = @shared_values[:client].checkout.modifications.capture("12345", request_body)
388
+ result = @shared_values[:client].checkout.modifications_api.capture_authorised_payment(request_body, "12345")
424
389
  response_hash = result.response
425
390
 
426
391
  expect(result.status).
@@ -452,7 +417,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
452
417
  )
453
418
  .to_return(body: response_body, status: 201)
454
419
 
455
- result = @shared_values[:client].checkout.modifications.cancel("12345", request_body)
420
+ result = @shared_values[:client].checkout.modifications_api.cancel_authorised_payment_by_psp_reference(request_body, "12345")
456
421
  response_hash = result.response
457
422
 
458
423
  expect(result.status).
@@ -484,7 +449,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
484
449
  )
485
450
  .to_return(body: response_body, status: 201)
486
451
 
487
- result = @shared_values[:client].checkout.modifications.refund("12345", request_body)
452
+ result = @shared_values[:client].checkout.modifications_api.refund_captured_payment(request_body, "12345")
488
453
  response_hash = result.response
489
454
 
490
455
  expect(result.status).
@@ -516,7 +481,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
516
481
  )
517
482
  .to_return(body: response_body, status: 201)
518
483
 
519
- result = @shared_values[:client].checkout.modifications.reversal("12345", request_body)
484
+ result = @shared_values[:client].checkout.modifications_api.refund_or_cancel_payment(request_body, "12345")
520
485
  response_hash = result.response
521
486
 
522
487
  expect(result.status).
@@ -548,7 +513,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
548
513
  )
549
514
  .to_return(body: response_body, status: 201)
550
515
 
551
- result = @shared_values[:client].checkout.modifications.amountUpdate("12345", request_body)
516
+ result = @shared_values[:client].checkout.modifications_api.update_authorised_amount(request_body, "12345")
552
517
  response_hash = result.response
553
518
 
554
519
  expect(result.status).
@@ -580,7 +545,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
580
545
  )
581
546
  .to_return(body: response_body, status: 201)
582
547
 
583
- result = @shared_values[:client].checkout.modifications.genericCancel(request_body)
548
+ result = @shared_values[:client].checkout.modifications_api.cancel_authorised_payment(request_body)
584
549
  response_hash = result.response
585
550
 
586
551
  expect(result.status).
@@ -611,7 +576,7 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
611
576
  body: response_body
612
577
  )
613
578
 
614
- result = @shared_values[:client].checkout.stored_payment_methods.get({"merchantAccount" => "TestMerchantAccount", "shopperReference" => "test-1234"})
579
+ result = @shared_values[:client].checkout.recurring_api.get_tokens_for_stored_payment_details(queryParams:{"merchantAccount" => "TestMerchantAccount", "shopperReference" => "test-1234"})
615
580
  response_hash = result.response
616
581
 
617
582
  expect(result.status).
@@ -627,7 +592,6 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
627
592
  end
628
593
 
629
594
  it "makes a delete storedPaymentMethods call" do
630
- response_body = json_from_file("mocks/responses/Checkout/stored_payment_methods.json")
631
595
 
632
596
  url = @shared_values[:client].service_url(@shared_values[:service], "storedPaymentMethods/RL8FW7WZM6KXWD82?merchantAccount=TestMerchantAccount&shopperReference=test-1234", @shared_values[:client].checkout.version)
633
597
  WebMock.stub_request(:delete, url).
@@ -637,28 +601,54 @@ RSpec.describe Adyen::Checkout, service: "checkout" do
637
601
  }
638
602
  ).
639
603
  to_return(
640
- body: response_body
604
+ body: "{}"
641
605
  )
642
606
 
643
- result = @shared_values[:client].checkout.stored_payment_methods.delete("RL8FW7WZM6KXWD82", {"merchantAccount" => "TestMerchantAccount", "shopperReference" => "test-1234"})
607
+ result = @shared_values[:client].checkout.recurring_api.delete_token_for_stored_payment_details("RL8FW7WZM6KXWD82", queryParams:{"merchantAccount" => "TestMerchantAccount", "shopperReference" => "test-1234"})
644
608
  response_hash = result.response
645
609
 
646
610
  expect(result.status).
647
611
  to eq(200)
648
612
  end
649
613
 
650
- # create client for automated tests
651
- client = create_client(:api_key)
614
+ it "tests sending the application headers" do
615
+ response_body = json_from_file("mocks/responses/Checkout/stored_payment_methods.json")
616
+
617
+ url = @shared_values[:client].service_url(@shared_values[:service], "storedPaymentMethods?merchantAccount=TestMerchantAccount&shopperReference=test-1234", @shared_values[:client].checkout.version)
618
+ WebMock.stub_request(:get, url).
619
+ with(
620
+ headers: {
621
+ "x-api-key" => @shared_values[:client].api_key
622
+ }
623
+ ).
624
+ to_return(
625
+ body: response_body
626
+ )
627
+
628
+ result = @shared_values[:client].checkout.recurring_api.get_tokens_for_stored_payment_details(queryParams:{"merchantAccount" => "TestMerchantAccount", "shopperReference" => "test-1234"})
629
+ expect(
630
+ a_request(:get, "http://localhost:3001/v70/storedPaymentMethods?merchantAccount=TestMerchantAccount&shopperReference=test-1234")
631
+ .with(headers: {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Adyen-Library-Name'=>'adyen-ruby-api-library', 'Adyen-Library-Version'=>'7.0.1', 'Content-Type'=>'application/json', 'User-Agent'=>'adyen-ruby-api-library/7.0.1', 'X-Api-Key'=>'api_key'})
632
+ ).to have_been_made.once
633
+ end
634
+
635
+ # must be created manually because every field in the response is an array
636
+ it "makes a LIVE paymentMethods call" do
637
+ request_body = JSON.parse(json_from_file("mocks/requests/Checkout/payment_methods.json"))
638
+
639
+ response_body = json_from_file("mocks/responses/Checkout/payment_methods.json")
652
640
 
653
- # methods / fields to test on
654
- # format is defined in spec_helper
655
- test_sets = [
656
- ["payment_session", "publicKeyToken", "8115054323780109"],
657
- ["payments", "resultCode", "Authorised"],
658
- ["origin_keys", "originKeys", { "https://adyen.com" => "mocked_origin_key" }]
659
- ]
641
+ adyen = Adyen::Client.new
642
+ adyen.api_key = 'AF5XXXXXXXXXXXXXXXXXXXX'
643
+ adyen.env = :live
644
+ adyen.live_url_prefix = "prefix"
645
+ url = adyen.service_url("Checkout", "paymentMethods", @shared_values[:client].checkout.version)
646
+
647
+ expect(url).
648
+ to eq("https://prefix-checkout-live.adyenpayments.com/checkout/v70/paymentMethods")
649
+
650
+ end
660
651
 
661
- generate_tests(client, "Checkout", test_sets, client.checkout)
662
652
  end
663
653
 
664
654
  # rubocop:enable Metrics/BlockLength
data/spec/client_spec.rb CHANGED
@@ -25,15 +25,15 @@ RSpec.describe Adyen do
25
25
  end
26
26
 
27
27
  it "fails payments call without WS user and password" do
28
- expect{ @shared_values[:client].payments.authorise("{}") }.
28
+ expect{ @shared_values[:client].payment.authorise("{}") }.
29
29
  to raise_error(Adyen::AuthenticationError)
30
30
  @shared_values[:client].ws_user = @shared_values[:ws_user]
31
- expect{ @shared_values[:client].payments.authorise("{}") }.
31
+ expect{ @shared_values[:client].payment.authorise("{}") }.
32
32
  to raise_error(Adyen::AuthenticationError)
33
33
  end
34
34
 
35
35
  it "fails a checkout call without api key" do
36
- expect{ @shared_values[:client].checkout.payment_methods("{}") }.
36
+ expect{ @shared_values[:client].checkout.payments_api.payment_methods("{}") }.
37
37
  to raise_error(Adyen::AuthenticationError)
38
38
  @shared_values[:client].api_key = "api_key"
39
39
  end
@@ -60,28 +60,41 @@ RSpec.describe Adyen do
60
60
  client = Adyen::Client.new(env: :test)
61
61
  client.live_url_prefix = "abcdef1234567890-TestCompany"
62
62
  expect(client.service_url_base("Account")).
63
- to eq("https://cal-test.adyen.com/cal/services")
63
+ to eq("https://cal-test.adyen.com/cal/services/Account")
64
64
  end
65
65
 
66
66
  it "generates the correct service URL base for CAL LIVE" do
67
67
  client = Adyen::Client.new(env: :live)
68
68
  client.live_url_prefix = "abcdef1234567890-TestCompany"
69
69
  expect(client.service_url_base("Account")).
70
- to eq("https://cal-live.adyen.com/cal/services")
70
+ to eq("https://cal-live.adyen.com/cal/services/Account")
71
71
  end
72
72
 
73
73
  it "generates the correct service URL base for PAL TEST" do
74
74
  client = Adyen::Client.new(env: :test)
75
75
  client.live_url_prefix = "abcdef1234567890-TestCompany"
76
76
  expect(client.service_url_base("Payment")).
77
- to eq("https://pal-test.adyen.com/pal/servlet")
77
+ to eq("https://pal-test.adyen.com/pal/servlet/Payment")
78
78
  end
79
79
 
80
80
  it "generates the correct service URL base for PAL LIVE" do
81
81
  client = Adyen::Client.new(env: :live)
82
82
  client.live_url_prefix = "abcdef1234567890-TestCompany"
83
83
  expect(client.service_url_base("Payment")).
84
- to eq("https://abcdef1234567890-TestCompany-pal-live.adyenpayments.com/pal/servlet")
84
+ to eq("https://abcdef1234567890-TestCompany-pal-live.adyenpayments.com/pal/servlet/Payment")
85
+ end
86
+
87
+ it "generates the correct service URL PAL authorise TEST" do
88
+ client = Adyen::Client.new(env: :test)
89
+ expect(client.service_url("Payment", "authorise", "68")).
90
+ to eq("https://pal-test.adyen.com/pal/servlet/Payment/v68/authorise")
91
+ end
92
+
93
+ it "generates the correct service URL base for PAL LIVE" do
94
+ client = Adyen::Client.new(env: :live)
95
+ client.live_url_prefix = "abcdef1234567890-TestCompany"
96
+ expect(client.service_url("Payment", "authorise", "68")).
97
+ to eq("https://abcdef1234567890-TestCompany-pal-live.adyenpayments.com/pal/servlet/Payment/v68/authorise")
85
98
  end
86
99
 
87
100
  it "generates a new set of ConnectionOptions when none are provided" do
@@ -108,6 +121,72 @@ RSpec.describe Adyen do
108
121
  expect(Adyen::AdyenResult).to receive(:new)
109
122
  expect(Faraday).to receive(:new).with("http://localhost:3001/v70/payments/details", connection_options).and_return(mock_faraday_connection)
110
123
  expect(mock_faraday_connection).to receive(:post).and_return(mock_response)
111
- client.checkout.payments.details(request_body)
112
- end
124
+ client.checkout.payments_api.payments_details(request_body)
125
+ end
126
+
127
+ it "checks the creation of checkout url" do
128
+ client = Adyen::Client.new(api_key: "api_key", env: :test)
129
+ expect(client.service_url("Checkout", "paymentMethods", "70")).
130
+ to eq("https://checkout-test.adyen.com/v70/paymentMethods")
131
+ end
132
+
133
+ it "checks the creation of checkout url" do
134
+ client = Adyen::Client.new(api_key: "api_key", env: :live, live_url_prefix: "YourLiveUrlPrefix")
135
+ expect(client.service_url("Checkout", "paymentMethods", "70")).
136
+ to eq("https://YourLiveUrlPrefix-checkout-live.adyenpayments.com/checkout/v70/paymentMethods")
137
+ end
138
+ it "checks the creation of lem url" do
139
+ client = Adyen::Client.new(api_key: "api_key", env: :live)
140
+ expect(client.service_url("LegalEntityManagement", "businessLines", "3")).
141
+ to eq("https://kyc-live.adyen.com/lem/v3/businessLines")
142
+ end
143
+
144
+ it "checks the creation of balancePlatform url" do
145
+ client = Adyen::Client.new(api_key: "api_key", env: :live)
146
+ expect(client.service_url("BalancePlatform", "legalEntities", "1")).
147
+ to eq("https://balanceplatform-api-live.adyen.com/bcl/v1/legalEntities")
148
+ end
149
+
150
+ it "checks the creation of balancePlatform url" do
151
+ client = Adyen::Client.new(api_key: "api_key", env: :test)
152
+ expect(client.service_url("BalancePlatform", "legalEntities", "1")).
153
+ to eq("https://balanceplatform-api-test.adyen.com/bcl/v1/legalEntities")
154
+ end
155
+
156
+ it "checks the creation of transfers url" do
157
+ client = Adyen::Client.new(api_key: "api_key", env: :test)
158
+ expect(client.service_url("Transfers", "transactions", "1")).
159
+ to eq("https://balanceplatform-api-test.adyen.com/btl/v1/transactions")
160
+ end
161
+
162
+ it "checks the creation of management url" do
163
+ client = Adyen::Client.new(api_key: "api_key", env: :test)
164
+ expect(client.service_url("Management", "companies", "1")).
165
+ to eq("https://management-test.adyen.com/v1/companies")
166
+ end
167
+
168
+ it "checks the creation of binLookup url" do
169
+ client = Adyen::Client.new(api_key: "api_key", env: :test)
170
+ expect(client.service_url("BinLookup", "getCostEstimate", "54")).
171
+ to eq("https://pal-test.adyen.com/pal/servlet/BinLookup/v54/getCostEstimate")
172
+ end
173
+
174
+ it "check the creation of storedValue url" do
175
+ client = Adyen::Client.new(api_key: "api_key", env: :test)
176
+ expect(client.service_url("StoredValue", "issue", "46")).
177
+ to eq("https://pal-test.adyen.com/pal/servlet/StoredValue/v46/issue")
178
+ end
179
+
180
+ it "check the creation of payout url" do
181
+ client = Adyen::Client.new(api_key: "api_key", env: :test)
182
+ expect(client.service_url("Payout", "declineThirdParty", "68")).
183
+ to eq("https://pal-test.adyen.com/pal/servlet/Payout/v68/declineThirdParty")
184
+ end
185
+
186
+ it "checks the creation of PosTerminalManagement url" do
187
+ client = Adyen::Client.new(api_key: "api_key", env: :test)
188
+ expect(client.service_url("PosTerminalManagement", "assignTerminals", "1")).
189
+ to eq("https://postfmapi-test.adyen.com/postfmapi/terminal/v1/assignTerminals")
190
+ end
191
+
113
192
  end
data/spec/fund_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- RSpec.describe Adyen::Payments, service: "marketpay fund service" do
3
+ RSpec.describe Adyen::Payment, service: "marketpay fund service" do
4
4
  # client instance to be used in dynamically generated tests
5
5
  client = create_client(:basic)
6
6
 
data/spec/hop_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- RSpec.describe Adyen::Payments, service: "marketpay hop service" do
3
+ RSpec.describe Adyen::Payment, service: "marketpay hop service" do
4
4
  # client instance to be used in dynamically generated tests
5
5
  client = create_client(:basic)
6
6
 
data/spec/lem_spec.rb ADDED
@@ -0,0 +1,68 @@
1
+ require "spec_helper"
2
+ require "json"
3
+
4
+ # rubocop:disable Metrics/BlockLength
5
+
6
+ RSpec.describe Adyen::LegalEntityManagement, service: "LegalEntityManagement" do
7
+ before(:all) do
8
+ @shared_values = {
9
+ client: create_client(:api_key),
10
+ service: "LegalEntityManagement",
11
+ }
12
+ end
13
+
14
+ # must be created manually because every field in the response is an array
15
+ it "makes a business_lines POST call" do
16
+ request_body = JSON.parse(json_from_file("mocks/requests/LegalEntityManagement/create_business_line.json"))
17
+
18
+ response_body = json_from_file("mocks/responses/LegalEntityManagement/create_business_line.json")
19
+
20
+ url = @shared_values[:client].service_url(@shared_values[:service], "businessLines", @shared_values[:client].legal_entity_management.version)
21
+ WebMock.stub_request(:post, url).
22
+ with(
23
+ body: request_body,
24
+ headers: {
25
+ "x-api-key" => @shared_values[:client].api_key
26
+ }
27
+ ).
28
+ to_return(
29
+ body: response_body
30
+ )
31
+
32
+ result = @shared_values[:client].legal_entity_management.business_lines_api.create_business_line(request_body)
33
+ response_hash = result.response
34
+
35
+ expect(result.status).
36
+ to eq(200)
37
+ expect(response_hash).
38
+ to eq(JSON.parse(response_body))
39
+ expect(response_hash).
40
+ to be_a Adyen::HashWithAccessors
41
+ expect(response_hash).
42
+ to be_a_kind_of Hash
43
+ end
44
+
45
+ it "makes a documents DELETE call" do
46
+
47
+
48
+ url = @shared_values[:client].service_url(@shared_values[:service], "documents/123", @shared_values[:client].legal_entity_management.version)
49
+ WebMock.stub_request(:delete, url).
50
+ with(
51
+ headers: {
52
+ "x-api-key" => @shared_values[:client].api_key
53
+ }
54
+ ).
55
+ to_return(
56
+ body: "{}"
57
+ )
58
+
59
+ result = @shared_values[:client].legal_entity_management.documents_api.delete_document('123')
60
+ response_hash = result.response
61
+
62
+ expect(result.status).
63
+ to eq(200)
64
+ end
65
+
66
+
67
+ end
68
+
@@ -0,0 +1,68 @@
1
+ require "spec_helper"
2
+ require "json"
3
+
4
+ # rubocop:disable Metrics/BlockLength
5
+
6
+ RSpec.describe Adyen::Management, service: "Management" do
7
+ before(:all) do
8
+ @shared_values = {
9
+ client: create_client(:api_key),
10
+ service: "Management",
11
+ }
12
+ end
13
+
14
+ # must be created manually because every field in the response is an array
15
+ it "makes a companies GET call" do
16
+ response_body = json_from_file("mocks/responses/Management/get_companies.json")
17
+
18
+ url = @shared_values[:client].service_url(@shared_values[:service], "companies", @shared_values[:client].management.version)
19
+ WebMock.stub_request(:get, url).
20
+ with(
21
+ headers: {
22
+ "x-api-key" => @shared_values[:client].api_key
23
+ }
24
+ ).
25
+ to_return(
26
+ body: response_body
27
+ )
28
+
29
+ result = @shared_values[:client].management.account_company_level_api.list_company_accounts()
30
+ response_hash = result.response
31
+
32
+ expect(result.status).
33
+ to eq(200)
34
+ expect(response_hash).
35
+ to eq(JSON.parse(response_body))
36
+ expect(response_hash).
37
+ to be_a Adyen::HashWithAccessors
38
+ expect(response_hash).
39
+ to be_a_kind_of Hash
40
+ end
41
+
42
+ it "makes a create_store POST call" do
43
+ request_body = JSON.parse(json_from_file("mocks/responses/LegalEntityManagement/create_business_line.json"))
44
+
45
+ response_body = json_from_file("mocks/responses/LegalEntityManagement/create_business_line.json")
46
+
47
+ url = @shared_values[:client].service_url(@shared_values[:service], "merchants/merchantID/stores", @shared_values[:client].management.version)
48
+ WebMock.stub_request(:post, url).
49
+ with(
50
+ body: request_body,
51
+ headers: {
52
+ "x-api-key" => @shared_values[:client].api_key
53
+ }
54
+ ).
55
+ to_return(
56
+ body: response_body
57
+ )
58
+
59
+ result = @shared_values[:client].management.account_store_level_api.create_store_by_merchant_id(request_body, 'merchantID')
60
+ response_hash = result.response
61
+
62
+ expect(result.status).
63
+ to eq(200)
64
+ end
65
+
66
+
67
+ end
68
+
@@ -0,0 +1,10 @@
1
+ {
2
+ "amount": {
3
+ "value": 50000,
4
+ "currency": "EUR"
5
+ },
6
+ "description": "Your description for the transfer",
7
+ "fromMerchant": "MerchantAccount_NL",
8
+ "toMerchant": "MerchantAccount_DE",
9
+ "type": "debit"
10
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "description": "Liable account holder used for international payments and payouts",
3
+ "reference": "S.Eller-001",
4
+ "legalEntityId": "LE322JV223222D5GG42KN6869"
5
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "description": "Liable account holder used for international payments and payouts",
3
+ "reference": "S.Eller-001",
4
+ "legalEntityId": "LE322JV223222D5GG42KN6869",
5
+ "capabilities": {
6
+ "receivePayments": {
7
+ "requested": true
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "service": "banking",
3
+ "industryCode": "4531",
4
+ "webData": [
5
+ {
6
+ "webAddress": "https://www.adyen.com"
7
+ }
8
+ ],
9
+ "legalEntityId": "YOUR_LEGAL_ENTITY",
10
+ "sourceOfFunds": {
11
+ "type": "business",
12
+ "adyenProcessedFunds": false,
13
+ "description": "Funds from my flower shop business"
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "description": "City centre store",
3
+ "shopperStatement": "Springfield Shop",
4
+ "phoneNumber": "1813702551707653",
5
+ "reference": "Spring_store_2",
6
+ "address": {
7
+ "country": "US",
8
+ "line1": "200 Main Street",
9
+ "line2": "Building 5A",
10
+ "line3": "Suite 3",
11
+ "city": "Springfield",
12
+ "stateOrProvince": "NY",
13
+ "postalCode": "20250"
14
+ }
15
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "permits": "object",
3
+ "merchantAccount": "TestMerchant",
4
+ "shopperReference": "shopperReference",
5
+ "recurringDetailsReference": "object"
6
+ }