onlinepayments-sdk-ruby 4.23.0 → 5.1.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 (414) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -0
  3. data/LICENSE.txt +0 -0
  4. data/README.md +5 -6
  5. data/Rakefile +0 -0
  6. data/lib/onlinepayments/sdk/api_exception.rb +47 -35
  7. data/lib/onlinepayments/sdk/api_resource.rb +49 -97
  8. data/lib/onlinepayments/sdk/authentication/authenticator.rb +19 -0
  9. data/lib/onlinepayments/sdk/authentication/authorization_type.rb +15 -0
  10. data/lib/onlinepayments/sdk/authentication/v1hmac_authenticator.rb +109 -0
  11. data/lib/onlinepayments/sdk/authentication.rb +1 -0
  12. data/lib/onlinepayments/sdk/authorization_exception.rb +14 -8
  13. data/lib/onlinepayments/sdk/call_context.rb +30 -21
  14. data/lib/onlinepayments/sdk/client.rb +36 -18
  15. data/lib/onlinepayments/sdk/communication/communication_exception.rb +19 -0
  16. data/lib/onlinepayments/sdk/communication/connection.rb +48 -0
  17. data/lib/onlinepayments/sdk/communication/default_connection.rb +427 -0
  18. data/lib/onlinepayments/sdk/communication/metadata_provider.rb +160 -0
  19. data/lib/onlinepayments/sdk/communication/multipart_form_data_object.rb +52 -0
  20. data/lib/onlinepayments/sdk/communication/multipart_form_data_request.rb +13 -0
  21. data/lib/onlinepayments/sdk/communication/not_found_exception.rb +19 -0
  22. data/lib/onlinepayments/sdk/communication/param_request.rb +14 -0
  23. data/lib/onlinepayments/sdk/communication/pooled_connection.rb +26 -0
  24. data/lib/onlinepayments/sdk/communication/request_header.rb +62 -0
  25. data/lib/onlinepayments/sdk/communication/request_param.rb +28 -0
  26. data/lib/onlinepayments/sdk/communication/response_exception.rb +56 -0
  27. data/lib/onlinepayments/sdk/communication/response_header.rb +78 -0
  28. data/lib/onlinepayments/sdk/communication.rb +1 -0
  29. data/lib/onlinepayments/sdk/communicator.rb +475 -268
  30. data/lib/onlinepayments/sdk/communicator_configuration.rb +162 -53
  31. data/lib/onlinepayments/sdk/declined_payment_exception.rb +28 -21
  32. data/lib/onlinepayments/sdk/declined_payout_exception.rb +28 -23
  33. data/lib/onlinepayments/sdk/declined_refund_exception.rb +28 -23
  34. data/lib/onlinepayments/sdk/declined_transaction_exception.rb +16 -10
  35. data/lib/onlinepayments/sdk/domain/account_on_file.rb +44 -35
  36. data/lib/onlinepayments/sdk/domain/account_on_file_attribute.rb +42 -28
  37. data/lib/onlinepayments/sdk/domain/account_on_file_display_hints.rb +29 -24
  38. data/lib/onlinepayments/sdk/domain/acquirer_information.rb +27 -22
  39. data/lib/onlinepayments/sdk/domain/acquirer_selection_information.rb +34 -24
  40. data/lib/onlinepayments/sdk/domain/additional_order_input.rb +43 -38
  41. data/lib/onlinepayments/sdk/domain/address.rb +65 -43
  42. data/lib/onlinepayments/sdk/domain/address_personal.rb +78 -52
  43. data/lib/onlinepayments/sdk/domain/airline_data.rb +204 -123
  44. data/lib/onlinepayments/sdk/domain/airline_flight_leg.rb +158 -95
  45. data/lib/onlinepayments/sdk/domain/airline_passenger.rb +59 -39
  46. data/lib/onlinepayments/sdk/domain/amount_breakdown.rb +27 -20
  47. data/lib/onlinepayments/sdk/domain/amount_of_money.rb +27 -20
  48. data/lib/onlinepayments/sdk/domain/api_error.rb +73 -47
  49. data/lib/onlinepayments/sdk/domain/apple_pay_line_item.rb +72 -0
  50. data/lib/onlinepayments/sdk/domain/apple_pay_recurring_payment_request.rb +61 -0
  51. data/lib/onlinepayments/sdk/domain/bank_account_iban.rb +20 -16
  52. data/lib/onlinepayments/sdk/domain/browser_data.rb +51 -35
  53. data/lib/onlinepayments/sdk/domain/calculate_surcharge_request.rb +27 -24
  54. data/lib/onlinepayments/sdk/domain/calculate_surcharge_response.rb +22 -20
  55. data/lib/onlinepayments/sdk/domain/cancel_payment_request.rb +27 -22
  56. data/lib/onlinepayments/sdk/domain/cancel_payment_response.rb +20 -18
  57. data/lib/onlinepayments/sdk/domain/capture.rb +41 -32
  58. data/lib/onlinepayments/sdk/domain/capture_output.rb +106 -78
  59. data/lib/onlinepayments/sdk/domain/capture_payment_request.rb +43 -26
  60. data/lib/onlinepayments/sdk/domain/capture_response.rb +41 -32
  61. data/lib/onlinepayments/sdk/domain/capture_status_output.rb +20 -16
  62. data/lib/onlinepayments/sdk/domain/captures_response.rb +22 -20
  63. data/lib/onlinepayments/sdk/domain/card.rb +41 -28
  64. data/lib/onlinepayments/sdk/domain/card_essentials.rb +41 -28
  65. data/lib/onlinepayments/sdk/domain/card_fraud_results.rb +34 -24
  66. data/lib/onlinepayments/sdk/domain/card_info.rb +27 -20
  67. data/lib/onlinepayments/sdk/domain/card_payment_method_specific_input.rb +199 -128
  68. data/lib/onlinepayments/sdk/domain/card_payment_method_specific_input_base.rb +149 -104
  69. data/lib/onlinepayments/sdk/domain/card_payment_method_specific_input_for_hosted_checkout.rb +36 -28
  70. data/lib/onlinepayments/sdk/domain/card_payment_method_specific_output.rb +142 -100
  71. data/lib/onlinepayments/sdk/domain/card_payout_method_specific_input.rb +41 -30
  72. data/lib/onlinepayments/sdk/domain/card_recurrence_details.rb +20 -16
  73. data/lib/onlinepayments/sdk/domain/card_source.rb +41 -30
  74. data/lib/onlinepayments/sdk/domain/card_without_cvv.rb +34 -24
  75. data/lib/onlinepayments/sdk/domain/company_information.rb +20 -16
  76. data/lib/onlinepayments/sdk/domain/complete_payment_card_payment_method_specific_input.rb +20 -18
  77. data/lib/onlinepayments/sdk/domain/complete_payment_request.rb +27 -24
  78. data/lib/onlinepayments/sdk/domain/complete_payment_response.rb +35 -31
  79. data/lib/onlinepayments/sdk/domain/contact_details.rb +51 -35
  80. data/lib/onlinepayments/sdk/domain/create_hosted_checkout_request.rb +76 -59
  81. data/lib/onlinepayments/sdk/domain/create_hosted_checkout_response.rb +60 -43
  82. data/lib/onlinepayments/sdk/domain/create_hosted_tokenization_request.rb +57 -42
  83. data/lib/onlinepayments/sdk/domain/create_hosted_tokenization_response.rb +57 -44
  84. data/lib/onlinepayments/sdk/domain/create_mandate_request.rb +71 -48
  85. data/lib/onlinepayments/sdk/domain/create_mandate_response.rb +27 -24
  86. data/lib/onlinepayments/sdk/domain/create_mandate_with_return_url.rb +71 -48
  87. data/lib/onlinepayments/sdk/domain/create_payment_link_request.rb +127 -87
  88. data/lib/onlinepayments/sdk/domain/create_payment_request.rb +82 -60
  89. data/lib/onlinepayments/sdk/domain/create_payment_response.rb +35 -31
  90. data/lib/onlinepayments/sdk/domain/create_payout_request.rb +61 -40
  91. data/lib/onlinepayments/sdk/domain/create_token_request.rb +27 -22
  92. data/lib/onlinepayments/sdk/domain/created_payment_output.rb +27 -22
  93. data/lib/onlinepayments/sdk/domain/created_token_response.rb +50 -38
  94. data/lib/onlinepayments/sdk/domain/credit_card_specific_input_hosted_tokenization.rb +29 -26
  95. data/lib/onlinepayments/sdk/domain/credit_card_validation_rules_hosted_tokenization.rb +27 -20
  96. data/lib/onlinepayments/sdk/domain/currency_conversion.rb +27 -22
  97. data/lib/onlinepayments/sdk/domain/currency_conversion_input.rb +27 -20
  98. data/lib/onlinepayments/sdk/domain/currency_conversion_request.rb +27 -24
  99. data/lib/onlinepayments/sdk/domain/currency_conversion_response.rb +34 -28
  100. data/lib/onlinepayments/sdk/domain/currency_conversion_result.rb +27 -20
  101. data/lib/onlinepayments/sdk/domain/currency_conversion_specific_input.rb +20 -16
  102. data/lib/onlinepayments/sdk/domain/customer.rb +87 -68
  103. data/lib/onlinepayments/sdk/domain/customer_account.rb +77 -55
  104. data/lib/onlinepayments/sdk/domain/customer_account_authentication.rb +34 -20
  105. data/lib/onlinepayments/sdk/domain/customer_bank_account.rb +34 -24
  106. data/lib/onlinepayments/sdk/domain/customer_device.rb +64 -44
  107. data/lib/onlinepayments/sdk/domain/customer_device_output.rb +20 -16
  108. data/lib/onlinepayments/sdk/domain/customer_output.rb +20 -18
  109. data/lib/onlinepayments/sdk/domain/customer_payment_activity.rb +34 -24
  110. data/lib/onlinepayments/sdk/domain/customer_token.rb +35 -31
  111. data/lib/onlinepayments/sdk/domain/data_object.rb +32 -0
  112. data/lib/onlinepayments/sdk/domain/dcc_card_source.rb +41 -30
  113. data/lib/onlinepayments/sdk/domain/dcc_proposal.rb +51 -41
  114. data/lib/onlinepayments/sdk/domain/decrypted_payment_data.rb +51 -35
  115. data/lib/onlinepayments/sdk/domain/directory_entry.rb +34 -24
  116. data/lib/onlinepayments/sdk/domain/discount.rb +20 -16
  117. data/lib/onlinepayments/sdk/domain/empty_validator.rb +7 -6
  118. data/lib/onlinepayments/sdk/domain/error_response.rb +29 -24
  119. data/lib/onlinepayments/sdk/domain/external_cardholder_authentication_data.rb +86 -55
  120. data/lib/onlinepayments/sdk/domain/external_token_linked.rb +35 -24
  121. data/lib/onlinepayments/sdk/domain/feedbacks.rb +42 -0
  122. data/lib/onlinepayments/sdk/domain/fixed_list_validator.rb +22 -20
  123. data/lib/onlinepayments/sdk/domain/fraud_fields.rb +37 -28
  124. data/lib/onlinepayments/sdk/domain/fraud_results.rb +20 -16
  125. data/lib/onlinepayments/sdk/domain/g_pay_three_d_secure.rb +50 -36
  126. data/lib/onlinepayments/sdk/domain/get_hosted_checkout_response.rb +27 -22
  127. data/lib/onlinepayments/sdk/domain/get_hosted_tokenization_response.rb +27 -22
  128. data/lib/onlinepayments/sdk/domain/get_iin_details_request.rb +27 -22
  129. data/lib/onlinepayments/sdk/domain/get_iin_details_response.rb +52 -38
  130. data/lib/onlinepayments/sdk/domain/get_mandate_response.rb +20 -18
  131. data/lib/onlinepayments/sdk/domain/get_payment_product_groups_response.rb +22 -20
  132. data/lib/onlinepayments/sdk/domain/get_payment_products_response.rb +22 -20
  133. data/lib/onlinepayments/sdk/domain/get_privacy_policy_response.rb +20 -16
  134. data/lib/onlinepayments/sdk/domain/gift_card_purchase.rb +27 -22
  135. data/lib/onlinepayments/sdk/domain/hosted_checkout_specific_input.rb +83 -56
  136. data/lib/onlinepayments/sdk/domain/hosted_checkout_specific_output.rb +27 -20
  137. data/lib/onlinepayments/sdk/domain/iin_detail.rb +34 -24
  138. data/lib/onlinepayments/sdk/domain/label_template_element.rb +27 -20
  139. data/lib/onlinepayments/sdk/domain/length_validator.rb +27 -20
  140. data/lib/onlinepayments/sdk/domain/line_item.rb +44 -31
  141. data/lib/onlinepayments/sdk/domain/line_item_invoice_data.rb +20 -16
  142. data/lib/onlinepayments/sdk/domain/loan_recipient.rb +51 -35
  143. data/lib/onlinepayments/sdk/domain/lodging_data.rb +20 -16
  144. data/lib/onlinepayments/sdk/domain/mandate_address.rb +51 -35
  145. data/lib/onlinepayments/sdk/domain/mandate_address_response.rb +51 -35
  146. data/lib/onlinepayments/sdk/domain/mandate_contact_details.rb +20 -16
  147. data/lib/onlinepayments/sdk/domain/mandate_customer.rb +52 -44
  148. data/lib/onlinepayments/sdk/domain/mandate_customer_response.rb +52 -44
  149. data/lib/onlinepayments/sdk/domain/mandate_merchant_action.rb +27 -22
  150. data/lib/onlinepayments/sdk/domain/mandate_personal_information.rb +27 -22
  151. data/lib/onlinepayments/sdk/domain/mandate_personal_information_response.rb +27 -22
  152. data/lib/onlinepayments/sdk/domain/mandate_personal_name.rb +27 -20
  153. data/lib/onlinepayments/sdk/domain/mandate_personal_name_response.rb +27 -20
  154. data/lib/onlinepayments/sdk/domain/mandate_redirect_data.rb +27 -20
  155. data/lib/onlinepayments/sdk/domain/mandate_response.rb +64 -44
  156. data/lib/onlinepayments/sdk/domain/merchant_action.rb +54 -30
  157. data/lib/onlinepayments/sdk/domain/mobile_payment_data.rb +27 -20
  158. data/lib/onlinepayments/sdk/domain/mobile_payment_method_hosted_checkout_specific_input.rb +43 -26
  159. data/lib/onlinepayments/sdk/domain/mobile_payment_method_specific_input.rb +71 -50
  160. data/lib/onlinepayments/sdk/domain/mobile_payment_method_specific_output.rb +58 -45
  161. data/lib/onlinepayments/sdk/domain/mobile_payment_product302_specific_input.rb +32 -0
  162. data/lib/onlinepayments/sdk/domain/mobile_payment_product320_specific_input.rb +20 -18
  163. data/lib/onlinepayments/sdk/domain/mobile_three_d_secure_challenge_parameters.rb +51 -0
  164. data/lib/onlinepayments/sdk/domain/multiple_payment_information.rb +27 -20
  165. data/lib/onlinepayments/sdk/domain/omnichannel_payout_specific_input.rb +20 -16
  166. data/lib/onlinepayments/sdk/domain/operation_output.rb +67 -45
  167. data/lib/onlinepayments/sdk/domain/operation_payment_references.rb +30 -0
  168. data/lib/onlinepayments/sdk/domain/order.rb +75 -66
  169. data/lib/onlinepayments/sdk/domain/order_line_details.rb +79 -47
  170. data/lib/onlinepayments/sdk/domain/order_references.rb +34 -24
  171. data/lib/onlinepayments/sdk/domain/order_status_output.rb +52 -38
  172. data/lib/onlinepayments/sdk/domain/order_type_information.rb +27 -20
  173. data/lib/onlinepayments/sdk/domain/other_details.rb +37 -0
  174. data/lib/onlinepayments/sdk/domain/payment_account_on_file.rb +27 -20
  175. data/lib/onlinepayments/sdk/domain/payment_context.rb +34 -26
  176. data/lib/onlinepayments/sdk/domain/payment_creation_output.rb +41 -28
  177. data/lib/onlinepayments/sdk/domain/payment_details_response.rb +60 -49
  178. data/lib/onlinepayments/sdk/domain/payment_error_response.rb +37 -31
  179. data/lib/onlinepayments/sdk/domain/payment_link_event.rb +34 -24
  180. data/lib/onlinepayments/sdk/domain/payment_link_order_input.rb +34 -28
  181. data/lib/onlinepayments/sdk/domain/payment_link_order_output.rb +34 -28
  182. data/lib/onlinepayments/sdk/domain/payment_link_response.rb +81 -51
  183. data/lib/onlinepayments/sdk/domain/payment_link_specific_input.rb +36 -24
  184. data/lib/onlinepayments/sdk/domain/payment_output.rb +115 -94
  185. data/lib/onlinepayments/sdk/domain/payment_product.rb +117 -85
  186. data/lib/onlinepayments/sdk/domain/payment_product130_specific_input.rb +20 -18
  187. data/lib/onlinepayments/sdk/domain/payment_product130_specific_three_d_secure.rb +41 -28
  188. data/lib/onlinepayments/sdk/domain/payment_product3012.rb +27 -20
  189. data/lib/onlinepayments/sdk/domain/payment_product3012_specific_input.rb +51 -0
  190. data/lib/onlinepayments/sdk/domain/payment_product302_specific_data.rb +22 -20
  191. data/lib/onlinepayments/sdk/domain/payment_product3203_specific_output.rb +27 -24
  192. data/lib/onlinepayments/sdk/domain/payment_product3208_specific_input.rb +20 -16
  193. data/lib/onlinepayments/sdk/domain/payment_product3208_specific_output.rb +20 -16
  194. data/lib/onlinepayments/sdk/domain/payment_product3209_specific_input.rb +20 -16
  195. data/lib/onlinepayments/sdk/domain/payment_product3209_specific_output.rb +20 -16
  196. data/lib/onlinepayments/sdk/domain/payment_product320_specific_data.rb +29 -24
  197. data/lib/onlinepayments/sdk/domain/payment_product5001_specific_output.rb +48 -16
  198. data/lib/onlinepayments/sdk/domain/payment_product5100_specific_input.rb +20 -16
  199. data/lib/onlinepayments/sdk/domain/payment_product5402_specific_output.rb +20 -16
  200. data/lib/onlinepayments/sdk/domain/payment_product5404.rb +27 -20
  201. data/lib/onlinepayments/sdk/domain/payment_product5407.rb +27 -20
  202. data/lib/onlinepayments/sdk/domain/payment_product5500_specific_output.rb +41 -24
  203. data/lib/onlinepayments/sdk/domain/payment_product771_specific_output.rb +20 -16
  204. data/lib/onlinepayments/sdk/domain/payment_product840_customer_account.rb +72 -47
  205. data/lib/onlinepayments/sdk/domain/payment_product840_specific_output.rb +43 -38
  206. data/lib/onlinepayments/sdk/domain/payment_product_display_hints.rb +34 -24
  207. data/lib/onlinepayments/sdk/domain/payment_product_field.rb +41 -32
  208. data/lib/onlinepayments/sdk/domain/payment_product_field_data_restrictions.rb +27 -22
  209. data/lib/onlinepayments/sdk/domain/payment_product_field_display_element.rb +41 -28
  210. data/lib/onlinepayments/sdk/domain/payment_product_field_display_hints.rb +84 -56
  211. data/lib/onlinepayments/sdk/domain/payment_product_field_form_element.rb +30 -24
  212. data/lib/onlinepayments/sdk/domain/payment_product_field_tooltip.rb +28 -20
  213. data/lib/onlinepayments/sdk/domain/payment_product_field_validators.rb +83 -73
  214. data/lib/onlinepayments/sdk/domain/payment_product_filter.rb +32 -29
  215. data/lib/onlinepayments/sdk/domain/payment_product_filter_hosted_tokenization.rb +22 -20
  216. data/lib/onlinepayments/sdk/domain/payment_product_filters_hosted_checkout.rb +27 -24
  217. data/lib/onlinepayments/sdk/domain/payment_product_filters_hosted_tokenization.rb +27 -24
  218. data/lib/onlinepayments/sdk/domain/payment_product_group.rb +44 -37
  219. data/lib/onlinepayments/sdk/domain/payment_product_networks_response.rb +22 -20
  220. data/lib/onlinepayments/sdk/domain/payment_references.rb +27 -20
  221. data/lib/onlinepayments/sdk/domain/payment_response.rb +51 -41
  222. data/lib/onlinepayments/sdk/domain/payment_status_output.rb +66 -46
  223. data/lib/onlinepayments/sdk/domain/payout_error_response.rb +37 -31
  224. data/lib/onlinepayments/sdk/domain/payout_output.rb +27 -22
  225. data/lib/onlinepayments/sdk/domain/payout_response.rb +41 -32
  226. data/lib/onlinepayments/sdk/domain/payout_result.rb +41 -32
  227. data/lib/onlinepayments/sdk/domain/payout_status_output.rb +34 -24
  228. data/lib/onlinepayments/sdk/domain/personal_information.rb +34 -26
  229. data/lib/onlinepayments/sdk/domain/personal_information_token.rb +20 -18
  230. data/lib/onlinepayments/sdk/domain/personal_name.rb +34 -24
  231. data/lib/onlinepayments/sdk/domain/personal_name_token.rb +27 -20
  232. data/lib/onlinepayments/sdk/domain/product_directory.rb +22 -20
  233. data/lib/onlinepayments/sdk/domain/protection_eligibility.rb +27 -20
  234. data/lib/onlinepayments/sdk/domain/range_validator.rb +27 -20
  235. data/lib/onlinepayments/sdk/domain/rate_details.rb +51 -35
  236. data/lib/onlinepayments/sdk/domain/reattempt_instructions.rb +46 -0
  237. data/lib/onlinepayments/sdk/domain/reattempt_instructions_conditions.rb +37 -0
  238. data/lib/onlinepayments/sdk/domain/redirect_data.rb +27 -20
  239. data/lib/onlinepayments/sdk/domain/redirect_payment_method_specific_input.rb +166 -88
  240. data/lib/onlinepayments/sdk/domain/redirect_payment_method_specific_output.rb +95 -75
  241. data/lib/onlinepayments/sdk/domain/redirect_payment_product3203_specific_input.rb +20 -16
  242. data/lib/onlinepayments/sdk/domain/redirect_payment_product3204_specific_input.rb +30 -0
  243. data/lib/onlinepayments/sdk/domain/redirect_payment_product3302_specific_input.rb +44 -0
  244. data/lib/onlinepayments/sdk/domain/redirect_payment_product3306_specific_input.rb +20 -16
  245. data/lib/onlinepayments/sdk/domain/redirect_payment_product5001_specific_input.rb +27 -16
  246. data/lib/onlinepayments/sdk/domain/redirect_payment_product5300_specific_input.rb +72 -0
  247. data/lib/onlinepayments/sdk/domain/redirect_payment_product5402_specific_input.rb +30 -0
  248. data/lib/onlinepayments/sdk/domain/redirect_payment_product5403_specific_input.rb +30 -0
  249. data/lib/onlinepayments/sdk/domain/redirect_payment_product5406_specific_input.rb +20 -18
  250. data/lib/onlinepayments/sdk/domain/redirect_payment_product5408_specific_input.rb +27 -22
  251. data/lib/onlinepayments/sdk/domain/redirect_payment_product5410_specific_input.rb +32 -0
  252. data/lib/onlinepayments/sdk/domain/redirect_payment_product809_specific_input.rb +20 -16
  253. data/lib/onlinepayments/sdk/domain/redirect_payment_product840_specific_input.rb +41 -20
  254. data/lib/onlinepayments/sdk/domain/redirection_data.rb +20 -16
  255. data/lib/onlinepayments/sdk/domain/refund_card_method_specific_output.rb +34 -26
  256. data/lib/onlinepayments/sdk/domain/refund_e_wallet_method_specific_output.rb +34 -26
  257. data/lib/onlinepayments/sdk/domain/refund_error_response.rb +37 -31
  258. data/lib/onlinepayments/sdk/domain/refund_mobile_method_specific_output.rb +34 -24
  259. data/lib/onlinepayments/sdk/domain/refund_output.rb +89 -64
  260. data/lib/onlinepayments/sdk/domain/refund_payment_product840_customer_account.rb +34 -24
  261. data/lib/onlinepayments/sdk/domain/refund_payment_product840_specific_output.rb +20 -18
  262. data/lib/onlinepayments/sdk/domain/refund_redirect_method_specific_output.rb +27 -20
  263. data/lib/onlinepayments/sdk/domain/refund_request.rb +43 -24
  264. data/lib/onlinepayments/sdk/domain/refund_response.rb +41 -32
  265. data/lib/onlinepayments/sdk/domain/refunds_response.rb +22 -20
  266. data/lib/onlinepayments/sdk/domain/regular_expression_validator.rb +20 -16
  267. data/lib/onlinepayments/sdk/domain/send_test_request.rb +30 -0
  268. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input.rb +27 -22
  269. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_input_base.rb +27 -22
  270. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_method_specific_output.rb +34 -28
  271. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input.rb +27 -22
  272. data/lib/onlinepayments/sdk/domain/sepa_direct_debit_payment_product771_specific_input_base.rb +27 -22
  273. data/lib/onlinepayments/sdk/domain/session_request.rb +22 -20
  274. data/lib/onlinepayments/sdk/domain/session_response.rb +53 -39
  275. data/lib/onlinepayments/sdk/domain/shipping.rb +76 -52
  276. data/lib/onlinepayments/sdk/domain/shipping_method.rb +41 -28
  277. data/lib/onlinepayments/sdk/domain/shopping_cart.rb +62 -48
  278. data/lib/onlinepayments/sdk/domain/shopping_cart_extension.rb +51 -43
  279. data/lib/onlinepayments/sdk/domain/show_form_data.rb +35 -31
  280. data/lib/onlinepayments/sdk/domain/show_instructions_data.rb +30 -0
  281. data/lib/onlinepayments/sdk/domain/subsequent_card_payment_method_specific_input.rb +60 -39
  282. data/lib/onlinepayments/sdk/domain/subsequent_payment_product5001_specific_input.rb +20 -16
  283. data/lib/onlinepayments/sdk/domain/subsequent_payment_request.rb +35 -31
  284. data/lib/onlinepayments/sdk/domain/subsequent_payment_response.rb +20 -18
  285. data/lib/onlinepayments/sdk/domain/surcharge.rb +59 -48
  286. data/lib/onlinepayments/sdk/domain/surcharge_calculation_card.rb +27 -20
  287. data/lib/onlinepayments/sdk/domain/surcharge_for_payment_link.rb +20 -16
  288. data/lib/onlinepayments/sdk/domain/surcharge_rate.rb +41 -28
  289. data/lib/onlinepayments/sdk/domain/surcharge_specific_input.rb +27 -22
  290. data/lib/onlinepayments/sdk/domain/surcharge_specific_output.rb +34 -28
  291. data/lib/onlinepayments/sdk/domain/test_connection.rb +20 -16
  292. data/lib/onlinepayments/sdk/domain/three_d_secure.rb +98 -63
  293. data/lib/onlinepayments/sdk/domain/three_d_secure_base.rb +78 -52
  294. data/lib/onlinepayments/sdk/domain/three_d_secure_data.rb +34 -24
  295. data/lib/onlinepayments/sdk/domain/three_d_secure_results.rb +107 -67
  296. data/lib/onlinepayments/sdk/domain/token_card.rb +27 -22
  297. data/lib/onlinepayments/sdk/domain/token_card_data.rb +27 -18
  298. data/lib/onlinepayments/sdk/domain/token_card_specific_input.rb +20 -18
  299. data/lib/onlinepayments/sdk/domain/token_data.rb +27 -18
  300. data/lib/onlinepayments/sdk/domain/token_e_wallet.rb +28 -22
  301. data/lib/onlinepayments/sdk/domain/token_response.rb +58 -45
  302. data/lib/onlinepayments/sdk/domain/transaction.rb +20 -18
  303. data/lib/onlinepayments/sdk/domain/uploadable_file.rb +33 -0
  304. data/lib/onlinepayments/sdk/domain/validate_credentials_request.rb +37 -0
  305. data/lib/onlinepayments/sdk/domain/validate_credentials_response.rb +30 -0
  306. data/lib/onlinepayments/sdk/domain/value_mapping_element.rb +29 -24
  307. data/lib/onlinepayments/sdk/domain.rb +4 -0
  308. data/lib/onlinepayments/sdk/exception_factory.rb +76 -0
  309. data/lib/onlinepayments/sdk/factory.rb +163 -118
  310. data/lib/onlinepayments/sdk/idempotence_exception.rb +23 -19
  311. data/lib/onlinepayments/sdk/json/default_marshaller.rb +34 -0
  312. data/lib/onlinepayments/sdk/json/marshaller.rb +27 -0
  313. data/lib/onlinepayments/sdk/json/marshaller_syntax_exception.rb +9 -0
  314. data/lib/onlinepayments/sdk/json.rb +1 -0
  315. data/lib/onlinepayments/sdk/logging/communicator_logger.rb +18 -16
  316. data/lib/onlinepayments/sdk/logging/log_message_builder.rb +80 -47
  317. data/lib/onlinepayments/sdk/logging/logging_capable.rb +1 -1
  318. data/lib/onlinepayments/sdk/logging/obfuscation/body_obfuscator.rb +113 -0
  319. data/lib/onlinepayments/sdk/logging/obfuscation/header_obfuscator.rb +54 -0
  320. data/lib/onlinepayments/sdk/logging/obfuscation/obfuscation_capable.rb +21 -0
  321. data/lib/onlinepayments/sdk/logging/obfuscation/obfuscation_rule.rb +47 -0
  322. data/lib/onlinepayments/sdk/logging/obfuscation.rb +1 -0
  323. data/lib/onlinepayments/sdk/logging/request_log_message_builder.rb +40 -29
  324. data/lib/onlinepayments/sdk/logging/response_log_message_builder.rb +30 -23
  325. data/lib/onlinepayments/sdk/logging/ruby_communicator_logger.rb +49 -45
  326. data/lib/onlinepayments/sdk/logging/stdout_communicator_logger.rb +20 -23
  327. data/lib/onlinepayments/sdk/logging.rb +1 -10
  328. data/lib/onlinepayments/sdk/merchant/captures/captures_client.rb +57 -0
  329. data/lib/onlinepayments/sdk/merchant/captures.rb +4 -0
  330. data/lib/onlinepayments/sdk/merchant/complete/complete_client.rb +60 -0
  331. data/lib/onlinepayments/sdk/merchant/complete.rb +4 -0
  332. data/lib/onlinepayments/sdk/merchant/hostedcheckout/hosted_checkout_client.rb +72 -71
  333. data/lib/onlinepayments/sdk/merchant/hostedcheckout.rb +4 -0
  334. data/lib/onlinepayments/sdk/merchant/hostedtokenization/hosted_tokenization_client.rb +72 -71
  335. data/lib/onlinepayments/sdk/merchant/hostedtokenization.rb +4 -0
  336. data/lib/onlinepayments/sdk/merchant/mandates/mandates_client.rb +165 -164
  337. data/lib/onlinepayments/sdk/merchant/mandates.rb +4 -0
  338. data/lib/onlinepayments/sdk/merchant/merchant_client.rb +116 -64
  339. data/lib/onlinepayments/sdk/merchant/paymentlinks/payment_links_client.rb +102 -101
  340. data/lib/onlinepayments/sdk/merchant/paymentlinks.rb +4 -0
  341. data/lib/onlinepayments/sdk/merchant/payments/payments_client.rb +233 -332
  342. data/lib/onlinepayments/sdk/merchant/payments.rb +4 -0
  343. data/lib/onlinepayments/sdk/merchant/payouts/payouts_client.rb +73 -71
  344. data/lib/onlinepayments/sdk/merchant/payouts.rb +4 -0
  345. data/lib/onlinepayments/sdk/merchant/privacypolicy/get_privacy_policy_params.rb +32 -0
  346. data/lib/onlinepayments/sdk/merchant/privacypolicy/privacy_policy_client.rb +54 -0
  347. data/lib/onlinepayments/sdk/merchant/privacypolicy.rb +4 -0
  348. data/lib/onlinepayments/sdk/merchant/productgroups/get_product_group_params.rb +50 -47
  349. data/lib/onlinepayments/sdk/merchant/productgroups/get_product_groups_params.rb +50 -47
  350. data/lib/onlinepayments/sdk/merchant/productgroups/product_groups_client.rb +72 -72
  351. data/lib/onlinepayments/sdk/merchant/productgroups.rb +4 -0
  352. data/lib/onlinepayments/sdk/merchant/products/get_payment_product_networks_params.rb +27 -25
  353. data/lib/onlinepayments/sdk/merchant/products/get_payment_product_params.rb +50 -47
  354. data/lib/onlinepayments/sdk/merchant/products/get_payment_products_params.rb +50 -47
  355. data/lib/onlinepayments/sdk/merchant/products/get_product_directory_params.rb +21 -19
  356. data/lib/onlinepayments/sdk/merchant/products/products_client.rb +134 -136
  357. data/lib/onlinepayments/sdk/merchant/products.rb +4 -0
  358. data/lib/onlinepayments/sdk/merchant/refunds/refunds_client.rb +57 -0
  359. data/lib/onlinepayments/sdk/merchant/refunds.rb +4 -0
  360. data/lib/onlinepayments/sdk/merchant/services/services_client.rb +124 -155
  361. data/lib/onlinepayments/sdk/merchant/services.rb +4 -0
  362. data/lib/onlinepayments/sdk/merchant/sessions/sessions_client.rb +42 -41
  363. data/lib/onlinepayments/sdk/merchant/sessions.rb +4 -0
  364. data/lib/onlinepayments/sdk/merchant/tokens/tokens_client.rb +101 -100
  365. data/lib/onlinepayments/sdk/merchant/tokens.rb +4 -0
  366. data/lib/onlinepayments/sdk/merchant/webhooks/webhooks_client.rb +83 -0
  367. data/lib/onlinepayments/sdk/merchant/webhooks.rb +4 -0
  368. data/lib/onlinepayments/sdk/merchant.rb +4 -0
  369. data/lib/onlinepayments/sdk/platform_exception.rb +19 -0
  370. data/lib/onlinepayments/sdk/proxy_configuration.rb +60 -60
  371. data/lib/onlinepayments/sdk/reference_exception.rb +14 -9
  372. data/lib/onlinepayments/sdk/validation_exception.rb +14 -9
  373. data/lib/onlinepayments/sdk/webhooks/api_version_mismatch_exception.rb +17 -15
  374. data/lib/onlinepayments/sdk/webhooks/in_memory_secret_key_store.rb +46 -43
  375. data/lib/onlinepayments/sdk/webhooks/secret_key_not_available_exception.rb +16 -12
  376. data/lib/onlinepayments/sdk/webhooks/secret_key_store.rb +13 -11
  377. data/lib/onlinepayments/sdk/webhooks/signature_validation_exception.rb +15 -14
  378. data/lib/onlinepayments/sdk/webhooks/signature_validator.rb +81 -0
  379. data/lib/onlinepayments/sdk/webhooks/webhooks_event.rb +84 -53
  380. data/lib/onlinepayments/sdk/webhooks/webhooks_helper.rb +28 -90
  381. data/lib/onlinepayments/sdk/webhooks.rb +1 -11
  382. data/lib/onlinepayments/sdk.rb +4 -26
  383. data/onlinepayments-sdk-ruby.gemspec +3 -2
  384. metadata +95 -35
  385. data/lib/onlinepayments/sdk/authenticator.rb +0 -16
  386. data/lib/onlinepayments/sdk/communication_exception.rb +0 -16
  387. data/lib/onlinepayments/sdk/connection.rb +0 -41
  388. data/lib/onlinepayments/sdk/data_object.rb +0 -31
  389. data/lib/onlinepayments/sdk/defaultimpl/authorization_type.rb +0 -24
  390. data/lib/onlinepayments/sdk/defaultimpl/default_authenticator.rb +0 -108
  391. data/lib/onlinepayments/sdk/defaultimpl/default_connection.rb +0 -365
  392. data/lib/onlinepayments/sdk/defaultimpl/default_marshaller.rb +0 -32
  393. data/lib/onlinepayments/sdk/defaultimpl.rb +0 -6
  394. data/lib/onlinepayments/sdk/endpoint_configuration.rb +0 -127
  395. data/lib/onlinepayments/sdk/exceptions.rb +0 -8
  396. data/lib/onlinepayments/sdk/logging/logging_util.rb +0 -286
  397. data/lib/onlinepayments/sdk/marshaller.rb +0 -24
  398. data/lib/onlinepayments/sdk/marshaller_syntax_exception.rb +0 -6
  399. data/lib/onlinepayments/sdk/merchant/services/get_privacy_policy_params.rb +0 -30
  400. data/lib/onlinepayments/sdk/meta_data_provider.rb +0 -150
  401. data/lib/onlinepayments/sdk/modules.rb +0 -62
  402. data/lib/onlinepayments/sdk/multipart_form_data_object.rb +0 -44
  403. data/lib/onlinepayments/sdk/multipart_form_data_request.rb +0 -9
  404. data/lib/onlinepayments/sdk/not_found_exception.rb +0 -16
  405. data/lib/onlinepayments/sdk/param_request.rb +0 -11
  406. data/lib/onlinepayments/sdk/payment_platform_exception.rb +0 -15
  407. data/lib/onlinepayments/sdk/pooled_connection.rb +0 -21
  408. data/lib/onlinepayments/sdk/request_header.rb +0 -50
  409. data/lib/onlinepayments/sdk/request_param.rb +0 -23
  410. data/lib/onlinepayments/sdk/response_exception.rb +0 -47
  411. data/lib/onlinepayments/sdk/response_header.rb +0 -42
  412. data/lib/onlinepayments/sdk/uploadable_file.rb +0 -30
  413. data/lib/onlinepayments/sdk/webhooks/webhooks.rb +0 -22
  414. data/lib/onlinepayments/sdk/webhooks/webhooks_helper_builder.rb +0 -25
