hamza-payments-query-sdk 1.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 (262) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +136 -0
  4. data/lib/payments/api_helper.rb +10 -0
  5. data/lib/payments/client.rb +78 -0
  6. data/lib/payments/configuration.rb +145 -0
  7. data/lib/payments/controllers/base_controller.rb +60 -0
  8. data/lib/payments/controllers/m3_ds_actions_controller.rb +97 -0
  9. data/lib/payments/controllers/manage_payments_controller.rb +272 -0
  10. data/lib/payments/controllers/payment_controller.rb +51 -0
  11. data/lib/payments/controllers/payment_queries_controller.rb +134 -0
  12. data/lib/payments/exceptions/api_exception.rb +21 -0
  13. data/lib/payments/exceptions/error_response_exception.rb +51 -0
  14. data/lib/payments/exceptions/header_error_response_exception.rb +58 -0
  15. data/lib/payments/exceptions/pq_querybydaterange400_response_exception.rb +51 -0
  16. data/lib/payments/exceptions/pq_querybypaymentid404_response_error_exception.rb +51 -0
  17. data/lib/payments/exceptions/pq_queryhistoricalpayments400_response_exception.rb +51 -0
  18. data/lib/payments/exceptions/validation_error_response_exception.rb +58 -0
  19. data/lib/payments/http/auth/basic_auth.rb +50 -0
  20. data/lib/payments/http/http_call_back.rb +10 -0
  21. data/lib/payments/http/http_method_enum.rb +10 -0
  22. data/lib/payments/http/http_request.rb +10 -0
  23. data/lib/payments/http/http_response.rb +10 -0
  24. data/lib/payments/http/proxy_settings.rb +13 -0
  25. data/lib/payments/models/accept_enum.rb +21 -0
  26. data/lib/payments/models/account_history.rb +110 -0
  27. data/lib/payments/models/account_updater_message1_enum.rb +44 -0
  28. data/lib/payments/models/account_updater_message_enum.rb +41 -0
  29. data/lib/payments/models/advice.rb +62 -0
  30. data/lib/payments/models/applepay_payments_instruction.rb +151 -0
  31. data/lib/payments/models/authentication.rb +161 -0
  32. data/lib/payments/models/authorization_action_list.rb +90 -0
  33. data/lib/payments/models/authorization_failed.rb +103 -0
  34. data/lib/payments/models/authorization_refused.rb +124 -0
  35. data/lib/payments/models/authorization_requested.rb +94 -0
  36. data/lib/payments/models/authorization_succeeded.rb +104 -0
  37. data/lib/payments/models/authorization_timed_out.rb +94 -0
  38. data/lib/payments/models/authorization_type1_enum.rb +23 -0
  39. data/lib/payments/models/authorization_type_enum.rb +23 -0
  40. data/lib/payments/models/avs_not_matched_enum.rb +25 -0
  41. data/lib/payments/models/base_model.rb +110 -0
  42. data/lib/payments/models/billing_address.rb +147 -0
  43. data/lib/payments/models/browser_color_depth_enum.rb +41 -0
  44. data/lib/payments/models/cancel_response.rb +71 -0
  45. data/lib/payments/models/cancellation.rb +88 -0
  46. data/lib/payments/models/cancellation_failed.rb +94 -0
  47. data/lib/payments/models/cancellation_request_submitted.rb +94 -0
  48. data/lib/payments/models/cancellation_requested.rb +94 -0
  49. data/lib/payments/models/cancellation_timed_out.rb +94 -0
  50. data/lib/payments/models/card.rb +159 -0
  51. data/lib/payments/models/card1.rb +106 -0
  52. data/lib/payments/models/card3.rb +72 -0
  53. data/lib/payments/models/card_authorized_payment_response.rb +195 -0
  54. data/lib/payments/models/card_payment_instrument.rb +76 -0
  55. data/lib/payments/models/card_payments_instruction.rb +164 -0
  56. data/lib/payments/models/category_enum.rb +23 -0
  57. data/lib/payments/models/challenge.rb +100 -0
  58. data/lib/payments/models/challenge_info.rb +91 -0
  59. data/lib/payments/models/challenge_response201.rb +75 -0
  60. data/lib/payments/models/challenge_response202.rb +62 -0
  61. data/lib/payments/models/challenged_action_list.rb +65 -0
  62. data/lib/payments/models/challenged_response.rb +96 -0
  63. data/lib/payments/models/channel1_enum.rb +27 -0
  64. data/lib/payments/models/channel_enum.rb +24 -0
  65. data/lib/payments/models/conflict_payment_instrument.rb +104 -0
  66. data/lib/payments/models/content_type_enum.rb +20 -0
  67. data/lib/payments/models/custom.rb +241 -0
  68. data/lib/payments/models/customer.rb +146 -0
  69. data/lib/payments/models/customer_agreement.rb +120 -0
  70. data/lib/payments/models/cvc_not_matched_enum.rb +24 -0
  71. data/lib/payments/models/detail_enum.rb +23 -0
  72. data/lib/payments/models/device_data.rb +200 -0
  73. data/lib/payments/models/device_data_collection.rb +79 -0
  74. data/lib/payments/models/device_data_request.rb +71 -0
  75. data/lib/payments/models/device_data_required_action_list.rb +66 -0
  76. data/lib/payments/models/device_data_required_response.rb +89 -0
  77. data/lib/payments/models/device_data_response201.rb +95 -0
  78. data/lib/payments/models/embedded.rb +71 -0
  79. data/lib/payments/models/embedded1.rb +71 -0
  80. data/lib/payments/models/error.rb +81 -0
  81. data/lib/payments/models/exemption.rb +106 -0
  82. data/lib/payments/models/expiry_date.rb +90 -0
  83. data/lib/payments/models/expiry_date1.rb +84 -0
  84. data/lib/payments/models/fraud.rb +73 -0
  85. data/lib/payments/models/fraud_high_risk_response.rb +88 -0
  86. data/lib/payments/models/funding_type_enum.rb +32 -0
  87. data/lib/payments/models/googlepay_payments_instruction.rb +151 -0
  88. data/lib/payments/models/identifier_type_enum.rb +26 -0
  89. data/lib/payments/models/installment_plan.rb +76 -0
  90. data/lib/payments/models/installment_type_enum.rb +26 -0
  91. data/lib/payments/models/issuer.rb +63 -0
  92. data/lib/payments/models/issuer1.rb +76 -0
  93. data/lib/payments/models/issuer_response_enum.rb +23 -0
  94. data/lib/payments/models/last_event_enum.rb +95 -0
  95. data/lib/payments/models/links.rb +123 -0
  96. data/lib/payments/models/links1.rb +70 -0
  97. data/lib/payments/models/links2.rb +60 -0
  98. data/lib/payments/models/links3.rb +97 -0
  99. data/lib/payments/models/merchant.rb +88 -0
  100. data/lib/payments/models/message_enum.rb +34 -0
  101. data/lib/payments/models/method_enum.rb +38 -0
  102. data/lib/payments/models/mnext.rb +62 -0
  103. data/lib/payments/models/mself.rb +62 -0
  104. data/lib/payments/models/name_enum.rb +51 -0
  105. data/lib/payments/models/narrative.rb +86 -0
  106. data/lib/payments/models/narrative1.rb +87 -0
  107. data/lib/payments/models/narrative2.rb +71 -0
  108. data/lib/payments/models/number.rb +85 -0
  109. data/lib/payments/models/number3.rb +62 -0
  110. data/lib/payments/models/outcome16_enum.rb +21 -0
  111. data/lib/payments/models/outcome17_enum.rb +21 -0
  112. data/lib/payments/models/outcome6_enum.rb +42 -0
  113. data/lib/payments/models/outcome7_enum.rb +26 -0
  114. data/lib/payments/models/outcome_enum.rb +50 -0
  115. data/lib/payments/models/partial_refund_action_list.rb +64 -0
  116. data/lib/payments/models/partial_refund_response.rb +81 -0
  117. data/lib/payments/models/partial_settle_action_list.rb +102 -0
  118. data/lib/payments/models/partial_settle_response.rb +81 -0
  119. data/lib/payments/models/payment.rb +192 -0
  120. data/lib/payments/models/payment1.rb +86 -0
  121. data/lib/payments/models/payment_instrument.rb +62 -0
  122. data/lib/payments/models/payment_instrument4.rb +81 -0
  123. data/lib/payments/models/payment_instrument6.rb +71 -0
  124. data/lib/payments/models/payment_instrument7.rb +171 -0
  125. data/lib/payments/models/payment_refused_response.rb +187 -0
  126. data/lib/payments/models/payment_request.rb +96 -0
  127. data/lib/payments/models/payments_action_cancel.rb +71 -0
  128. data/lib/payments/models/payments_action_complete3ds_challenge.rb +72 -0
  129. data/lib/payments/models/payments_action_partial_refund.rb +71 -0
  130. data/lib/payments/models/payments_action_partial_settle.rb +73 -0
  131. data/lib/payments/models/payments_action_refund.rb +71 -0
  132. data/lib/payments/models/payments_action_settle.rb +71 -0
  133. data/lib/payments/models/payments_action_supply3ds_device_data.rb +73 -0
  134. data/lib/payments/models/payments_bank_account.rb +119 -0
  135. data/lib/payments/models/payments_cancel.rb +72 -0
  136. data/lib/payments/models/payments_card_account.rb +69 -0
  137. data/lib/payments/models/payments_card_on_file_customer_agreement.rb +85 -0
  138. data/lib/payments/models/payments_card_plain_payment_instrument.rb +149 -0
  139. data/lib/payments/models/payments_customer_agreement.rb +79 -0
  140. data/lib/payments/models/payments_email_account.rb +69 -0
  141. data/lib/payments/models/payments_events.rb +72 -0
  142. data/lib/payments/models/payments_exemption.rb +102 -0
  143. data/lib/payments/models/payments_fraud.rb +107 -0
  144. data/lib/payments/models/payments_funds_recipient.rb +139 -0
  145. data/lib/payments/models/payments_funds_sender.rb +120 -0
  146. data/lib/payments/models/payments_funds_transfer.rb +108 -0
  147. data/lib/payments/models/payments_gift_cards_purchase.rb +81 -0
  148. data/lib/payments/models/payments_installment_customer_agreement.rb +133 -0
  149. data/lib/payments/models/payments_instruction.rb +309 -0
  150. data/lib/payments/models/payments_link.rb +62 -0
  151. data/lib/payments/models/payments_network_token_payment_instrument.rb +126 -0
  152. data/lib/payments/models/payments_partial_refund_request.rb +68 -0
  153. data/lib/payments/models/payments_partial_settle.rb +72 -0
  154. data/lib/payments/models/payments_partial_settle_request.rb +81 -0
  155. data/lib/payments/models/payments_payment_facilitator.rb +88 -0
  156. data/lib/payments/models/payments_payment_instrument.rb +78 -0
  157. data/lib/payments/models/payments_phone_account.rb +69 -0
  158. data/lib/payments/models/payments_recipient.rb +110 -0
  159. data/lib/payments/models/payments_recipient_account.rb +81 -0
  160. data/lib/payments/models/payments_recipient_address.rb +72 -0
  161. data/lib/payments/models/payments_response.rb +69 -0
  162. data/lib/payments/models/payments_response202.rb +90 -0
  163. data/lib/payments/models/payments_response_payment_instrument.rb +158 -0
  164. data/lib/payments/models/payments_sequence.rb +69 -0
  165. data/lib/payments/models/payments_settle.rb +72 -0
  166. data/lib/payments/models/payments_shipping_address.rb +148 -0
  167. data/lib/payments/models/payments_social_network_account.rb +71 -0
  168. data/lib/payments/models/payments_sub_merchant.rb +108 -0
  169. data/lib/payments/models/payments_sub_merchant_address.rb +99 -0
  170. data/lib/payments/models/payments_subscription_customer_agreement.rb +106 -0
  171. data/lib/payments/models/payments_three_ds.rb +217 -0
  172. data/lib/payments/models/payments_transfer_address.rb +112 -0
  173. data/lib/payments/models/payments_unscheduled_customer_agreement.rb +87 -0
  174. data/lib/payments/models/payments_wallet_account.rb +70 -0
  175. data/lib/payments/models/placement_enum.rb +21 -0
  176. data/lib/payments/models/pq_querybydaterange200_response.rb +68 -0
  177. data/lib/payments/models/pq_querybypaymentid200_response.rb +230 -0
  178. data/lib/payments/models/pq_queryhistoricalpayments200_response.rb +72 -0
  179. data/lib/payments/models/preference_enum.rb +29 -0
  180. data/lib/payments/models/preferred_card_brand_enum.rb +51 -0
  181. data/lib/payments/models/purpose_enum.rb +78 -0
  182. data/lib/payments/models/query_action_list.rb +114 -0
  183. data/lib/payments/models/query_events_response.rb +71 -0
  184. data/lib/payments/models/reason_enum.rb +50 -0
  185. data/lib/payments/models/refund_failed.rb +94 -0
  186. data/lib/payments/models/refund_request_submitted.rb +94 -0
  187. data/lib/payments/models/refund_requested.rb +124 -0
  188. data/lib/payments/models/refund_response.rb +71 -0
  189. data/lib/payments/models/refund_timed_out.rb +94 -0
  190. data/lib/payments/models/result_enum.rb +29 -0
  191. data/lib/payments/models/reversal_failed.rb +94 -0
  192. data/lib/payments/models/reversal_request_submitted.rb +94 -0
  193. data/lib/payments/models/reversal_requested.rb +103 -0
  194. data/lib/payments/models/reversal_timed_out.rb +94 -0
  195. data/lib/payments/models/risk_enum.rb +29 -0
  196. data/lib/payments/models/risk_factor.rb +82 -0
  197. data/lib/payments/models/routing.rb +74 -0
  198. data/lib/payments/models/sale_failed.rb +103 -0
  199. data/lib/payments/models/sale_refused.rb +124 -0
  200. data/lib/payments/models/sale_requested.rb +94 -0
  201. data/lib/payments/models/sale_succeeded.rb +104 -0
  202. data/lib/payments/models/sale_timed_out.rb +94 -0
  203. data/lib/payments/models/scheme.rb +75 -0
  204. data/lib/payments/models/self1.rb +72 -0
  205. data/lib/payments/models/self2.rb +62 -0
  206. data/lib/payments/models/self3.rb +62 -0
  207. data/lib/payments/models/sent_for_cancellation_response.rb +185 -0
  208. data/lib/payments/models/sent_for_settlement_action_list.rb +76 -0
  209. data/lib/payments/models/sent_for_settlement_response.rb +195 -0
  210. data/lib/payments/models/session_payment_instrument.rb +119 -0
  211. data/lib/payments/models/settle_action_list.rb +76 -0
  212. data/lib/payments/models/settle_response.rb +81 -0
  213. data/lib/payments/models/settlement.rb +88 -0
  214. data/lib/payments/models/settlement_failed.rb +94 -0
  215. data/lib/payments/models/settlement_request_submitted.rb +94 -0
  216. data/lib/payments/models/settlement_requested.rb +125 -0
  217. data/lib/payments/models/settlement_timed_out.rb +94 -0
  218. data/lib/payments/models/shipping.rb +130 -0
  219. data/lib/payments/models/stored_card_usage1_enum.rb +24 -0
  220. data/lib/payments/models/stored_card_usage_enum.rb +24 -0
  221. data/lib/payments/models/time_frame_enum.rb +29 -0
  222. data/lib/payments/models/token.rb +168 -0
  223. data/lib/payments/models/token_creation.rb +95 -0
  224. data/lib/payments/models/token_payment_instrument.rb +118 -0
  225. data/lib/payments/models/token_response_conflicts.rb +90 -0
  226. data/lib/payments/models/transaction_history.rb +127 -0
  227. data/lib/payments/models/transaction_type1_enum.rb +26 -0
  228. data/lib/payments/models/transaction_type_enum.rb +26 -0
  229. data/lib/payments/models/type10_enum.rb +23 -0
  230. data/lib/payments/models/type12_enum.rb +35 -0
  231. data/lib/payments/models/type1_enum.rb +26 -0
  232. data/lib/payments/models/type2_enum.rb +23 -0
  233. data/lib/payments/models/type3_enum.rb +20 -0
  234. data/lib/payments/models/type4_enum.rb +20 -0
  235. data/lib/payments/models/type5_enum.rb +41 -0
  236. data/lib/payments/models/type6_enum.rb +29 -0
  237. data/lib/payments/models/type7_enum.rb +23 -0
  238. data/lib/payments/models/type8_enum.rb +23 -0
  239. data/lib/payments/models/type9_enum.rb +35 -0
  240. data/lib/payments/models/type_enum.rb +23 -0
  241. data/lib/payments/models/unsuccessful_authentication_response.rb +76 -0
  242. data/lib/payments/models/updated_payment_instrument.rb +159 -0
  243. data/lib/payments/models/updated_payment_instrument1.rb +93 -0
  244. data/lib/payments/models/user_type_enum.rb +35 -0
  245. data/lib/payments/models/value.rb +94 -0
  246. data/lib/payments/models/value1.rb +91 -0
  247. data/lib/payments/models/value2.rb +91 -0
  248. data/lib/payments/models/value3.rb +91 -0
  249. data/lib/payments/models/value4.rb +91 -0
  250. data/lib/payments/models/verification.rb +173 -0
  251. data/lib/payments/models/wallet_payment_instrument.rb +100 -0
  252. data/lib/payments/models/window_size_enum.rb +34 -0
  253. data/lib/payments/models/wp_api_version_enum.rb +20 -0
  254. data/lib/payments/utilities/date_time_helper.rb +11 -0
  255. data/lib/payments/utilities/file_wrapper.rb +28 -0
  256. data/lib/payments/utilities/union_type_lookup.rb +78 -0
  257. data/lib/payments.rb +280 -0
  258. data/test/controllers/controller_test_base.rb +29 -0
  259. data/test/controllers/test_payment_controller.rb +161 -0
  260. data/test/controllers/test_payment_queries_controller.rb +68 -0
  261. data/test/http_response_catcher.rb +19 -0
  262. metadata +374 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: bda6b6dc693e4fb61d71ca0b12a55d2c4f071d19dfc14737e6fdabcf0318c786
