adyen-ruby-api-library 6.3.0 → 7.0.0

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 (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 +66 -38
  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 +39 -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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 45627b45fc5df26d004c1a86d7640412d615383ccac35201f24f0e3ebed99394
4
- data.tar.gz: 72a067ba4b95419ed87e526a371db2377d5b1af7056f9ac035a6e11327715da0
3
+ metadata.gz: 8a353164deda5fc44de3ec027f4022732e9c4afdb1a5bfacf91704e9d8c9e90a
4
+ data.tar.gz: 1f1f2d92d0f9528a9c6945da699a3a9d8a05e0594c7fe4d2fb66ad8c85c01c77
5
5
  SHA512:
6
- metadata.gz: a893d921b3236805bb89b6ca5fc1c553888d010c84c1927689f6bc47e1a78b23302c081edbc979d596ac70c0b6f23cad61b9a83cc11c6f8b22e1d73520951bdb
7
- data.tar.gz: 3cc14ff3d1550ffb11f6ec08c37ae7858b5e39e1b14023e6323e3a132441b59ee383e39ca6db6dcb83eff24e4b9ae937bff416bc9684e1ba6cb8ba7b20e37405
6
+ metadata.gz: a8d4190c1cbb857fa27ca0134a34b559c4e30c46d9397bce514b5894820c6fc0a33e4af10076953a27bfe5c36e3ab06558a55264c34a1ae3acfc26c818786979
7
+ data.tar.gz: be1328cdf8c4592cf0c3dc6573c1a248b761efc30f01e4eb997744234295c397c35b3b2755ab07593f6d5f1e776287daedf8f98493f462492e1f2284bcfda346
data/.gitignore CHANGED
@@ -15,3 +15,6 @@ design.txt
15
15
  .DS_Store
16
16
 
17
17
  .idea
18
+ main.rb
19
+ build/
20
+ openapi-generator-cli-6.0.1.jar
data/Makefile ADDED
@@ -0,0 +1,72 @@
1
+ generator:=ruby
2
+ openapi-generator-version:=6.4.0
3
+ openapi-generator-url:=https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/$(openapi-generator-version)/openapi-generator-cli-$(openapi-generator-version).jar
4
+ openapi-generator-jar:=build/openapi-generator-cli.jar
5
+ openapi-generator-cli:=java -jar build/openapi-generator-cli.jar
6
+ output:=build/out
7
+
8
+ services:=balancePlatform checkout legalEntityManagement management payout platformsAccount platformsFund platformsHostedOnboardingPage platformsNotificationConfiguration transfers
9
+ singleFileServices:=balanceControlService binLookup dataProtection recurring storedValue posTerminalManagement payment
10
+
11
+ binLookup: spec=BinLookupService-v54
12
+ checkout: spec=CheckoutService-v70
13
+ dataProtection: spec=DataProtectionService-v1
14
+ storedValue: spec=StoredValueService-v46
15
+ posTerminalManagement: spec=TfmAPIService-v1
16
+ payment: spec=PaymentService-v68
17
+ recurring: spec=RecurringService-v68
18
+ payout: spec=PayoutService-v68
19
+ management: spec=ManagementService-v1
20
+ legalEntityManagement: spec=LegalEntityService-v3
21
+ balancePlatform: spec=BalancePlatformService-v2
22
+ platformsAccount: spec=AccountService-v6
23
+ platformsFund: spec=FundService-v6
24
+ platformsNotificationConfiguration: spec=NotificationConfigurationService-v6
25
+ platformsHostedOnboardingPage: spec=HopService-v6
26
+ transfers: spec=TransferService-v3
27
+ balanceControlService: spec=BalanceControlService-v1
28
+
29
+ allServices: $(services) $(singleFileServices)
30
+
31
+ $(services): build/spec $(openapi-generator-jar)
32
+ wget $(openapi-generator-url) -O build/openapi-generator-cli.jar
33
+ rm -rf $(output)
34
+ $(openapi-generator-cli) generate \
35
+ -i build/spec/json/$(spec).json \
36
+ -g $(generator) \
37
+ -c ./templates/config.yaml \
38
+ -o $(output) \
39
+ --global-property apis,apiTests=false,apiDocs=false,supportingFiles=api-single.rb\
40
+ --additional-properties serviceName=$@\
41
+ --skip-validate-spec
42
+ rm -f $(output)/lib/openapi_client/api/*-small.rb
43
+ mkdir -p lib/adyen/services/$@
44
+ mv $(output)/lib/openapi_client/api/*.rb lib/adyen/services/$@
45
+ mv $(output)/api/api-single.rb lib/adyen/services/$@.rb
46
+ rm -rf $(output)
47
+
48
+ $(singleFileServices): build/spec
49
+ wget $(openapi-generator-url) -O build/openapi-generator-cli.jar
50
+ cat <<< "$$(jq 'del(.paths[][].tags)' build/spec/json/$(spec).json)" > build/spec/json/$(spec).json
51
+ rm -rf $(output)
52
+ $(openapi-generator-cli) generate \
53
+ -i build/spec/json/$(spec).json \
54
+ -g $(generator) \
55
+ -c ./templates/config.yaml \
56
+ -o $(output) \
57
+ --global-property apis,apiTests=false,apiDocs=false\
58
+ --additional-properties serviceName=$@\
59
+ --skip-validate-spec
60
+ mv $(output)/lib/openapi_client/api/default_api-small.rb lib/adyen/services/$@.rb
61
+ rm -rf $(output)
62
+
63
+ templates: $(openapi-generator-jar)
64
+ $(openapi-generator-cli) author template -g $(generator) -o build/templates
65
+
66
+ # Download the generator
67
+ $(openapi-generator-jar):
68
+ wget --quiet -o /dev/null $(openapi-generator-url) -O $(openapi-generator-jar)
69
+
70
+ build/spec:
71
+ git clone https://github.com/Adyen/adyen-openapi.git build/spec
72
+ perl -i -pe's/"openapi" : "3.[0-9].[0-9]"/"openapi" : "3.0.0"/' build/spec/json/*.json
data/README.md CHANGED
@@ -1,24 +1,26 @@
1
+ ![Ruby](https://user-images.githubusercontent.com/93914435/236416787-3da4dd32-0a7d-43f7-9aa4-8d77697c85f9.png)
1
2
  # Adyen API Library for Ruby
2
3
 
3
-
4
4
  This is the officially supported Ruby library for using Adyen's APIs.
5
5
 
6
- ## Integration
7
- The library supports all APIs under the following services:
8
-
9
- * [Checkout API](https://docs.adyen.com/api-explorer/#/CheckoutService/v68/overview): Our latest integration for accepting online payments. Current supported version: **v68**
10
- * [Payments API](https://docs.adyen.com/api-explorer/#/Payment/v64/overview): Our classic integration for online payments. Current supported version: **v64**
11
- * [Recurring API](https://docs.adyen.com/api-explorer/#/Recurring/v49/overview): Endpoints for managing saved payment details. Current supported version: **v49**
12
- * [Payouts API](https://docs.adyen.com/api-explorer/#/Payout/v64/overview): Endpoints for sending funds to your customers. Current supported version: **v64**
13
- * [Platforms APIs](https://docs.adyen.com/platforms/api): Set of APIs when using Adyen for Platforms.
14
- * [Account API](https://docs.adyen.com/api-explorer/#/Account/v6/overview) Current supported version: **v6**
15
- * [Fund API](https://docs.adyen.com/api-explorer/#/Fund/v6/overview) Current supported version: **v6**
16
- * [Notification Configuration API](https://docs.adyen.com/api-explorer/#/NotificationConfigurationService/v6/overview) Current supported version: **v6**
17
- * [POS Terminal Management API](https://docs.adyen.com/api-explorer/#/postfmapi/v1/overview): Current supported version: **v1**
18
- * [Adyen BinLookup API](https://docs.adyen.com/api-explorer/#/BinLookup/v50/overview): Current supported version: **v50**
19
- * [Data Protection API](https://docs.adyen.com/development-resources/data-protection-api): Current supported version: **v1**
20
- * [Disputes API](https://docs.adyen.com/risk-management/disputes-api): Current supported version: **v50**
21
-
6
+ ## Supported APIs
7
+
8
+ This library supports the following:
9
+
10
+ | API name | API version | Description | API object |
11
+ |----------|:-----------:|-------------|------------|
12
+ | [BIN lookup API](https://docs.adyen.com/api-explorer/#/BinLookup/v52/overview) | v54 | The BIN Lookup API provides endpoints for retrieving information based on a given BIN. | [BinLookup](lib/adyen/services/binLookup.rb) |
13
+ | [Checkout API](https://docs.adyen.com/api-explorer/#/CheckoutService/v69/overview) | v70 | Our latest integration for accepting online payments. | [CheckoutAPI](lib/adyen/services/checkout.rb) |
14
+ | [Configuration API](https://docs.adyen.com/api-explorer/#/balanceplatform/v2/overview) | v2 | The Configuration API enables you to create a platform where you can onboard your users as account holders and create balance accounts, cards, and business accounts. | [BalancePlatform](lib/adyen/services/balancePlatform.rb) |
15
+ | [DataProtection API](https://docs.adyen.com/development-resources/data-protection-api) | v1 | Adyen Data Protection API provides a way for you to process [Subject Erasure Requests](https://gdpr-info.eu/art-17-gdpr/) as mandated in GDPR. Use our API to submit a request to delete shopper's data, including payment details and other related information (for example, delivery address or shopper email) | [DataProtection](lib/adyen/services/dataProtection.rb) |
16
+ | [Legal Entity Management API](https://docs.adyen.com/api-explorer/#/legalentity/v3/overview) | v3 | Manage legal entities that contain information required for verification. | [LegalEntityManagement](lib/adyen/services/legalEntityManagement.rb) |
17
+ | [Management API](https://docs.adyen.com/api-explorer/#/ManagementService/v1/overview) | v1 | Configure and manage your Adyen company and merchant accounts, stores, and payment terminals. | [Management](lib/adyen/services/management.rb) |
18
+ | [Payments API](https://docs.adyen.com/api-explorer/#/Payment/v68/overview) | v68 | Our classic integration for online payments. | [Classic Integration API](lib/adyen/services/payment.rb) |
19
+ | [Payouts API](https://docs.adyen.com/api-explorer/#/Payout/v68/overview) | v68 | Endpoints for sending funds to your customers. | [Payout](lib/adyen/services/payout.rb) |
20
+ | [POS Terminal Management API](https://docs.adyen.com/api-explorer/#/postfmapi/v1/overview) | v1 | Endpoints for managing your point-of-sale payment terminals. | [TerminalManagement](lib/adyen/services/posTerminalManagement.rb) |
21
+ | [Recurring API](https://docs.adyen.com/api-explorer/#/Recurring/v68/overview) | v68 | Endpoints for managing saved payment details. | [Recurring](lib/adyen/services/recurring.rb) |
22
+ | [Stored Value API](https://docs.adyen.com/payment-methods/gift-cards/stored-value-api) | v46 | Manage both online and point-of-sale gift cards and other stored-value cards. | [StoredValue](lib/adyen/services/storedValue.rb) |
23
+ | [Transfers API](https://docs.adyen.com/api-explorer/transfers/3/overview) | v3 | The Transfers API provides endpoints that can be used to get information about all your transactions, move funds within your balance platform or send funds from your balance platform to a transfer instrument. | [Transfers](lib/adyen/services/transfers.rb) |
22
24
 
23
25
  For more information, refer to our [documentation](https://docs.adyen.com/) or the [API Explorer](https://docs.adyen.com/api-explorer/).
24
26
 
@@ -64,7 +66,7 @@ adyen.api_key = 'AF5XXXXXXXXXXXXXXXXXXXX'
64
66
 
65
67
  - Make a Payment
66
68
  ~~~~ruby
67
- response = adyen.checkout.payments({
69
+ response = adyen.checkout.payments_api.payments({
68
70
  :amount => {
69
71
  :currency => "EUR",
70
72
  :value => 1000
data/lib/adyen/client.rb CHANGED
@@ -35,30 +35,43 @@ module Adyen
35
35
 
36
36
  # base URL for API given service and @env
37
37
  def service_url_base(service)
38
- raise ArgumentError, "Please set Client.live_url_prefix to the portion of your merchant-specific URL prior to '-[service]-live.adyenpayments.com'" if @live_url_prefix.nil? and @env == :live
39
38
  if @env == :mock
40
39
  @mock_service_url_base
41
40
  else
42
41
  case service
43
42
  when "Checkout"
44
- url = "https://checkout-#{@env}.adyen.com/checkout"
43
+ url = "https://checkout-#{@env}.adyen.com"
45
44
  supports_live_url_prefix = true
46
45
  when "Account", "Fund", "Notification", "Hop"
47
- url = "https://cal-#{@env}.adyen.com/cal/services"
46
+ url = "https://cal-#{@env}.adyen.com/cal/services/#{service}"
48
47
  supports_live_url_prefix = false
49
- when "Recurring", "Payment", "Payout", "BinLookup"
50
- url = "https://pal-#{@env}.adyen.com/pal/servlet"
48
+ when "Recurring", "Payment", "Payout", "BinLookup", "StoredValue", "BalanceControlService"
49
+ url = "https://pal-#{@env}.adyen.com/pal/servlet/#{service}"
51
50
  supports_live_url_prefix = true
52
- when "Terminal"
51
+ when "PosTerminalManagement"
53
52
  url = "https://postfmapi-#{@env}.adyen.com/postfmapi/terminal"
54
53
  supports_live_url_prefix = false
55
54
  when "DataProtectionService", "DisputeService"
56
- url = "https://ca-#{@env}.adyen.com/ca/services"
55
+ url = "https://ca-#{@env}.adyen.com/ca/services/#{service}"
56
+ supports_live_url_prefix = false
57
+ when "LegalEntityManagement"
58
+ url = "https://kyc-#{@env}.adyen.com/lem"
59
+ supports_live_url_prefix = false
60
+ when "BalancePlatform"
61
+ url = "https://balanceplatform-api-#{@env}.adyen.com/bcl"
62
+ supports_live_url_prefix = false
63
+ when "Transfers"
64
+ url = "https://balanceplatform-api-#{@env}.adyen.com/btl"
65
+ supports_live_url_prefix = false
66
+ when "Management"
67
+ url = "https://management-#{@env}.adyen.com"
57
68
  supports_live_url_prefix = false
58
69
  else
59
70
  raise ArgumentError, "Invalid service specified"
60
71
  end
61
-
72
+
73
+ raise ArgumentError, "Please set Client.live_url_prefix to the portion of your merchant-specific URL prior to '-[service]-live.adyenpayments.com'" \
74
+ if @live_url_prefix.nil? and @env == :live and supports_live_url_prefix
62
75
  if @env == :live && supports_live_url_prefix
63
76
  url.insert(8, "#{@live_url_prefix}-")
64
77
  url["adyen.com"] = "adyenpayments.com"
@@ -70,11 +83,7 @@ module Adyen
70
83
 
71
84
  # construct full URL from service and endpoint
72
85
  def service_url(service, action, version)
73
- if service == "Checkout" || service == "Terminal"
74
- "#{service_url_base(service)}/v#{version}/#{action}"
75
- else
76
- "#{service_url_base(service)}/#{service}/v#{version}/#{action}"
77
- end
86
+ "#{service_url_base(service)}/v#{version}/#{action}"
78
87
  end
79
88
 
80
89
  # send request to adyen API
@@ -121,6 +130,10 @@ module Adyen
121
130
  headers.map do |key, value|
122
131
  faraday.headers[key] = value
123
132
  end
133
+
134
+ # add library headers
135
+ faraday.headers["adyen-library-name"] = Adyen::NAME
136
+ faraday.headers["adyen-library-version"] = Adyen::VERSION
124
137
  end
125
138
  # if json string convert to hash
126
139
  # needed to add applicationInfo
@@ -128,10 +141,6 @@ module Adyen
128
141
  request_data = JSON.parse(request_data)
129
142
  end
130
143
 
131
- # add application only on checkout service
132
- if with_application_info
133
- add_application_info(request_data)
134
- end
135
144
 
136
145
  # convert to json
137
146
  request_data = request_data.to_json
@@ -160,7 +169,7 @@ module Adyen
160
169
  raise connection_error, "Connection to #{url} failed"
161
170
  end
162
171
  end
163
- else
172
+ if action.fetch(:method) == 'post'
164
173
  # post request to Adyen
165
174
  begin
166
175
  response = conn.post do |req|
@@ -169,8 +178,16 @@ module Adyen
169
178
  rescue Faraday::ConnectionFailed => connection_error
170
179
  raise connection_error, "Connection to #{url} failed"
171
180
  end
181
+ end
182
+ else
183
+ begin
184
+ response = conn.post do |req|
185
+ req.body = request_data
186
+ end # handle client errors
187
+ rescue Faraday::ConnectionFailed => connection_error
188
+ raise connection_error, "Connection to #{url} failed"
189
+ end
172
190
  end
173
-
174
191
  # check for API errors
175
192
  case response.status
176
193
  when 401
@@ -189,31 +206,18 @@ module Adyen
189
206
  formatted_response
190
207
  end
191
208
 
192
- # add application_info for analytics
193
- def add_application_info(request_data)
194
- adyenLibrary = {
195
- :name => Adyen::NAME,
196
- :version => Adyen::VERSION.to_s,
197
- }
198
-
199
- if request_data[:applicationInfo].nil?
200
- request_data[:applicationInfo] = {}
201
- end
202
-
203
- request_data[:applicationInfo][:adyenLibrary] = adyenLibrary
204
- end
205
209
 
206
210
  # services
207
211
  def checkout
208
212
  @checkout ||= Adyen::Checkout.new(self)
209
213
  end
210
214
 
211
- def payments
212
- @payments ||= Adyen::Payments.new(self)
215
+ def payment
216
+ @payment ||= Adyen::Payment.new(self)
213
217
  end
214
218
 
215
- def payouts
216
- @payouts ||= Adyen::Payouts.new(self)
219
+ def payout
220
+ @payout ||= Adyen::Payout.new(self)
217
221
  end
218
222
 
219
223
  def recurring
@@ -224,8 +228,8 @@ module Adyen
224
228
  @marketpay ||= Adyen::Marketpay::Marketpay.new(self)
225
229
  end
226
230
 
227
- def postfmapi
228
- @postfmapi ||= Adyen::PosTerminalManagement.new(self)
231
+ def pos_terminal_management
232
+ @pos_terminal_management ||= Adyen::PosTerminalManagement.new(self)
229
233
  end
230
234
 
231
235
  def data_protection
@@ -239,5 +243,29 @@ module Adyen
239
243
  def bin_lookup
240
244
  @bin_lookup ||= Adyen::BinLookup.new(self)
241
245
  end
246
+
247
+ def legal_entity_management
248
+ @legal_entity_management ||= Adyen::LegalEntityManagement.new(self)
249
+ end
250
+
251
+ def balance_platform
252
+ @balance_platform ||= Adyen::BalancePlatform.new(self)
253
+ end
254
+
255
+ def transfers
256
+ @transfers ||= Adyen::Transfers.new(self)
257
+ end
258
+
259
+ def management
260
+ @management ||= Adyen::Management.new(self)
261
+ end
262
+
263
+ def stored_value
264
+ @stored_value ||=Adyen::StoredValue.new(self)
265
+ end
266
+
267
+ def balance_control_service
268
+ @balance_control_service ||=Adyen::BalanceControlService.new(self)
269
+ end
242
270
  end
243
271
  end
@@ -0,0 +1,28 @@
1
+ require_relative './service'
2
+ module Adyen
3
+
4
+
5
+ class BalanceControlService < Service
6
+ attr_accessor :service, :version
7
+ DEFAULT_VERSION = 1
8
+
9
+ def initialize(client, version = DEFAULT_VERSION)
10
+ @service = "BalanceControlService"
11
+ @client = client
12
+ @version = version
13
+ end
14
+
15
+ def balance_transfer(request, headers: {} )
16
+ """
17
+ Start a balance transfer
18
+ """
19
+ endpoint = "/balanceTransfer".gsub(/{.+?}/, '%s')
20
+ endpoint = endpoint.gsub(/^\//, "")
21
+ endpoint = endpoint % []
22
+
23
+ action = { method: "post", url: endpoint}
24
+ @client.call_adyen_api(@service, action, request, headers, @version)
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,63 @@
1
+ require_relative '../service'
2
+ module Adyen
3
+
4
+
5
+ class AccountHoldersApi < Service
6
+ attr_accessor :service, :version
7
+
8
+ def initialize(client, version = DEFAULT_VERSION)
9
+ @service = "BalancePlatform"
10
+ @client = client
11
+ @version = version
12
+ end
13
+
14
+ def get_account_holder(id, headers: {} )
15
+ """
16
+ Get an account holder
17
+ """
18
+ endpoint = "/accountHolders/{id}".gsub(/{.+?}/, '%s')
19
+ endpoint = endpoint.gsub(/^\//, "")
20
+ endpoint = endpoint % [id]
21
+
22
+ action = { method: "get", url: endpoint}
23
+ @client.call_adyen_api(@service, action, {}, headers, @version)
24
+ end
25
+
26
+ def get_all_balance_accounts_of_account_holder(id, headers: {} , queryParams: {})
27
+ """
28
+ Get all balance accounts of an account holder
29
+ """
30
+ endpoint = "/accountHolders/{id}/balanceAccounts".gsub(/{.+?}/, '%s')
31
+ endpoint = endpoint.gsub(/^\//, "")
32
+ endpoint = endpoint % [id]
33
+ endpoint = endpoint + create_query_string(queryParams)
34
+ action = { method: "get", url: endpoint}
35
+ @client.call_adyen_api(@service, action, {}, headers, @version)
36
+ end
37
+
38
+ def update_account_holder(request, id, headers: {} )
39
+ """
40
+ Update an account holder
41
+ """
42
+ endpoint = "/accountHolders/{id}".gsub(/{.+?}/, '%s')
43
+ endpoint = endpoint.gsub(/^\//, "")
44
+ endpoint = endpoint % [id]
45
+
46
+ action = { method: "patch", url: endpoint}
47
+ @client.call_adyen_api(@service, action, request, headers, @version)
48
+ end
49
+
50
+ def create_account_holder(request, headers: {} )
51
+ """
52
+ Create an account holder
53
+ """
54
+ endpoint = "/accountHolders".gsub(/{.+?}/, '%s')
55
+ endpoint = endpoint.gsub(/^\//, "")
56
+ endpoint = endpoint % []
57
+
58
+ action = { method: "post", url: endpoint}
59
+ @client.call_adyen_api(@service, action, request, headers, @version)
60
+ end
61
+
62
+ end
63
+ end
@@ -0,0 +1,123 @@
1
+ require_relative '../service'
2
+ module Adyen
3
+
4
+
5
+ class BalanceAccountsApi < Service
6
+ attr_accessor :service, :version
7
+
8
+ def initialize(client, version = DEFAULT_VERSION)
9
+ @service = "BalancePlatform"
10
+ @client = client
11
+ @version = version
12
+ end
13
+
14
+ def delete_sweep(balanceAccountId, sweepId, headers: {} )
15
+ """
16
+ Delete a sweep
17
+ """
18
+ endpoint = "/balanceAccounts/{balanceAccountId}/sweeps/{sweepId}".gsub(/{.+?}/, '%s')
19
+ endpoint = endpoint.gsub(/^\//, "")
20
+ endpoint = endpoint % [balanceAccountId,sweepId]
21
+
22
+ action = { method: "delete", url: endpoint}
23
+ @client.call_adyen_api(@service, action, {}, headers, @version)
24
+ end
25
+
26
+ def get_all_sweeps_for_balance_account(balanceAccountId, headers: {} , queryParams: {})
27
+ """
28
+ Get all sweeps for a balance account
29
+ """
30
+ endpoint = "/balanceAccounts/{balanceAccountId}/sweeps".gsub(/{.+?}/, '%s')
31
+ endpoint = endpoint.gsub(/^\//, "")
32
+ endpoint = endpoint % [balanceAccountId]
33
+ endpoint = endpoint + create_query_string(queryParams)
34
+ action = { method: "get", url: endpoint}
35
+ @client.call_adyen_api(@service, action, {}, headers, @version)
36
+ end
37
+
38
+ def get_sweep(balanceAccountId, sweepId, headers: {} )
39
+ """
40
+ Get a sweep
41
+ """
42
+ endpoint = "/balanceAccounts/{balanceAccountId}/sweeps/{sweepId}".gsub(/{.+?}/, '%s')
43
+ endpoint = endpoint.gsub(/^\//, "")
44
+ endpoint = endpoint % [balanceAccountId,sweepId]
45
+
46
+ action = { method: "get", url: endpoint}
47
+ @client.call_adyen_api(@service, action, {}, headers, @version)
48
+ end
49
+
50
+ def get_balance_account(id, headers: {} )
51
+ """
52
+ Get a balance account
53
+ """
54
+ endpoint = "/balanceAccounts/{id}".gsub(/{.+?}/, '%s')
55
+ endpoint = endpoint.gsub(/^\//, "")
56
+ endpoint = endpoint % [id]
57
+
58
+ action = { method: "get", url: endpoint}
59
+ @client.call_adyen_api(@service, action, {}, headers, @version)
60
+ end
61
+
62
+ def get_all_payment_instruments_for_balance_account(id, headers: {} , queryParams: {})
63
+ """
64
+ Get all payment instruments for a balance account
65
+ """
66
+ endpoint = "/balanceAccounts/{id}/paymentInstruments".gsub(/{.+?}/, '%s')
67
+ endpoint = endpoint.gsub(/^\//, "")
68
+ endpoint = endpoint % [id]
69
+ endpoint = endpoint + create_query_string(queryParams)
70
+ action = { method: "get", url: endpoint}
71
+ @client.call_adyen_api(@service, action, {}, headers, @version)
72
+ end
73
+
74
+ def update_sweep(request, balanceAccountId, sweepId, headers: {} )
75
+ """
76
+ Update a sweep
77
+ """
78
+ endpoint = "/balanceAccounts/{balanceAccountId}/sweeps/{sweepId}".gsub(/{.+?}/, '%s')
79
+ endpoint = endpoint.gsub(/^\//, "")
80
+ endpoint = endpoint % [balanceAccountId,sweepId]
81
+
82
+ action = { method: "patch", url: endpoint}
83
+ @client.call_adyen_api(@service, action, request, headers, @version)
84
+ end
85
+
86
+ def update_balance_account(request, id, headers: {} )
87
+ """
88
+ Update a balance account
89
+ """
90
+ endpoint = "/balanceAccounts/{id}".gsub(/{.+?}/, '%s')
91
+ endpoint = endpoint.gsub(/^\//, "")
92
+ endpoint = endpoint % [id]
93
+
94
+ action = { method: "patch", url: endpoint}
95
+ @client.call_adyen_api(@service, action, request, headers, @version)
96
+ end
97
+
98
+ def create_balance_account(request, headers: {} )
99
+ """
100
+ Create a balance account
101
+ """
102
+ endpoint = "/balanceAccounts".gsub(/{.+?}/, '%s')
103
+ endpoint = endpoint.gsub(/^\//, "")
104
+ endpoint = endpoint % []
105
+
106
+ action = { method: "post", url: endpoint}
107
+ @client.call_adyen_api(@service, action, request, headers, @version)
108
+ end
109
+
110
+ def create_sweep(request, balanceAccountId, headers: {} )
111
+ """
112
+ Create a sweep
113
+ """
114
+ endpoint = "/balanceAccounts/{balanceAccountId}/sweeps".gsub(/{.+?}/, '%s')
115
+ endpoint = endpoint.gsub(/^\//, "")
116
+ endpoint = endpoint % [balanceAccountId]
117
+
118
+ action = { method: "post", url: endpoint}
119
+ @client.call_adyen_api(@service, action, request, headers, @version)
120
+ end
121
+
122
+ end
123
+ end
@@ -0,0 +1,27 @@
1
+ require_relative '../service'
2
+ module Adyen
3
+
4
+
5
+ class BankAccountValidationApi < Service
6
+ attr_accessor :service, :version
7
+
8
+ def initialize(client, version = DEFAULT_VERSION)
9
+ @service = "BalancePlatform"
10
+ @client = client
11
+ @version = version
12
+ end
13
+
14
+ def validate_bank_account_identification(request, headers: {} )
15
+ """
16
+ Validate a bank account
17
+ """
18
+ endpoint = "/validateBankAccountIdentification".gsub(/{.+?}/, '%s')
19
+ endpoint = endpoint.gsub(/^\//, "")
20
+ endpoint = endpoint % []
21
+
22
+ action = { method: "post", url: endpoint}
23
+ @client.call_adyen_api(@service, action, request, headers, @version)
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ require_relative '../service'
2
+ module Adyen
3
+
4
+
5
+ class GrantAccountsApi < Service
6
+ attr_accessor :service, :version
7
+
8
+ def initialize(client, version = DEFAULT_VERSION)
9
+ @service = "BalancePlatform"
10
+ @client = client
11
+ @version = version
12
+ end
13
+
14
+ def get_grant_account(id, headers: {} )
15
+ """
16
+ Get a grant account
17
+ """
18
+ endpoint = "/grantAccounts/{id}".gsub(/{.+?}/, '%s')
19
+ endpoint = endpoint.gsub(/^\//, "")
20
+ endpoint = endpoint % [id]
21
+
22
+ action = { method: "get", url: endpoint}
23
+ @client.call_adyen_api(@service, action, {}, headers, @version)
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,39 @@
1
+ require_relative '../service'
2
+ module Adyen
3
+
4
+
5
+ class GrantOffersApi < Service
6
+ attr_accessor :service, :version
7
+
8
+ def initialize(client, version = DEFAULT_VERSION)
9
+ @service = "BalancePlatform"
10
+ @client = client
11
+ @version = version
12
+ end
13
+
14
+ def get_all_available_grant_offers(headers: {} , queryParams: {})
15
+ """
16
+ Get all available grant offers
17
+ """
18
+ endpoint = "/grantOffers".gsub(/{.+?}/, '%s')
19
+ endpoint = endpoint.gsub(/^\//, "")
20
+ endpoint = endpoint % []
21
+ endpoint = endpoint + create_query_string(queryParams)
22
+ action = { method: "get", url: endpoint}
23
+ @client.call_adyen_api(@service, action, {}, headers, @version)
24
+ end
25
+
26
+ def get_grant_offer(grantOfferId, headers: {} )
27
+ """
28
+ Get a grant offer
29
+ """
30
+ endpoint = "/grantOffers/{grantOfferId}".gsub(/{.+?}/, '%s')
31
+ endpoint = endpoint.gsub(/^\//, "")
32
+ endpoint = endpoint % [grantOfferId]
33
+
34
+ action = { method: "get", url: endpoint}
35
+ @client.call_adyen_api(@service, action, {}, headers, @version)
36
+ end
37
+
38
+ end
39
+ end