@@ -1,28 +1,37 @@
1
1
  #
2
- # This class was auto-generated.
2
+ # This file was automatically generated.
3
3
  #
4
- require 'onlinepayments/sdk/data_object'
5
4
  require 'onlinepayments/sdk/domain/card_without_cvv'
5
+ require 'onlinepayments/sdk/domain/data_object'
6
6
 
7
- module OnlinePayments::SDK
8
- module Domain
7
+ module OnlinePayments
8
+ module SDK
9
+ module Domain
10
+ # @attr [OnlinePayments::SDK::Domain::CardWithoutCvv] card_without_cvv
11
+ # @attr [String] cobrand_selection_indicator
12
+ class TokenCardData < OnlinePayments::SDK::Domain::DataObject
9
13
 
10
- # @attr [OnlinePayments::SDK::Domain::CardWithoutCvv] card_without_cvv
11
- class TokenCardData < OnlinePayments::SDK::DataObject
12
- attr_accessor :card_without_cvv
14
+ attr_accessor :card_without_cvv
13
15
 
14
- # @return (Hash)
15
- def to_h
16
- hash = super
17
- hash['cardWithoutCvv'] = @card_without_cvv.to_h if @card_without_cvv
18
- hash
19
- end
16
+ attr_accessor :cobrand_selection_indicator
17
+
18
+ # @return (Hash)
19
+ def to_h
20
+ hash = super
21
+ hash['cardWithoutCvv'] = @card_without_cvv.to_h unless @card_without_cvv.nil?
22
+ hash['cobrandSelectionIndicator'] = @cobrand_selection_indicator unless @cobrand_selection_indicator.nil?
23
+ hash
24
+ end
20
25
 