4
+ data.tar.gz: 2196e591ba4d5de2fdfdb8b9c6d0c463e0b5bf246436d2184414445b2859b0fa
5
+ SHA512:
6
+ metadata.gz: a63c53b4dc065efa168bb9a444991c5ba5d3c9b6f116314d028ee2dac4bc012835d2a81e2abb3404b3705966fec3b84ac2d1b725cab059c112a537db3098b44a
7
+ data.tar.gz: d661c37e7c1a754673b25ec35454318ec5cf74cecf74a4abc8a669525e2f95ad7f5373b1f7dbcfac2a7932fa8e6c1a2199aa0dcc349a5a00a72d510dca382d5f
data/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ License:
2
+ ========
3
+ The MIT License (MIT)
4
+ http://opensource.org/licenses/MIT
5
+
6
+ Copyright (c) 2014 - 2025 APIMATIC Limited
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to deal
10
+ in the Software without restriction, including without limitation the rights
11
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in
16
+ all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ THE SOFTWARE.
25
+
26
+ Trade Mark:
27
+ ==========
28
+ APIMATIC is a trade mark for APIMATIC Limited
data/README.md ADDED
@@ -0,0 +1,136 @@
1
+
2
+ # Getting Started with Payments
3
+
4
+ ## Introduction
5
+
6
+ Use a single API that orchestrates the payment flow to include FraudSight, 3DS and Token creation.
7
+
8
+ __Authentication__
9
+
10
+ Set your headers
11
+
12
+ ```
13
+ Authorization: {your_credentials}
14
+ Content-Type: application/json
15
+ WP-Api-Version: 2024-06-01
16
+ ```
17
+
18
+ Replace `{your_credentials}` with your base64-encoded Basic Auth username and password.
19
+
20
+ __DNS whitelisting__
21
+
22
+ Whitelist the following URLs:
23
+
24
+ * `https://try.access.worldpay.com/`
25
+ * `https://access.worldpay.com/`
26
+
27
+ Please ensure you use DNS whitelisting, not explicit IP whitelisting. When you make a request within Access Worldpay, you should always cache the response returned.
28
+
29
+ __API collection__
30
+
31
+ A full set of API examples based on different scenarios.
32
+
33
+ * __[Download Postman collection](./collections/index.md)__
34
+
35
+ This API also includes Payment Queries functionality to retrieve and query payment information.
36
+
37
+ ## Install the Package
38
+
39
+ Install the gem from the command line:
40
+
41
+ ```bash
42
+ gem install hamza-payments-query-sdk -v 1.0.0
43
+ ```
44
+
45
+ Or add the gem to your Gemfile and run `bundle`:
46
+
47
+ ```ruby
48
+ gem 'hamza-payments-query-sdk', '1.0.0'
49
+ ```
50
+
51
+ For additional gem details, see the [RubyGems page for the hamza-payments-query-sdk gem](https://rubygems.org/gems/hamza-payments-query-sdk/versions/1.0.0).
52
+
53
+ ## Test the SDK
54
+
55
+ To run the tests, navigate to the root directory of the SDK in your terminal and execute the following command:
56
+
57
+ ```
58
+ rake
59
+ ```
60
+
61
+ ## Initialize the API Client
62
+
63
+ **_Note:_** Documentation for the client can be found [here.](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/client.md)
64
+
65
+ The following parameters are configurable for the API Client:
66
+
67
+ | Parameter | Type | Description |
68
+ | --- | --- | --- |
69
+ | environment | `Environment` | The API environment. <br> **Default: `Environment.PRODUCTION`** |
70
+ | connection | `Faraday::Connection` | The Faraday connection object passed by the SDK user for making requests |
71
+ | adapter | `Faraday::Adapter` | The Faraday adapter object passed by the SDK user for performing http requests |
72
+ | timeout | `Float` | The value to use for connection timeout. <br> **Default: 60** |
73
+ | max_retries | `Integer` | The number of times to retry an endpoint call if it fails. <br> **Default: 0** |
74
+ | retry_interval | `Float` | Pause in seconds between retries. <br> **Default: 1** |
75
+ | backoff_factor | `Float` | The amount to multiply each successive retry's interval amount by in order to provide backoff. <br> **Default: 2** |
76
+ | retry_statuses | `Array` | A list of HTTP statuses to retry. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
77
+ | retry_methods | `Array` | A list of HTTP methods to retry. <br> **Default: %i[get put]** |
78
+ | http_callback | `HttpCallBack` | The Http CallBack allows defining callables for pre and post API calls. |
79
+ | proxy_settings | [`ProxySettings`](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/proxy-settings.md) | Optional proxy configuration to route HTTP requests through a proxy server. |
80
+ | basic_auth_credentials | [`BasicAuthCredentials`](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/auth/basic-authentication.md) | The credential object for Basic Authentication |
81
+
82
+ The API client can be initialized as follows:
83
+
84
+ ```ruby
85
+ require 'payments'
86
+ include Payments
87
+
88
+ client = Client.new(
89
+ basic_auth_credentials: BasicAuthCredentials.new(
90
+ username: 'BasicAuthUserName',
91
+ password: 'BasicAuthPassword'
92
+ ),
93
+ environment: Environment::PRODUCTION
94
+ )
95
+ ```
96
+
97
+ ## Environments
98
+
99
+ The SDK can be configured to use a different environment for making API calls. Available environments are:
100
+
101
+ ### Fields
102
+
103
+ | Name | Description |
104
+ | --- | --- |
105
+ | production | **Default** Try |
106
+ | environment2 | Live |
107
+
108
+ ## Authorization
109
+
110
+ This API uses the following authentication schemes.
111
+
112
+ * [`BasicAuth (Basic Authentication)`](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/auth/basic-authentication.md)
113
+
114
+ ## List of APIs
115
+
116
+ * [3 DS Actions](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/controllers/3-ds-actions.md)
117
+ * [Manage Payments](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/controllers/manage-payments.md)
118
+ * [Payment Queries](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/controllers/payment-queries.md)
119
+ * [Payment](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/controllers/payment.md)
120
+
121
+ ## SDK Infrastructure
122
+
123
+ ### Configuration
124
+
125
+ * [ProxySettings](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/proxy-settings.md)
126
+
127
+ ### HTTP
128
+
129
+ * [HttpResponse](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/http-response.md)
130
+ * [HttpRequest](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/http-request.md)
131
+
132
+ ### Utilities
133
+
134
+ * [ApiHelper](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/api-helper.md)
135
+ * [DateTimeHelper](https://www.github.com/MuHamza30/payments-query-ruby-sdk/tree/1.0.0/doc/date-time-helper.md)
136
+
@@ -0,0 +1,10 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # API utility class
8
+ class APIHelper < CoreLibrary::ApiHelper
9
+ end
10
+ end
@@ -0,0 +1,78 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # payments client class.
8
+ class Client
9
+ include CoreLibrary
10
+ attr_reader :config, :auth_managers
11
+
12
+ # Access to payment controller.
13
+ # @return [PaymentController] Returns the controller instance.
14
+ def payment
15
+ @payment ||= PaymentController.new @global_configuration
16
+ end
17
+
18
+ # Access to m3_ds_actions controller.
19
+ # @return [M3DSActionsController] Returns the controller instance.
20
+ def m3_ds_actions
21
+ @m3_ds_actions ||= M3DSActionsController.new @global_configuration
22
+ end
23
+
24
+ # Access to manage_payments controller.
25
+ # @return [ManagePaymentsController] Returns the controller instance.
26
+ def manage_payments
27
+ @manage_payments ||= ManagePaymentsController.new @global_configuration
28
+ end
29
+
30
+ # Access to payment_queries controller.
31
+ # @return [PaymentQueriesController] Returns the controller instance.
32
+ def payment_queries
33
+ @payment_queries ||= PaymentQueriesController.new @global_configuration
34
+ end
35
+
36
+ def initialize(
37
+ connection: nil, adapter: :net_http_persistent, timeout: 60,
38
+ max_retries: 0, retry_interval: 1, backoff_factor: 2,
39
+ retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
40
+ retry_methods: %i[get put], http_callback: nil, proxy_settings: nil,
41
+ environment: Environment::PRODUCTION, basic_auth_user_name: nil,
42
+ basic_auth_password: nil, basic_auth_credentials: nil, config: nil
43
+ )
44
+ @config = if config.nil?
45
+ Configuration.new(
46
+ connection: connection, adapter: adapter, timeout: timeout,
47
+ max_retries: max_retries, retry_interval: retry_interval,
48
+ backoff_factor: backoff_factor,
49
+ retry_statuses: retry_statuses,
50
+ retry_methods: retry_methods, http_callback: http_callback,
51
+ proxy_settings: proxy_settings, environment: environment,
52
+ basic_auth_user_name: basic_auth_user_name,
53
+ basic_auth_password: basic_auth_password,
54
+ basic_auth_credentials: basic_auth_credentials
55
+ )
56
+ else
57
+ config
58
+ end
59
+
60
+ @global_configuration = GlobalConfiguration.new(client_configuration: @config)
61
+ .base_uri_executor(@config.method(:get_base_uri))
62
+ .global_errors(BaseController::GLOBAL_ERRORS)
63
+ .user_agent(BaseController.user_agent)
64
+
65
+ initialize_auth_managers(@global_configuration)
66
+ @global_configuration = @global_configuration.auth_managers(@auth_managers)
67
+ end
68
+
69
+ # Initializes the auth managers hash used for authenticating API calls.
70
+ # @param [GlobalConfiguration] global_config The global configuration of the SDK)
71
+ def initialize_auth_managers(global_config)
72
+ @auth_managers = {}
73
+ http_client_config = global_config.client_configuration
74
+ %w[BasicAuth].each { |auth| @auth_managers[auth] = nil }
75
+ @auth_managers['BasicAuth'] = BasicAuth.new(http_client_config.basic_auth_credentials)
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,145 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # An enum for SDK environments.
8
+ class Environment
9
+ # PRODUCTION: Try
10
+ # ENVIRONMENT2: Live
11
+ ENVIRONMENT = [
12
+ PRODUCTION = 'production'.freeze,
13
+ ENVIRONMENT2 = 'environment2'.freeze
14
+ ].freeze
15
+ end
16
+
17
+ # An enum for API servers.
18
+ class Server
19
+ SERVER = [
20
+ DEFAULT = 'default'.freeze
21
+ ].freeze
22
+ end
23
+
24
+ # All configuration including auth info and base URI for the API access
25
+ # are configured in this class.
26
+ class Configuration < CoreLibrary::HttpClientConfiguration
27
+ def basic_auth_user_name
28
+ @basic_auth_credentials.username
29
+ end
30
+
31
+ def basic_auth_password
32
+ @basic_auth_credentials.password
33
+ end
34
+
35
+ # The attribute readers for properties.
36
+ attr_reader :environment, :basic_auth_credentials
37
+
38
+ class << self
39
+ attr_reader :environments
40
+ end
41
+
42
+ def initialize(
43
+ connection: nil, adapter: :net_http_persistent, timeout: 60,
44
+ max_retries: 0, retry_interval: 1, backoff_factor: 2,
45
+ retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
46
+ retry_methods: %i[get put], http_callback: nil, proxy_settings: nil,
47
+ environment: Environment::PRODUCTION, basic_auth_user_name: nil,
48
+ basic_auth_password: nil, basic_auth_credentials: nil
49
+ )
50
+ super connection: connection, adapter: adapter, timeout: timeout,
51
+ max_retries: max_retries, retry_interval: retry_interval,
52
+ backoff_factor: backoff_factor, retry_statuses: retry_statuses,
53
+ retry_methods: retry_methods, http_callback: http_callback,
54
+ proxy_settings: proxy_settings
55
+
56
+ # Current API environment
57
+ @environment = String(environment)
58
+
59
+ # The username to use with basic authentication
60
+ @basic_auth_user_name = basic_auth_user_name
61
+
62
+ # The password to use with basic authentication
63
+ @basic_auth_password = basic_auth_password
64
+
65
+ # Initializing Basic Authentication credentials with the provided auth parameters
66
+ @basic_auth_credentials = create_auth_credentials_object(
67
+ basic_auth_user_name, basic_auth_password, basic_auth_credentials
68
+ )
69
+
70
+ # The Http Client to use for making requests.
71
+ set_http_client CoreLibrary::FaradayClient.new(self)
72
+ end
73
+
74
+ def clone_with(connection: nil, adapter: nil, timeout: nil,
75
+ max_retries: nil, retry_interval: nil, backoff_factor: nil,
76
+ retry_statuses: nil, retry_methods: nil, http_callback: nil,
77
+ proxy_settings: nil, environment: nil,
78
+ basic_auth_user_name: nil, basic_auth_password: nil,
79
+ basic_auth_credentials: nil)
80
+ connection ||= self.connection
81
+ adapter ||= self.adapter
82
+ timeout ||= self.timeout
83
+ max_retries ||= self.max_retries
84
+ retry_interval ||= self.retry_interval
85
+ backoff_factor ||= self.backoff_factor
86
+ retry_statuses ||= self.retry_statuses
87
+ retry_methods ||= self.retry_methods
88
+ http_callback ||= self.http_callback
89
+ proxy_settings ||= self.proxy_settings
90
+ environment ||= self.environment
91
+ basic_auth_credentials = create_auth_credentials_object(
92
+ basic_auth_user_name, basic_auth_password,
93
+ basic_auth_credentials || self.basic_auth_credentials
94
+ )
95
+
96
+ Configuration.new(connection: connection, adapter: adapter,
97
+ timeout: timeout, max_retries: max_retries,
98
+ retry_interval: retry_interval,
99
+ backoff_factor: backoff_factor,
100
+ retry_statuses: retry_statuses,
101
+ retry_methods: retry_methods,
102
+ http_callback: http_callback,
103
+ proxy_settings: proxy_settings,
104
+ environment: environment,
105
+ basic_auth_credentials: basic_auth_credentials)
106
+ end
107
+
108
+ def create_auth_credentials_object(basic_auth_user_name,
109
+ basic_auth_password,
110
+ basic_auth_credentials)
111
+ return basic_auth_credentials if basic_auth_user_name.nil? && basic_auth_password.nil?
112
+
113
+ warn('The \'basic_auth_user_name\', \'basic_auth_password\' params are d'\
114
+ 'eprecated. Use \'basic_auth_credentials\' param instead.')
115
+
116
+ unless basic_auth_credentials.nil?
117
+ return basic_auth_credentials.clone_with(
118
+ username: basic_auth_user_name,
119
+ password: basic_auth_password
120
+ )
121
+ end
122
+
123
+ BasicAuthCredentials.new(username: basic_auth_user_name,
124
+ password: basic_auth_password)
125
+ end
126
+
127
+ # All the environments the SDK can run in.
128
+ ENVIRONMENTS = {
129
+ Environment::PRODUCTION => {
130
+ Server::DEFAULT => 'https://try.access.worldpay.com'
131
+ },
132
+ Environment::ENVIRONMENT2 => {
133
+ Server::DEFAULT => 'https://access.worldpay.com'
134
+ }
135
+ }.freeze
136
+
137
+ # Generates the appropriate base URI for the environment and the server.
138
+ # @param [Configuration::Server] server The server enum for which the base URI is
139
+ # required.
140
+ # @return [String] The base URI.
141
+ def get_base_uri(server = Server::DEFAULT)
142
+ ENVIRONMENTS[environment][server].clone
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,60 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # BaseController.
8
+ class BaseController
9
+ include CoreLibrary
10
+ attr_accessor :config, :http_call_back
11
+
12
+ def self.user_agent
13
+ 'APIMATIC 3.0'
14
+ end
15
+
16
+
17
+ GLOBAL_ERRORS = {
18
+ 'default' => ErrorCase.new
19
+ .error_message('HTTP response not OK.')
20
+ .exception_type(APIException)
21
+ }.freeze
22
+
23
+ # Initialization constructor.
24
+ # @param [GlobalConfiguration] global_configuration The instance of GlobalConfiguration.
25
+ def initialize(global_configuration)
26
+ @global_configuration = global_configuration
27
+ @config = @global_configuration.client_configuration
28
+ @http_call_back = @config.http_callback
29
+ @api_call = ApiCall.new(@global_configuration)
30
+ end
31
+
32
+ # Creates a new instance of the request builder.
33
+ # @param [String] http_method The HTTP method to use in the request.
34
+ # @param [String] path The endpoint path to use in the request.
35
+ # @param [String] server The server to extract the base uri for the request.
36
+ # @return [RequestBuilder] The instance of RequestBuilder.
37
+ def new_request_builder(http_method, path, server)
38
+ RequestBuilder.new
39
+ .http_method(http_method)
40
+ .path(path)
41
+ .server(server)
42
+ end
43
+
44
+ # Creates a new instance of the response handler.
45
+ # @return [ResponseHandler] The instance of ResponseHandler.
46
+ def new_response_handler
47
+ ResponseHandler.new
48
+ end
49
+
50
+ # Creates a new instance of the parameter.
51
+ # @param [String|optional] key The key of the parameter.
52
+ # @param [Object] value The value of the parameter.
53
+ # @return [Parameter] The instance of Parameter.
54
+ def new_parameter(value, key: nil)
55
+ Parameter.new
56
+ .key(key)
57
+ .value(value)
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,97 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # M3DSActionsController
8
+ class M3DSActionsController < BaseController
9
+ # Gather additional device data. `linkData` refers to the pre-encoded
10
+ # segment of the URL that uniquely identifies a payment resource. It appears
11
+ # immediately after `/payments/` and continues until the next `/` or URL
12
+ # delimiter.
13
+ # @param [String] link_data Required parameter: TODO: type description
14
+ # here
15
+ # @param [WPApiVersionEnum] wp_api_version Required parameter: The API
16
+ # version
17
+ # @param [DeviceDataRequest] body Optional parameter: TODO: type description
18
+ # here
19
+ # @return [DeviceDataResponse201] Response from the API call.
20
+ def supply3ds_device_data(link_data,
21
+ wp_api_version,
22
+ body: nil)
23
+ @api_call
24
+ .request(new_request_builder(HttpMethodEnum::POST,
25
+ '/api/payments/{linkData}/3dsDeviceData',
26
+ Server::DEFAULT)
27
+ .template_param(new_parameter(link_data, key: 'linkData')
28
+ .should_encode(true))
29
+ .header_param(new_parameter(wp_api_version, key: 'WP-Api-Version'))
30
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
31
+ .body_param(new_parameter(body))
32
+ .header_param(new_parameter('application/json', key: 'accept'))
33
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
34
+ .auth(Single.new('BasicAuth')))
35
+ .response(new_response_handler
36
+ .deserializer(APIHelper.method(:custom_type_deserializer))
37
+ .deserialize_into(DeviceDataResponse201.method(:from_hash))
38
+ .local_error('400',
39
+ 'Bad request',
40
+ ValidationErrorResponseException)
41
+ .local_error('401',
42
+ 'Unauthorized',
43
+ ErrorResponseException)
44
+ .local_error('406',
45
+ 'Not acceptable',
46
+ HeaderErrorResponseException)
47
+ .local_error('415',
48
+ 'Unsupported media type',
49
+ ErrorResponseException)
50
+ .local_error('500',
51
+ 'Internal server error',
52
+ ErrorResponseException))
53
+ .execute
54
+ end
55
+
56
+ # Verify authentication challenge. `linkData` refers to the pre-encoded
57
+ # segment of the URL that uniquely identifies a payment resource. It appears
58
+ # immediately after /payments/ and continues until the next / or URL
59
+ # delimiter.
60
+ # @param [String] link_data Required parameter: TODO: type description
61
+ # here
62
+ # @param [WPApiVersionEnum] wp_api_version Required parameter: The API
63
+ # version
64
+ # @return [ChallengeResponse201] Response from the API call.
65
+ def complete3ds_challenge(link_data,
66
+ wp_api_version)
67
+ @api_call
68
+ .request(new_request_builder(HttpMethodEnum::POST,
69
+ '/api/payments/{linkData}/3dsChallenges',
70
+ Server::DEFAULT)
71
+ .template_param(new_parameter(link_data, key: 'linkData')
72
+ .should_encode(true))
73
+ .header_param(new_parameter(wp_api_version, key: 'WP-Api-Version'))
74
+ .header_param(new_parameter('application/json', key: 'accept'))
75
+ .auth(Single.new('BasicAuth')))
76
+ .response(new_response_handler
77
+ .deserializer(APIHelper.method(:custom_type_deserializer))
78
+ .deserialize_into(ChallengeResponse201.method(:from_hash))
79
+ .local_error('400',
80
+ 'Bad request',
81
+ ValidationErrorResponseException)
82
+ .local_error('401',
83
+ 'Unauthorized',
84
+ ErrorResponseException)
85
+ .local_error('406',
86
+ 'Not acceptable',
87
+ HeaderErrorResponseException)
88
+ .local_error('415',
89
+ 'Unsupported media type',
90
+ ErrorResponseException)
91
+ .local_error('500',
92
+ 'Internal server error',
93
+ ErrorResponseException))
94
+ .execute
95
+ end
96
+ end
97
+ end