21
- def from_hash(hash)
22
- super
23
- if hash.key? 'cardWithoutCvv'
24
- raise TypeError, "value '%s' is not a Hash" % [hash['cardWithoutCvv']] unless hash['cardWithoutCvv'].is_a? Hash
25
- @card_without_cvv = OnlinePayments::SDK::Domain::CardWithoutCvv.new_from_hash(hash['cardWithoutCvv'])
26
+ def from_hash(hash)
27
+ super
28
+ if hash.has_key? 'cardWithoutCvv'
29
+ raise TypeError, "value '%s' is not a Hash" % [hash['cardWithoutCvv']] unless hash['cardWithoutCvv'].is_a? Hash
30
+ @card_without_cvv = OnlinePayments::SDK::Domain::CardWithoutCvv.new_from_hash(hash['cardWithoutCvv'])
31
+ end
32
+ if hash.has_key? 'cobrandSelectionIndicator'
33
+ @cobrand_selection_indicator = hash['cobrandSelectionIndicator']
34
+ end
26
35
  end
27
36
  end
28
37
  end
@@ -1,28 +1,30 @@
1
1
  #
2
- # This class was auto-generated.
2
+ # This file was automatically generated.
3
3
  #
4
- require 'onlinepayments/sdk/data_object'
4
+ require 'onlinepayments/sdk/domain/data_object'
5
5
  require 'onlinepayments/sdk/domain/token_data'
6
6
 
7
- module OnlinePayments::SDK
8
- module Domain
7
+ module OnlinePayments
8
+ module SDK
9
+ module Domain
10
+ # @attr [OnlinePayments::SDK::Domain::TokenData] data
11
+ class TokenCardSpecificInput < OnlinePayments::SDK::Domain::DataObject
9
12
 
10
- # @attr [OnlinePayments::SDK::Domain::TokenData] data
11
- class TokenCardSpecificInput < OnlinePayments::SDK::DataObject
12
- attr_accessor :data
13
+ attr_accessor :data
13
14
 
14
- # @return (Hash)
15
- def to_h
16
- hash = super
17
- hash['data'] = @data.to_h if @data
18
- hash
19
- end
15
+ # @return (Hash)
16
+ def to_h
17
+ hash = super
18
+ hash['data'] = @data.to_h unless @data.nil?
19
+ hash
20
+ end
20
21
 
21
- def from_hash(hash)
22
- super
23
- if hash.key? 'data'
24
- raise TypeError, "value '%s' is not a Hash" % [hash['data']] unless hash['data'].is_a? Hash
25
- @data = OnlinePayments::SDK::Domain::TokenData.new_from_hash(hash['data'])
22
+ def from_hash(hash)
23
+ super
24
+ if hash.has_key? 'data'
25
+ raise TypeError, "value '%s' is not a Hash" % [hash['data']] unless hash['data'].is_a? Hash
26
+ @data = OnlinePayments::SDK::Domain::TokenData.new_from_hash(hash['data'])
27
+ end
26
28
  end
27
29
  end
28
30
  end
@@ -1,28 +1,37 @@
1
1
  #
2
- # This class was auto-generated.
2
+ # This file was automatically generated.
3
3
  #
4
- require 'onlinepayments/sdk/data_object'
5
4
  require 'onlinepayments/sdk/domain/card'
5
+ require 'onlinepayments/sdk/domain/data_object'
6
6
 
7
- module OnlinePayments::SDK
8
- module Domain
7
+ module OnlinePayments
8
+ module SDK
9
+ module Domain
10
+ # @attr [OnlinePayments::SDK::Domain::Card] card
11
+ # @attr [String] cobrand_selection_indicator
12
+ class TokenData < OnlinePayments::SDK::Domain::DataObject
9
13
 
10
- # @attr [OnlinePayments::SDK::Domain::Card] card
11
- class TokenData < OnlinePayments::SDK::DataObject
12
- attr_accessor :card
14
+ attr_accessor :card
13
15
 
14
- # @return (Hash)
15
- def to_h
16
- hash = super
17
- hash['card'] = @card.to_h if @card
18
- hash
19
- end
16
+ attr_accessor :cobrand_selection_indicator
17
+
18
+ # @return (Hash)
19
+ def to_h
20
+ hash = super
21
+ hash['card'] = @card.to_h unless @card.nil?
22
+ hash['cobrandSelectionIndicator'] = @cobrand_selection_indicator unless @cobrand_selection_indicator.nil?
23
+ hash
24
+ end
20
25
 
21
- def from_hash(hash)
22
- super
23
- if hash.key? 'card'
24
- raise TypeError, "value '%s' is not a Hash" % [hash['card']] unless hash['card'].is_a? Hash
25
- @card = OnlinePayments::SDK::Domain::Card.new_from_hash(hash['card'])
26
+ def from_hash(hash)
27
+ super
28
+ if hash.has_key? 'card'
29
+ raise TypeError, "value '%s' is not a Hash" % [hash['card']] unless hash['card'].is_a? Hash
30
+ @card = OnlinePayments::SDK::Domain::Card.new_from_hash(hash['card'])
31
+ end
32
+ if hash.has_key? 'cobrandSelectionIndicator'
33
+ @cobrand_selection_indicator = hash['cobrandSelectionIndicator']
34
+ end
26
35
  end
27
36
  end
28
37
  end
@@ -1,32 +1,38 @@
1
1
  #
2
- # This class was auto-generated.
2
+ # This file was automatically generated.
3
3
  #
4
- require 'onlinepayments/sdk/data_object'
5
4
  require 'onlinepayments/sdk/domain/customer_token'
5
+ require 'onlinepayments/sdk/domain/data_object'
6
6
 
7
- module OnlinePayments::SDK
8
- module Domain
7
+ module OnlinePayments
8
+ module SDK
9
+ module Domain
10
+ # @attr [String] alias
11
+ # @attr [OnlinePayments::SDK::Domain::CustomerToken] customer
12
+ class TokenEWallet < OnlinePayments::SDK::Domain::DataObject
9
13
 
10
- # @attr [String] alias
11
- # @attr [OnlinePayments::SDK::Domain::CustomerToken] customer
12
- class TokenEWallet < OnlinePayments::SDK::DataObject
13
- attr_accessor :alias
14
- attr_accessor :customer
14
+ # @deprecated This field is not used by any payment product An alias for the token. This can be used to visually represent the token.
15
+ attr_accessor :alias
15
16
 
16
- # @return (Hash)
17
- def to_h
18
- hash = super
19
- hash['alias'] = @alias unless @alias.nil?
20
- hash['customer'] = @customer.to_h if @customer
21
- hash
22
- end
17
+ attr_accessor :customer
18
+
19
+ # @return (Hash)
20
+ def to_h
21
+ hash = super
22
+ hash['alias'] = @alias unless @alias.nil?
23
+ hash['customer'] = @customer.to_h unless @customer.nil?
24
+ hash
25
+ end
23
26
 
24
- def from_hash(hash)
25
- super
26
- @alias = hash['alias'] if hash.key? 'alias'
27
- if hash.key? 'customer'
28
- raise TypeError, "value '%s' is not a Hash" % [hash['customer']] unless hash['customer'].is_a? Hash
29
- @customer = OnlinePayments::SDK::Domain::CustomerToken.new_from_hash(hash['customer'])
27
+ def from_hash(hash)
28
+ super
29
+ if hash.has_key? 'alias'
30
+ @alias = hash['alias']
31
+ end
32
+ if hash.has_key? 'customer'
33
+ raise TypeError, "value '%s' is not a Hash" % [hash['customer']] unless hash['customer'].is_a? Hash
34
+ @customer = OnlinePayments::SDK::Domain::CustomerToken.new_from_hash(hash['customer'])
35
+ end
30
36
  end
31
37
  end
32
38
  end
@@ -1,57 +1,70 @@
1
1
  #
2
- # This class was auto-generated.
2
+ # This file was automatically generated.
3
3
  #
4
- require 'onlinepayments/sdk/data_object'
4
+ require 'onlinepayments/sdk/domain/data_object'
5
5
  require 'onlinepayments/sdk/domain/external_token_linked'
6
6
  require 'onlinepayments/sdk/domain/token_card'
7
7
  require 'onlinepayments/sdk/domain/token_e_wallet'
8
8
 
9
- module OnlinePayments::SDK
10
- module Domain
11
-
12
- # @attr [OnlinePayments::SDK::Domain::TokenCard] card
13
- # @attr [OnlinePayments::SDK::Domain::TokenEWallet] e_wallet
14
- # @attr [OnlinePayments::SDK::Domain::ExternalTokenLinked] external_token_linked
15
- # @attr [String] id
16
- # @attr [true/false] is_temporary
17
- # @attr [Integer] payment_product_id
18
- class TokenResponse < OnlinePayments::SDK::DataObject
19
- attr_accessor :card
20
- attr_accessor :e_wallet
21
- attr_accessor :external_token_linked
22
- attr_accessor :id
23
- attr_accessor :is_temporary
24
- attr_accessor :payment_product_id
25
-
26
- # @return (Hash)
27
- def to_h
28
- hash = super
29
- hash['card'] = @card.to_h if @card
30
- hash['eWallet'] = @e_wallet.to_h if @e_wallet
31
- hash['externalTokenLinked'] = @external_token_linked.to_h if @external_token_linked
32
- hash['id'] = @id unless @id.nil?
33
- hash['isTemporary'] = @is_temporary unless @is_temporary.nil?
34
- hash['paymentProductId'] = @payment_product_id unless @payment_product_id.nil?
35
- hash
36
- end
9
+ module OnlinePayments
10
+ module SDK
11
+ module Domain
12
+ # @attr [OnlinePayments::SDK::Domain::TokenCard] card
13
+ # @attr [OnlinePayments::SDK::Domain::TokenEWallet] e_wallet
14
+ # @attr [OnlinePayments::SDK::Domain::ExternalTokenLinked] external_token_linked
15
+ # @attr [String] id
16
+ # @attr [true/false] is_temporary
17
+ # @attr [Integer] payment_product_id
18
+ class TokenResponse < OnlinePayments::SDK::Domain::DataObject
37
19
 
38
- def from_hash(hash)
39
- super
40
- if hash.key? 'card'
41
- raise TypeError, "value '%s' is not a Hash" % [hash['card']] unless hash['card'].is_a? Hash
42
- @card = OnlinePayments::SDK::Domain::TokenCard.new_from_hash(hash['card'])
43
- end
44
- if hash.key? 'eWallet'
45
- raise TypeError, "value '%s' is not a Hash" % [hash['eWallet']] unless hash['eWallet'].is_a? Hash
46
- @e_wallet = OnlinePayments::SDK::Domain::TokenEWallet.new_from_hash(hash['eWallet'])
20
+ attr_accessor :card
21
+
22
+ attr_accessor :e_wallet
23
+
24
+ attr_accessor :external_token_linked
25
+
26
+ attr_accessor :id
27
+
28
+ attr_accessor :is_temporary
29
+
30
+ attr_accessor :payment_product_id
31
+
32
+ # @return (Hash)
33
+ def to_h
34
+ hash = super
35
+ hash['card'] = @card.to_h unless @card.nil?
36
+ hash['eWallet'] = @e_wallet.to_h unless @e_wallet.nil?
37
+ hash['externalTokenLinked'] = @external_token_linked.to_h unless @external_token_linked.nil?
38
+ hash['id'] = @id unless @id.nil?
39
+ hash['isTemporary'] = @is_temporary unless @is_temporary.nil?
40
+ hash['paymentProductId'] = @payment_product_id unless @payment_product_id.nil?
41
+ hash
47
42
  end
48
- if hash.key? 'externalTokenLinked'
49
- raise TypeError, "value '%s' is not a Hash" % [hash['externalTokenLinked']] unless hash['externalTokenLinked'].is_a? Hash
50
- @external_token_linked = OnlinePayments::SDK::Domain::ExternalTokenLinked.new_from_hash(hash['externalTokenLinked'])
43
+
44
+ def from_hash(hash)
45
+ super
46
+ if hash.has_key? 'card'
47
+ raise TypeError, "value '%s' is not a Hash" % [hash['card']] unless hash['card'].is_a? Hash
48
+ @card = OnlinePayments::SDK::Domain::TokenCard.new_from_hash(hash['card'])
49
+ end
50
+ if hash.has_key? 'eWallet'
51
+ raise TypeError, "value '%s' is not a Hash" % [hash['eWallet']] unless hash['eWallet'].is_a? Hash
52
+ @e_wallet = OnlinePayments::SDK::Domain::TokenEWallet.new_from_hash(hash['eWallet'])
53
+ end
54
+ if hash.has_key? 'externalTokenLinked'
55
+ raise TypeError, "value '%s' is not a Hash" % [hash['externalTokenLinked']] unless hash['externalTokenLinked'].is_a? Hash
56
+ @external_token_linked = OnlinePayments::SDK::Domain::ExternalTokenLinked.new_from_hash(hash['externalTokenLinked'])
57
+ end
58
+ if hash.has_key? 'id'
59
+ @id = hash['id']
60
+ end
61
+ if hash.has_key? 'isTemporary'
62
+ @is_temporary = hash['isTemporary']
63
+ end
64
+ if hash.has_key? 'paymentProductId'
65
+ @payment_product_id = hash['paymentProductId']
66
+ end
51
67
  end
52
- @id = hash['id'] if hash.key? 'id'
53
- @is_temporary = hash['isTemporary'] if hash.key? 'isTemporary'
54
- @payment_product_id = hash['paymentProductId'] if hash.key? 'paymentProductId'
55
68
  end
56
69
  end
57
70
  end
@@ -1,28 +1,30 @@
1
1
  #
2
- # This class was auto-generated.
2
+ # This file was automatically generated.
3
3
  #
4
- require 'onlinepayments/sdk/data_object'
5
4
  require 'onlinepayments/sdk/domain/amount_of_money'
5
+ require 'onlinepayments/sdk/domain/data_object'
6
6
 
7
- module OnlinePayments::SDK
8
- module Domain
7
+ module OnlinePayments
8
+ module SDK
9
+ module Domain
10
+ # @attr [OnlinePayments::SDK::Domain::AmountOfMoney] amount
11
+ class Transaction < OnlinePayments::SDK::Domain::DataObject
9
12
 
10
- # @attr [OnlinePayments::SDK::Domain::AmountOfMoney] amount
11
- class Transaction < OnlinePayments::SDK::DataObject
12
- attr_accessor :amount
13
+ attr_accessor :amount
13
14
 
14
- # @return (Hash)
15
- def to_h
16
- hash = super
17
- hash['amount'] = @amount.to_h if @amount
18
- hash
19
- end
15
+ # @return (Hash)
16
+ def to_h
17
+ hash = super
18
+ hash['amount'] = @amount.to_h unless @amount.nil?
19
+ hash
20
+ end
20
21
 
21
- def from_hash(hash)
22
- super
23
- if hash.key? 'amount'
24
- raise TypeError, "value '%s' is not a Hash" % [hash['amount']] unless hash['amount'].is_a? Hash
25
- @amount = OnlinePayments::SDK::Domain::AmountOfMoney.new_from_hash(hash['amount'])
22
+ def from_hash(hash)
23
+ super
24
+ if hash.has_key? 'amount'
25
+ raise TypeError, "value '%s' is not a Hash" % [hash['amount']] unless hash['amount'].is_a? Hash
26
+ @amount = OnlinePayments::SDK::Domain::AmountOfMoney.new_from_hash(hash['amount'])
27
+ end
26
28
  end
27
29
  end
28
30
  end
@@ -0,0 +1,33 @@
1
+ module OnlinePayments
2
+ module SDK
3
+ module Domain
4
+ # A file that can be uploaded
5
+ #
6
+ # The allowed forms of content are defined by the Connection implementation
7
+ # The default implementation supports file paths and IO objects.
8
+ #
9
+ # @attr_reader [String] file_name The name of the file.
10
+ # @attr_reader [String, IO] content The file's content.
11
+ # @attr_reader [String] content_type The file's content type.
12
+ # @attr_reader [Integer] content_length The file's content length, or -1 if not known.
13
+ class UploadableFile
14
+
15
+ def initialize(file_name, content, content_type, content_length = -1)
16
+ raise ArgumentError.new("file_name is required") if file_name.nil? or !file_name.strip
17
+ raise ArgumentError.new("content is required") if content.nil?
18
+ raise ArgumentError.new("content_type is required") if content_type.nil? or !content_type.strip
19
+
20
+ @file_name = file_name
21
+ @content = content
22
+ @content_type = content_type
23
+ @content_length = [content_length, -1].max
24
+ end
25
+
26
+ attr_reader :file_name
27
+ attr_reader :content
28
+ attr_reader :content_type
29
+ attr_reader :content_length
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,37 @@
1
+ #
2
+ # This file was automatically generated.
3
+ #
4
+ require 'onlinepayments/sdk/domain/data_object'
5
+
6
+ module OnlinePayments
7
+ module SDK
8
+ module Domain
9
+ # @attr [String] key
10
+ # @attr [String] secret
11
+ class ValidateCredentialsRequest < OnlinePayments::SDK::Domain::DataObject
12
+
13
+ attr_accessor :key
14
+
15
+ attr_accessor :secret
16
+
17
+ # @return (Hash)
18
+ def to_h
19
+ hash = super
20
+ hash['key'] = @key unless @key.nil?
21
+ hash['secret'] = @secret unless @secret.nil?
22
+ hash
23
+ end
24
+
25
+ def from_hash(hash)
26
+ super
27
+ if hash.has_key? 'key'
28
+ @key = hash['key']
29
+ end
30
+ if hash.has_key? 'secret'
31
+ @secret = hash['secret']
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,30 @@
1
+ #
2
+ # This file was automatically generated.
3
+ #
4
+ require 'onlinepayments/sdk/domain/data_object'
5
+
6
+ module OnlinePayments
7
+ module SDK
8
+ module Domain
9
+ # @attr [String] result
10
+ class ValidateCredentialsResponse < OnlinePayments::SDK::Domain::DataObject
11
+
12
+ attr_accessor :result
13
+
14
+ # @return (Hash)
15
+ def to_h
16
+ hash = super
17
+ hash['result'] = @result unless @result.nil?
18
+ hash
19
+ end
20
+
21
+ def from_hash(hash)
22
+ super
23
+ if hash.has_key? 'result'
24
+ @result = hash['result']
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,36 +1,41 @@
1
1
  #
2
- # This class was auto-generated.
2
+ # This file was automatically generated.
3
3
  #
4
- require 'onlinepayments/sdk/data_object'
4
+ require 'onlinepayments/sdk/domain/data_object'
5
5
  require 'onlinepayments/sdk/domain/payment_product_field_display_element'
6
6
 
7
- module OnlinePayments::SDK
8
- module Domain
7
+ module OnlinePayments
8
+ module SDK
9
+ module Domain
10
+ # @attr [Array<OnlinePayments::SDK::Domain::PaymentProductFieldDisplayElement>] display_elements
11
+ # @attr [String] value
12
+ class ValueMappingElement < OnlinePayments::SDK::Domain::DataObject
9
13
 
10
- # @attr [Array<OnlinePayments::SDK::Domain::PaymentProductFieldDisplayElement>] display_elements
11
- # @attr [String] value
12
- class ValueMappingElement < OnlinePayments::SDK::DataObject
13
- attr_accessor :display_elements
14
- attr_accessor :value
14
+ attr_accessor :display_elements
15
15
 
16
- # @return (Hash)
17
- def to_h
18
- hash = super
19
- hash['displayElements'] = @display_elements.collect(&:to_h) if @display_elements
20
- hash['value'] = @value unless @value.nil?
21
- hash
22
- end
16
+ attr_accessor :value
17
+
18
+ # @return (Hash)
19
+ def to_h
20
+ hash = super
21
+ hash['displayElements'] = @display_elements.collect{|val| val.to_h} unless @display_elements.nil?
22
+ hash['value'] = @value unless @value.nil?
23
+ hash
24
+ end
23
25
 
24
- def from_hash(hash)
25
- super
26
- if hash.key? 'displayElements'
27
- raise TypeError, "value '%s' is not an Array" % [hash['displayElements']] unless hash['displayElements'].is_a? Array
28
- @display_elements = []
29
- hash['displayElements'].each do |e|
30
- @display_elements << OnlinePayments::SDK::Domain::PaymentProductFieldDisplayElement.new_from_hash(e)
26
+ def from_hash(hash)
27
+ super
28
+ if hash.has_key? 'displayElements'
29
+ raise TypeError, "value '%s' is not an Array" % [hash['displayElements']] unless hash['displayElements'].is_a? Array
30
+ @display_elements = []
31
+ hash['displayElements'].each do |e|
32
+ @display_elements << OnlinePayments::SDK::Domain::PaymentProductFieldDisplayElement.new_from_hash(e)
33
+ end
34
+ end
35
+ if hash.has_key? 'value'
36
+ @value = hash['value']
31
37
  end
32
38
  end
33
- @value = hash['value'] if hash.key? 'value'
34
39
  end
35
40
  end
36
41
  end
@@ -0,0 +1,4 @@
1
+ #
2
+ # This file was automatically generated.
3
+ #
4
+ Dir[File.join(__dir__, 'domain', '*.rb')].each { |f| require f }
@@ -0,0 +1,76 @@
1
+ #
2
+ # This file was automatically generated.
3
+ #
4
+ require_relative 'api_exception'
5
+ require_relative 'authorization_exception'
6
+ require_relative 'declined_payment_exception'
7
+ require_relative 'declined_payout_exception'
8
+ require_relative 'declined_refund_exception'
9
+ require_relative 'idempotence_exception'
10
+ require_relative 'platform_exception'
11
+ require_relative 'reference_exception'
12
+ require_relative 'validation_exception'
13
+
14
+ require 'onlinepayments/sdk/domain/error_response'
15
+ require 'onlinepayments/sdk/domain/payment_error_response'
16
+ require 'onlinepayments/sdk/domain/payout_error_response'
17
+ require 'onlinepayments/sdk/domain/refund_error_response'
18
+
19
+ module OnlinePayments
20
+ module SDK
21
+ def self.create_exception(status_code, response_body, error_object, context)
22
+ if error_object.is_a?(OnlinePayments::SDK::Domain::PaymentErrorResponse)
23
+ return DeclinedPaymentException.new(status_code, response_body, error_object) unless error_object.payment_result.nil?
24
+ return create_exception_from_response_fields(status_code, response_body, error_object.error_id, error_object.errors, context)
25
+ end
26
+ if error_object.is_a?(OnlinePayments::SDK::Domain::PayoutErrorResponse)
27
+ return DeclinedPayoutException.new(status_code, response_body, error_object) unless error_object.payout_result.nil?
28
+ return create_exception_from_response_fields(status_code, response_body, error_object.error_id, error_object.errors, context)
29
+ end
30
+ if error_object.is_a?(OnlinePayments::SDK::Domain::RefundErrorResponse)
31
+ return DeclinedRefundException.new(status_code, response_body, error_object) unless error_object.refund_result.nil?
32
+ return create_exception_from_response_fields(status_code, response_body, error_object.error_id, error_object.errors, context)
33
+ end
34
+ raise ArgumentError.new("unsupported error object type: " + error_object.class.name) unless error_object.is_a?(OnlinePayments::SDK::Domain::ErrorResponse)
35
+ create_exception_from_response_fields(status_code, response_body, error_object.error_id, error_object.errors, context)
36
+ end
37
+
38
+ private
39
+
40
+ def self.create_exception_from_response_fields(status_code, response_body, error_id, errors, context)
41
+ case status_code
42
+ when 400
43
+ return ValidationException.new(status_code, response_body, error_id, errors)
44
+ when 403
45
+ return AuthorizationException.new(status_code, response_body, error_id, errors)
46
+ when 404
47
+ return ReferenceException.new(status_code, response_body, error_id, errors)
48
+ when 409
49
+ if is_idempotence_error(errors, context)
50
+ idempotence_key = context.idempotence_key
51
+ idempotence_request_timestamp = context.idempotence_request_timestamp
52
+ return IdempotenceException.new(status_code, response_body, error_id, errors,
53
+ idempotence_key, idempotence_request_timestamp)
54
+ else
55
+ return ReferenceException.new(status_code, response_body, error_id, errors)
56
+ end
57
+ when 410
58
+ return ReferenceException.new(status_code, response_body, error_id, errors)
59
+ when 500
60
+ return PlatformException.new(status_code, response_body, error_id, errors)
61
+ when 502
62
+ return PlatformException.new(status_code, response_body, error_id, errors)
63
+ when 503
64
+ return PlatformException.new(status_code, response_body, error_id, errors)
65
+ else
66
+ return ApiException.new(status_code, response_body, error_id, errors)
67
+ end
68
+ end
69
+
70
+ def self.is_idempotence_error(errors, context)
71
+ !context&.idempotence_key.nil? &&
72
+ errors&.length == 1 &&
73
+ errors[0]&.error_code == '1409'
74
+ end
75
+ end
76
+ end