connect-sdk-ruby 2.45.0 → 2.46.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 (588) hide show
  1. checksums.yaml +4 -4
  2. data/connect-sdk-ruby.gemspec +1 -1
  3. data/examples/merchant/captures/create_refund_capture_example.rb +1 -1
  4. data/examples/merchant/captures/get_capture_example.rb +1 -1
  5. data/examples/merchant/disputes/cancel_dispute_example.rb +1 -1
  6. data/examples/merchant/disputes/get_dispute_example.rb +1 -1
  7. data/examples/merchant/disputes/submit_dispute_example.rb +1 -1
  8. data/examples/merchant/disputes/upload_dispute_file_example.rb +1 -1
  9. data/examples/merchant/files/get_file_example.rb +1 -1
  10. data/examples/merchant/hostedcheckouts/create_hosted_checkout_example.rb +1 -1
  11. data/examples/merchant/hostedcheckouts/delete_hosted_checkout_example.rb +1 -1
  12. data/examples/merchant/hostedcheckouts/get_hosted_checkout_example.rb +1 -1
  13. data/examples/merchant/hostedmandatemanagements/create_hosted_mandate_management_example.rb +1 -1
  14. data/examples/merchant/hostedmandatemanagements/get_hosted_mandate_management_example.rb +1 -1
  15. data/examples/merchant/installments/get_installments_info_example.rb +1 -1
  16. data/examples/merchant/mandates/block_mandate_example.rb +1 -1
  17. data/examples/merchant/mandates/create_mandate_example.rb +1 -1
  18. data/examples/merchant/mandates/create_mandate_with_reference_example.rb +1 -1
  19. data/examples/merchant/mandates/get_mandate_example.rb +1 -1
  20. data/examples/merchant/mandates/revoke_mandate_example.rb +1 -1
  21. data/examples/merchant/mandates/unblock_mandate_example.rb +1 -1
  22. data/examples/merchant/payments/approve_payment_example.rb +1 -1
  23. data/examples/merchant/payments/cancel_approval_payment_example.rb +1 -1
  24. data/examples/merchant/payments/cancel_payment_example.rb +1 -1
  25. data/examples/merchant/payments/capture_payment_example.rb +1 -1
  26. data/examples/merchant/payments/complete_payment_example.rb +1 -1
  27. data/examples/merchant/payments/create_payment_dispute_example.rb +1 -1
  28. data/examples/merchant/payments/create_payment_example.rb +1 -1
  29. data/examples/merchant/payments/find_payments_example.rb +1 -1
  30. data/examples/merchant/payments/get_payment_captures_example.rb +1 -1
  31. data/examples/merchant/payments/get_payment_device_fingerprint_details_example.rb +1 -1
  32. data/examples/merchant/payments/get_payment_disputes_example.rb +1 -1
  33. data/examples/merchant/payments/get_payment_example.rb +1 -1
  34. data/examples/merchant/payments/get_refunds_example.rb +1 -1
  35. data/examples/merchant/payments/get_third_party_status_example.rb +1 -1
  36. data/examples/merchant/payments/process_challenged_payment_example.rb +1 -1
  37. data/examples/merchant/payments/refund_payment_example.rb +1 -1
  38. data/examples/merchant/payments/tokenize_payment_example.rb +1 -1
  39. data/examples/merchant/payouts/approve_payout_example.rb +1 -1
  40. data/examples/merchant/payouts/cancel_approval_payout_example.rb +1 -1
  41. data/examples/merchant/payouts/cancel_payout_example.rb +1 -1
  42. data/examples/merchant/payouts/create_payout_example.rb +1 -1
  43. data/examples/merchant/payouts/find_payouts_example.rb +1 -1
  44. data/examples/merchant/payouts/get_payout_example.rb +1 -1
  45. data/examples/merchant/productgroups/get_device_fingerprint_for_groups_example.rb +1 -1
  46. data/examples/merchant/productgroups/get_payment_product_group_example.rb +1 -1
  47. data/examples/merchant/productgroups/get_payment_product_groups_example.rb +1 -1
  48. data/examples/merchant/products/create_payment_product_session_example.rb +1 -1
  49. data/examples/merchant/products/get_customer_details_example.rb +1 -1
  50. data/examples/merchant/products/get_device_fingerprint_example.rb +1 -1
  51. data/examples/merchant/products/get_directory_example.rb +1 -1
  52. data/examples/merchant/products/get_networks_example.rb +1 -1
  53. data/examples/merchant/products/get_payment_product_example.rb +1 -1
  54. data/examples/merchant/products/get_payment_products_example.rb +1 -1
  55. data/examples/merchant/refunds/approve_refund_example.rb +1 -1
  56. data/examples/merchant/refunds/cancel_approval_refund_example.rb +1 -1
  57. data/examples/merchant/refunds/cancel_refund_example.rb +1 -1
  58. data/examples/merchant/refunds/find_refunds_example.rb +1 -1
  59. data/examples/merchant/refunds/get_refund_example.rb +1 -1
  60. data/examples/merchant/riskassessments/risk_assessment_bank_account_example.rb +1 -1
  61. data/examples/merchant/riskassessments/risk_assessment_cards_example.rb +1 -1
  62. data/examples/merchant/services/convert_amount_example.rb +1 -1
  63. data/examples/merchant/services/convert_bank_account_example.rb +1 -1
  64. data/examples/merchant/services/get_privacy_policy_example.rb +1 -1
  65. data/examples/merchant/services/iin_details_example.rb +1 -1
  66. data/examples/merchant/services/test_connection_example.rb +1 -1
  67. data/examples/merchant/sessions/create_session_example.rb +1 -1
  68. data/examples/merchant/tokens/approve_sepa_direct_debit_token_example.rb +1 -1
  69. data/examples/merchant/tokens/create_token_example.rb +1 -1
  70. data/examples/merchant/tokens/delete_token_example.rb +1 -1
  71. data/examples/merchant/tokens/get_token_example.rb +1 -1
  72. data/examples/merchant/tokens/update_token_example.rb +1 -1
  73. data/lib/ingenico/connect/sdk/api_exception.rb +46 -43
  74. data/lib/ingenico/connect/sdk/api_resource.rb +124 -107
  75. data/lib/ingenico/connect/sdk/authenticator.rb +15 -12
  76. data/lib/ingenico/connect/sdk/authorization_exception.rb +13 -8
  77. data/lib/ingenico/connect/sdk/call_context.rb +24 -21
  78. data/lib/ingenico/connect/sdk/client.rb +3 -4
  79. data/lib/ingenico/connect/sdk/communication_exception.rb +14 -11
  80. data/lib/ingenico/connect/sdk/communicator.rb +475 -471
  81. data/lib/ingenico/connect/sdk/communicator_configuration.rb +79 -73
  82. data/lib/ingenico/connect/sdk/connection.rb +38 -33
  83. data/lib/ingenico/connect/sdk/data_object.rb +26 -24
  84. data/lib/ingenico/connect/sdk/declined_payment_exception.rb +38 -35
  85. data/lib/ingenico/connect/sdk/declined_payout_exception.rb +38 -35
  86. data/lib/ingenico/connect/sdk/declined_refund_exception.rb +37 -36
  87. data/lib/ingenico/connect/sdk/declined_transaction_exception.rb +15 -10
  88. data/lib/ingenico/connect/sdk/defaultimpl/authorization_type.rb +16 -13
  89. data/lib/ingenico/connect/sdk/defaultimpl/default_authenticator.rb +98 -94
  90. data/lib/ingenico/connect/sdk/defaultimpl/default_connection.rb +365 -347
  91. data/lib/ingenico/connect/sdk/defaultimpl/default_marshaller.rb +30 -25
  92. data/lib/ingenico/connect/sdk/defaultimpl.rb +1 -6
  93. data/lib/ingenico/connect/sdk/domain/capture/capture.rb +35 -32
  94. data/lib/ingenico/connect/sdk/domain/capture/capture_output.rb +117 -114
  95. data/lib/ingenico/connect/sdk/domain/capture/capture_response.rb +9 -6
  96. data/lib/ingenico/connect/sdk/domain/capture/capture_status_output.rb +36 -33
  97. data/lib/ingenico/connect/sdk/domain/capture/captures_response.rb +24 -21
  98. data/lib/ingenico/connect/sdk/domain/capture.rb +5 -0
  99. data/lib/ingenico/connect/sdk/domain/definitions/abstract_order_status.rb +21 -18
  100. data/lib/ingenico/connect/sdk/domain/definitions/abstract_payment_method_specific_input.rb +21 -18
  101. data/lib/ingenico/connect/sdk/domain/definitions/additional_order_input_airline_data.rb +29 -26
  102. data/lib/ingenico/connect/sdk/domain/definitions/address.rb +63 -60
  103. data/lib/ingenico/connect/sdk/domain/definitions/airline_data.rb +200 -197
  104. data/lib/ingenico/connect/sdk/domain/definitions/airline_flight_leg.rb +159 -156
  105. data/lib/ingenico/connect/sdk/domain/definitions/airline_passenger.rb +45 -42
  106. data/lib/ingenico/connect/sdk/domain/definitions/amount_of_money.rb +27 -24
  107. data/lib/ingenico/connect/sdk/domain/definitions/bank_account.rb +21 -18
  108. data/lib/ingenico/connect/sdk/domain/definitions/bank_account_bban.rb +51 -48
  109. data/lib/ingenico/connect/sdk/domain/definitions/bank_account_iban.rb +21 -18
  110. data/lib/ingenico/connect/sdk/domain/definitions/card.rb +27 -24
  111. data/lib/ingenico/connect/sdk/domain/definitions/card_essentials.rb +33 -30
  112. data/lib/ingenico/connect/sdk/domain/definitions/card_fraud_results.rb +47 -44
  113. data/lib/ingenico/connect/sdk/domain/definitions/card_without_cvv.rb +21 -18
  114. data/lib/ingenico/connect/sdk/domain/definitions/company_information.rb +27 -24
  115. data/lib/ingenico/connect/sdk/domain/definitions/contact_details_base.rb +27 -24
  116. data/lib/ingenico/connect/sdk/domain/definitions/customer_base.rb +36 -33
  117. data/lib/ingenico/connect/sdk/domain/definitions/fraud_fields.rb +171 -168
  118. data/lib/ingenico/connect/sdk/domain/definitions/fraud_fields_shipping_details.rb +40 -37
  119. data/lib/ingenico/connect/sdk/domain/definitions/fraud_results.rb +35 -32
  120. data/lib/ingenico/connect/sdk/domain/definitions/fraud_results_retail_decisions.rb +33 -30
  121. data/lib/ingenico/connect/sdk/domain/definitions/fraugster_results.rb +27 -24
  122. data/lib/ingenico/connect/sdk/domain/definitions/in_auth.rb +52 -49
  123. data/lib/ingenico/connect/sdk/domain/definitions/key_value_pair.rb +27 -24
  124. data/lib/ingenico/connect/sdk/domain/definitions/lodging_charge.rb +33 -30
  125. data/lib/ingenico/connect/sdk/domain/definitions/lodging_data.rb +135 -132
  126. data/lib/ingenico/connect/sdk/domain/definitions/lodging_room.rb +69 -66
  127. data/lib/ingenico/connect/sdk/domain/definitions/microsoft_fraud_results.rb +57 -54
  128. data/lib/ingenico/connect/sdk/domain/definitions/order_status_output.rb +64 -61
  129. data/lib/ingenico/connect/sdk/domain/definitions/payment_product_filter.rb +34 -31
  130. data/lib/ingenico/connect/sdk/domain/definitions/personal_name_base.rb +33 -30
  131. data/lib/ingenico/connect/sdk/domain/definitions/redirect_data_base.rb +27 -24
  132. data/lib/ingenico/connect/sdk/domain/definitions/result_do_risk_assessment.rb +47 -44
  133. data/lib/ingenico/connect/sdk/domain/definitions/retail_decisions_cc_fraud_check_output.rb +33 -30
  134. data/lib/ingenico/connect/sdk/domain/definitions/validation_bank_account_check.rb +33 -30
  135. data/lib/ingenico/connect/sdk/domain/definitions/validation_bank_account_output.rb +48 -45
  136. data/lib/ingenico/connect/sdk/domain/definitions.rb +5 -0
  137. data/lib/ingenico/connect/sdk/domain/dispute/create_dispute_request.rb +46 -43
  138. data/lib/ingenico/connect/sdk/domain/dispute/dispute.rb +47 -44
  139. data/lib/ingenico/connect/sdk/domain/dispute/dispute_creation_detail.rb +33 -30
  140. data/lib/ingenico/connect/sdk/domain/dispute/dispute_output.rb +75 -72
  141. data/lib/ingenico/connect/sdk/domain/dispute/dispute_reference.rb +52 -49
  142. data/lib/ingenico/connect/sdk/domain/dispute/dispute_response.rb +9 -6
  143. data/lib/ingenico/connect/sdk/domain/dispute/dispute_status_output.rb +45 -42
  144. data/lib/ingenico/connect/sdk/domain/dispute/disputes_response.rb +24 -21
  145. data/lib/ingenico/connect/sdk/domain/dispute/upload_dispute_file_response.rb +27 -24
  146. data/lib/ingenico/connect/sdk/domain/dispute.rb +5 -0
  147. data/lib/ingenico/connect/sdk/domain/errors/api_error.rb +57 -54
  148. data/lib/ingenico/connect/sdk/domain/errors/error_response.rb +30 -27
  149. data/lib/ingenico/connect/sdk/domain/errors.rb +5 -0
  150. data/lib/ingenico/connect/sdk/domain/file/hosted_file.rb +45 -42
  151. data/lib/ingenico/connect/sdk/domain/file.rb +5 -0
  152. data/lib/ingenico/connect/sdk/domain/hostedcheckout/create_hosted_checkout_request.rb +92 -89
  153. data/lib/ingenico/connect/sdk/domain/hostedcheckout/create_hosted_checkout_response.rb +48 -45
  154. data/lib/ingenico/connect/sdk/domain/hostedcheckout/created_payment_output.rb +62 -59
  155. data/lib/ingenico/connect/sdk/domain/hostedcheckout/displayed_data.rb +36 -33
  156. data/lib/ingenico/connect/sdk/domain/hostedcheckout/frequency.rb +27 -24
  157. data/lib/ingenico/connect/sdk/domain/hostedcheckout/get_hosted_checkout_response.rb +28 -25
  158. data/lib/ingenico/connect/sdk/domain/hostedcheckout/hosted_checkout_specific_input.rb +77 -74
  159. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_method_specific_input_hosted_checkout.rb +53 -50
  160. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_product302_specific_input_hosted_checkout.rb +21 -18
  161. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_product320_specific_input_hosted_checkout.rb +34 -31
  162. data/lib/ingenico/connect/sdk/domain/hostedcheckout/payment_product_filters_hosted_checkout.rb +35 -32
  163. data/lib/ingenico/connect/sdk/domain/hostedcheckout/recurring_payments_data.rb +29 -26
  164. data/lib/ingenico/connect/sdk/domain/hostedcheckout/trial_information.rb +48 -45
  165. data/lib/ingenico/connect/sdk/domain/hostedcheckout/trial_period.rb +27 -24
  166. data/lib/ingenico/connect/sdk/domain/hostedcheckout.rb +5 -0
  167. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/create_hosted_mandate_management_request.rb +29 -26
  168. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/create_hosted_mandate_management_response.rb +33 -30
  169. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/get_hosted_mandate_management_response.rb +28 -25
  170. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/hosted_mandate_info.rb +52 -49
  171. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/hosted_mandate_management_specific_input.rb +45 -42
  172. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement.rb +5 -0
  173. data/lib/ingenico/connect/sdk/domain/installments/get_installment_request.rb +46 -43
  174. data/lib/ingenico/connect/sdk/domain/installments/installment_display_hints.rb +33 -30
  175. data/lib/ingenico/connect/sdk/domain/installments/installment_options.rb +37 -34
  176. data/lib/ingenico/connect/sdk/domain/installments/installment_options_response.rb +24 -21
  177. data/lib/ingenico/connect/sdk/domain/installments.rb +5 -0
  178. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_base.rb +58 -55
  179. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_request.rb +9 -6
  180. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_response.rb +29 -26
  181. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_with_return_url.rb +21 -18
  182. data/lib/ingenico/connect/sdk/domain/mandates/get_mandate_response.rb +22 -19
  183. data/lib/ingenico/connect/sdk/domain/mandates/mandate_address.rb +52 -49
  184. data/lib/ingenico/connect/sdk/domain/mandates/mandate_contact_details.rb +21 -18
  185. data/lib/ingenico/connect/sdk/domain/mandates/mandate_customer.rb +49 -46
  186. data/lib/ingenico/connect/sdk/domain/mandates/mandate_merchant_action.rb +28 -25
  187. data/lib/ingenico/connect/sdk/domain/mandates/mandate_personal_information.rb +28 -25
  188. data/lib/ingenico/connect/sdk/domain/mandates/mandate_personal_name.rb +27 -24
  189. data/lib/ingenico/connect/sdk/domain/mandates/mandate_redirect_data.rb +9 -6
  190. data/lib/ingenico/connect/sdk/domain/mandates/mandate_response.rb +52 -49
  191. data/lib/ingenico/connect/sdk/domain/mandates.rb +5 -0
  192. data/lib/ingenico/connect/sdk/domain/metadata/shopping_cart_extension.rb +49 -42
  193. data/lib/ingenico/connect/sdk/domain/metadata.rb +1 -0
  194. data/lib/ingenico/connect/sdk/domain/payment/abstract_bank_transfer_payment_method_specific_input.rb +21 -18
  195. data/lib/ingenico/connect/sdk/domain/payment/abstract_card_payment_method_specific_input.rb +129 -119
  196. data/lib/ingenico/connect/sdk/domain/payment/abstract_cash_payment_method_specific_input.rb +9 -6
  197. data/lib/ingenico/connect/sdk/domain/payment/abstract_e_invoice_payment_method_specific_input.rb +21 -18
  198. data/lib/ingenico/connect/sdk/domain/payment/abstract_payment_method_specific_output.rb +21 -18
  199. data/lib/ingenico/connect/sdk/domain/payment/abstract_redirect_payment_method_specific_input.rb +52 -49
  200. data/lib/ingenico/connect/sdk/domain/payment/abstract_redirect_payment_product4101_specific_input.rb +9 -6
  201. data/lib/ingenico/connect/sdk/domain/payment/abstract_redirect_payment_product840_specific_input.rb +21 -18
  202. data/lib/ingenico/connect/sdk/domain/payment/abstract_sepa_direct_debit_payment_method_specific_input.rb +9 -6
  203. data/lib/ingenico/connect/sdk/domain/payment/abstract_sepa_direct_debit_payment_product771_specific_input.rb +23 -20
  204. data/lib/ingenico/connect/sdk/domain/payment/abstract_three_d_secure.rb +72 -69
  205. data/lib/ingenico/connect/sdk/domain/payment/account_funding_recipient.rb +53 -50
  206. data/lib/ingenico/connect/sdk/domain/payment/additional_order_input.rb +82 -79
  207. data/lib/ingenico/connect/sdk/domain/payment/address_personal.rb +22 -19
  208. data/lib/ingenico/connect/sdk/domain/payment/afr_name.rb +27 -24
  209. data/lib/ingenico/connect/sdk/domain/payment/amount_breakdown.rb +27 -24
  210. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_card_payment_method_specific_output.rb +21 -18
  211. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_direct_debit_payment_method_specific_input.rb +9 -6
  212. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_mobile_payment_method_specific_output.rb +21 -18
  213. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_non_sepa_direct_debit_payment_method_specific_input.rb +9 -6
  214. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_payment_method_specific_input.rb +27 -24
  215. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_request.rb +48 -45
  216. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_sepa_direct_debit_payment_method_specific_input.rb +9 -6
  217. data/lib/ingenico/connect/sdk/domain/payment/bank_transfer_payment_method_specific_input.rb +9 -6
  218. data/lib/ingenico/connect/sdk/domain/payment/bank_transfer_payment_method_specific_input_base.rb +9 -6
  219. data/lib/ingenico/connect/sdk/domain/payment/bank_transfer_payment_method_specific_output.rb +22 -19
  220. data/lib/ingenico/connect/sdk/domain/payment/browser_data.rb +57 -54
  221. data/lib/ingenico/connect/sdk/domain/payment/cancel_approval_payment_response.rb +22 -19
  222. data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_card_payment_method_specific_output.rb +21 -18
  223. data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_mobile_payment_method_specific_output.rb +21 -18
  224. data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_response.rb +36 -33
  225. data/lib/ingenico/connect/sdk/domain/payment/capture_payment_request.rb +27 -24
  226. data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_input.rb +65 -62
  227. data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_input_base.rb +22 -19
  228. data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_output.rb +60 -57
  229. data/lib/ingenico/connect/sdk/domain/payment/card_recurrence_details.rb +33 -30
  230. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_input.rb +66 -63
  231. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_input_base.rb +9 -6
  232. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_output.rb +22 -19
  233. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1503_specific_input.rb +24 -21
  234. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1504_specific_input.rb +9 -6
  235. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1521_specific_input.rb +9 -6
  236. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1522_specific_input.rb +9 -6
  237. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1523_specific_input.rb +9 -6
  238. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1524_specific_input.rb +9 -6
  239. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1526_specific_input.rb +9 -6
  240. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product_with_redirect_specific_input_base.rb +21 -18
  241. data/lib/ingenico/connect/sdk/domain/payment/complete_payment_card_payment_method_specific_input.rb +22 -19
  242. data/lib/ingenico/connect/sdk/domain/payment/complete_payment_request.rb +36 -33
  243. data/lib/ingenico/connect/sdk/domain/payment/complete_payment_response.rb +9 -6
  244. data/lib/ingenico/connect/sdk/domain/payment/contact_details.rb +45 -42
  245. data/lib/ingenico/connect/sdk/domain/payment/create_payment_request.rb +120 -117
  246. data/lib/ingenico/connect/sdk/domain/payment/create_payment_response.rb +9 -6
  247. data/lib/ingenico/connect/sdk/domain/payment/create_payment_result.rb +36 -33
  248. data/lib/ingenico/connect/sdk/domain/payment/customer.rb +89 -86
  249. data/lib/ingenico/connect/sdk/domain/payment/customer_account.rb +104 -101
  250. data/lib/ingenico/connect/sdk/domain/payment/customer_account_authentication.rb +33 -30
  251. data/lib/ingenico/connect/sdk/domain/payment/customer_approve_payment.rb +21 -18
  252. data/lib/ingenico/connect/sdk/domain/payment/customer_device.rb +64 -61
  253. data/lib/ingenico/connect/sdk/domain/payment/customer_payment_activity.rb +33 -30
  254. data/lib/ingenico/connect/sdk/domain/payment/decrypted_payment_data.rb +65 -62
  255. data/lib/ingenico/connect/sdk/domain/payment/device_fingerprint_details.rb +27 -24
  256. data/lib/ingenico/connect/sdk/domain/payment/device_render_options.rb +38 -35
  257. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_input.rb +28 -25
  258. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_input_base.rb +9 -6
  259. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_output.rb +29 -26
  260. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_product9000_specific_input.rb +28 -25
  261. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_product9000_specific_output.rb +21 -18
  262. data/lib/ingenico/connect/sdk/domain/payment/exemption_output.rb +33 -30
  263. data/lib/ingenico/connect/sdk/domain/payment/external_cardholder_authentication_data.rb +83 -80
  264. data/lib/ingenico/connect/sdk/domain/payment/find_payments_response.rb +47 -44
  265. data/lib/ingenico/connect/sdk/domain/payment/g_pay_three_d_secure.rb +46 -43
  266. data/lib/ingenico/connect/sdk/domain/payment/gift_card_purchase.rb +28 -25
  267. data/lib/ingenico/connect/sdk/domain/payment/hosted_checkout_specific_output.rb +27 -24
  268. data/lib/ingenico/connect/sdk/domain/payment/installments.rb +53 -50
  269. data/lib/ingenico/connect/sdk/domain/payment/invoice_payment_method_specific_input.rb +21 -18
  270. data/lib/ingenico/connect/sdk/domain/payment/invoice_payment_method_specific_output.rb +22 -19
  271. data/lib/ingenico/connect/sdk/domain/payment/level3_summary_data.rb +40 -37
  272. data/lib/ingenico/connect/sdk/domain/payment/line_item.rb +45 -42
  273. data/lib/ingenico/connect/sdk/domain/payment/line_item_invoice_data.rb +52 -49
  274. data/lib/ingenico/connect/sdk/domain/payment/line_item_level3_interchange_information.rb +63 -60
  275. data/lib/ingenico/connect/sdk/domain/payment/loan_recipient.rb +56 -53
  276. data/lib/ingenico/connect/sdk/domain/payment/merchant.rb +46 -43
  277. data/lib/ingenico/connect/sdk/domain/payment/merchant_action.rb +67 -64
  278. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_data.rb +27 -24
  279. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_method_specific_input.rb +59 -56
  280. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_method_specific_output.rb +48 -45
  281. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_product320_specific_input.rb +28 -25
  282. data/lib/ingenico/connect/sdk/domain/payment/mobile_three_d_secure_challenge_parameters.rb +45 -42
  283. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_input.rb +71 -68
  284. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_output.rb +22 -19
  285. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_product705_specific_input.rb +34 -31
  286. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_product730_specific_input.rb +22 -19
  287. data/lib/ingenico/connect/sdk/domain/payment/order.rb +77 -74
  288. data/lib/ingenico/connect/sdk/domain/payment/order_approve_payment.rb +36 -33
  289. data/lib/ingenico/connect/sdk/domain/payment/order_invoice_data.rb +47 -44
  290. data/lib/ingenico/connect/sdk/domain/payment/order_line_details.rb +101 -98
  291. data/lib/ingenico/connect/sdk/domain/payment/order_output.rb +29 -26
  292. data/lib/ingenico/connect/sdk/domain/payment/order_references.rb +52 -49
  293. data/lib/ingenico/connect/sdk/domain/payment/order_references_approve_payment.rb +21 -18
  294. data/lib/ingenico/connect/sdk/domain/payment/order_type_information.rb +45 -42
  295. data/lib/ingenico/connect/sdk/domain/payment/payment.rb +48 -45
  296. data/lib/ingenico/connect/sdk/domain/payment/payment_account_on_file.rb +27 -24
  297. data/lib/ingenico/connect/sdk/domain/payment/payment_approval_response.rb +45 -42
  298. data/lib/ingenico/connect/sdk/domain/payment/payment_creation_output.rb +45 -42
  299. data/lib/ingenico/connect/sdk/domain/payment/payment_creation_references.rb +27 -24
  300. data/lib/ingenico/connect/sdk/domain/payment/payment_error_response.rb +37 -34
  301. data/lib/ingenico/connect/sdk/domain/payment/payment_output.rb +117 -114
  302. data/lib/ingenico/connect/sdk/domain/payment/payment_product3201_specific_output.rb +22 -19
  303. data/lib/ingenico/connect/sdk/domain/payment/payment_product771_specific_output.rb +21 -18
  304. data/lib/ingenico/connect/sdk/domain/payment/payment_product806_specific_output.rb +29 -26
  305. data/lib/ingenico/connect/sdk/domain/payment/payment_product836_specific_output.rb +21 -18
  306. data/lib/ingenico/connect/sdk/domain/payment/payment_product840_customer_account.rb +75 -72
  307. data/lib/ingenico/connect/sdk/domain/payment/payment_product840_specific_output.rb +49 -46
  308. data/lib/ingenico/connect/sdk/domain/payment/payment_product863_third_party_data.rb +57 -54
  309. data/lib/ingenico/connect/sdk/domain/payment/payment_references.rb +57 -54
  310. data/lib/ingenico/connect/sdk/domain/payment/payment_response.rb +9 -6
  311. data/lib/ingenico/connect/sdk/domain/payment/payment_status_output.rb +33 -30
  312. data/lib/ingenico/connect/sdk/domain/payment/personal_identification.rb +33 -30
  313. data/lib/ingenico/connect/sdk/domain/payment/personal_information.rb +47 -44
  314. data/lib/ingenico/connect/sdk/domain/payment/personal_name.rb +21 -18
  315. data/lib/ingenico/connect/sdk/domain/payment/protection_eligibility.rb +27 -24
  316. data/lib/ingenico/connect/sdk/domain/payment/redirect_data.rb +9 -6
  317. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_input.rb +92 -89
  318. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_input_base.rb +29 -26
  319. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_output.rb +76 -73
  320. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product4101_specific_input.rb +33 -30
  321. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product4101_specific_input_base.rb +21 -18
  322. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product809_specific_input.rb +29 -26
  323. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product816_specific_input.rb +22 -19
  324. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product840_specific_input.rb +29 -26
  325. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product840_specific_input_base.rb +9 -6
  326. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product861_specific_input.rb +21 -18
  327. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product863_specific_input.rb +27 -24
  328. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product869_specific_input.rb +33 -30
  329. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product882_specific_input.rb +21 -18
  330. data/lib/ingenico/connect/sdk/domain/payment/redirection_data.rb +27 -24
  331. data/lib/ingenico/connect/sdk/domain/payment/refund_bank_method_specific_output.rb +9 -6
  332. data/lib/ingenico/connect/sdk/domain/payment/refund_card_method_specific_output.rb +28 -25
  333. data/lib/ingenico/connect/sdk/domain/payment/refund_cash_method_specific_output.rb +9 -6
  334. data/lib/ingenico/connect/sdk/domain/payment/refund_e_invoice_method_specific_output.rb +9 -6
  335. data/lib/ingenico/connect/sdk/domain/payment/refund_e_wallet_method_specific_output.rb +22 -19
  336. data/lib/ingenico/connect/sdk/domain/payment/refund_method_specific_output.rb +33 -30
  337. data/lib/ingenico/connect/sdk/domain/payment/refund_mobile_method_specific_output.rb +21 -18
  338. data/lib/ingenico/connect/sdk/domain/payment/refund_output.rb +69 -66
  339. data/lib/ingenico/connect/sdk/domain/payment/refund_payment_product840_customer_account.rb +33 -30
  340. data/lib/ingenico/connect/sdk/domain/payment/refund_payment_product840_specific_output.rb +22 -19
  341. data/lib/ingenico/connect/sdk/domain/payment/scheme_token_data.rb +52 -49
  342. data/lib/ingenico/connect/sdk/domain/payment/sdk_data_input.rb +58 -55
  343. data/lib/ingenico/connect/sdk/domain/payment/sdk_data_output.rb +21 -18
  344. data/lib/ingenico/connect/sdk/domain/payment/seller.rb +102 -99
  345. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_input.rb +64 -61
  346. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_input_base.rb +22 -19
  347. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_output.rb +35 -32
  348. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_product771_specific_input.rb +28 -25
  349. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_product771_specific_input_base.rb +28 -25
  350. data/lib/ingenico/connect/sdk/domain/payment/shipping.rb +64 -61
  351. data/lib/ingenico/connect/sdk/domain/payment/shopping_cart.rb +59 -56
  352. data/lib/ingenico/connect/sdk/domain/payment/third_party_data.rb +22 -19
  353. data/lib/ingenico/connect/sdk/domain/payment/third_party_status_response.rb +21 -18
  354. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure.rb +29 -26
  355. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_base.rb +9 -6
  356. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_data.rb +33 -30
  357. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_results.rb +112 -109
  358. data/lib/ingenico/connect/sdk/domain/payment/tokenize_payment_request.rb +21 -18
  359. data/lib/ingenico/connect/sdk/domain/payment/trustly_bank_account.rb +45 -42
  360. data/lib/ingenico/connect/sdk/domain/payment.rb +5 -0
  361. data/lib/ingenico/connect/sdk/domain/payout/abstract_payout_method_specific_input.rb +9 -6
  362. data/lib/ingenico/connect/sdk/domain/payout/approve_payout_request.rb +21 -18
  363. data/lib/ingenico/connect/sdk/domain/payout/bank_transfer_payout_method_specific_input.rb +56 -53
  364. data/lib/ingenico/connect/sdk/domain/payout/card_payout_method_specific_input.rb +47 -44
  365. data/lib/ingenico/connect/sdk/domain/payout/create_payout_request.rb +126 -123
  366. data/lib/ingenico/connect/sdk/domain/payout/find_payouts_response.rb +47 -44
  367. data/lib/ingenico/connect/sdk/domain/payout/payout_customer.rb +49 -46
  368. data/lib/ingenico/connect/sdk/domain/payout/payout_details.rb +36 -33
  369. data/lib/ingenico/connect/sdk/domain/payout/payout_error_response.rb +37 -34
  370. data/lib/ingenico/connect/sdk/domain/payout/payout_merchant.rb +21 -18
  371. data/lib/ingenico/connect/sdk/domain/payout/payout_recipient.rb +33 -30
  372. data/lib/ingenico/connect/sdk/domain/payout/payout_references.rb +33 -30
  373. data/lib/ingenico/connect/sdk/domain/payout/payout_response.rb +9 -6
  374. data/lib/ingenico/connect/sdk/domain/payout/payout_result.rb +35 -32
  375. data/lib/ingenico/connect/sdk/domain/payout.rb +5 -0
  376. data/lib/ingenico/connect/sdk/domain/product/abstract_indicator.rb +27 -24
  377. data/lib/ingenico/connect/sdk/domain/product/account_on_file.rb +48 -45
  378. data/lib/ingenico/connect/sdk/domain/product/account_on_file_attribute.rb +27 -24
  379. data/lib/ingenico/connect/sdk/domain/product/account_on_file_display_hints.rb +30 -27
  380. data/lib/ingenico/connect/sdk/domain/product/authentication_indicator.rb +9 -6
  381. data/lib/ingenico/connect/sdk/domain/product/boleto_bancario_requiredness_validator.rb +21 -18
  382. data/lib/ingenico/connect/sdk/domain/product/create_payment_product_session_request.rb +22 -19
  383. data/lib/ingenico/connect/sdk/domain/product/create_payment_product_session_response.rb +22 -19
  384. data/lib/ingenico/connect/sdk/domain/product/device_fingerprint_request.rb +21 -18
  385. data/lib/ingenico/connect/sdk/domain/product/device_fingerprint_response.rb +27 -24
  386. data/lib/ingenico/connect/sdk/domain/product/directory.rb +24 -21
  387. data/lib/ingenico/connect/sdk/domain/product/directory_entry.rb +47 -44
  388. data/lib/ingenico/connect/sdk/domain/product/empty_validator.rb +9 -6
  389. data/lib/ingenico/connect/sdk/domain/product/fixed_list_validator.rb +24 -21
  390. data/lib/ingenico/connect/sdk/domain/product/get_customer_details_request.rb +30 -27
  391. data/lib/ingenico/connect/sdk/domain/product/get_customer_details_response.rb +75 -72
  392. data/lib/ingenico/connect/sdk/domain/product/label_template_element.rb +27 -24
  393. data/lib/ingenico/connect/sdk/domain/product/length_validator.rb +27 -24
  394. data/lib/ingenico/connect/sdk/domain/product/mobile_payment_product_session302_specific_input.rb +33 -30
  395. data/lib/ingenico/connect/sdk/domain/product/mobile_payment_product_session302_specific_output.rb +21 -18
  396. data/lib/ingenico/connect/sdk/domain/product/payment_product.rb +203 -200
  397. data/lib/ingenico/connect/sdk/domain/product/payment_product302_specific_data.rb +24 -21
  398. data/lib/ingenico/connect/sdk/domain/product/payment_product320_specific_data.rb +30 -27
  399. data/lib/ingenico/connect/sdk/domain/product/payment_product863_specific_data.rb +24 -21
  400. data/lib/ingenico/connect/sdk/domain/product/payment_product_display_hints.rb +33 -30
  401. data/lib/ingenico/connect/sdk/domain/product/payment_product_field.rb +47 -44
  402. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_data_restrictions.rb +28 -25
  403. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_display_element.rb +45 -42
  404. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_display_hints.rb +77 -74
  405. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_form_element.rb +30 -27
  406. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_tooltip.rb +27 -24
  407. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_validators.rb +92 -89
  408. data/lib/ingenico/connect/sdk/domain/product/payment_product_group.rb +59 -56
  409. data/lib/ingenico/connect/sdk/domain/product/payment_product_group_response.rb +9 -6
  410. data/lib/ingenico/connect/sdk/domain/product/payment_product_groups.rb +24 -21
  411. data/lib/ingenico/connect/sdk/domain/product/payment_product_networks_response.rb +24 -21
  412. data/lib/ingenico/connect/sdk/domain/product/payment_product_response.rb +9 -6
  413. data/lib/ingenico/connect/sdk/domain/product/payment_products.rb +24 -21
  414. data/lib/ingenico/connect/sdk/domain/product/range_validator.rb +27 -24
  415. data/lib/ingenico/connect/sdk/domain/product/regular_expression_validator.rb +21 -18
  416. data/lib/ingenico/connect/sdk/domain/product/value_mapping_element.rb +38 -35
  417. data/lib/ingenico/connect/sdk/domain/product.rb +5 -0
  418. data/lib/ingenico/connect/sdk/domain/refund/approve_refund_request.rb +21 -18
  419. data/lib/ingenico/connect/sdk/domain/refund/bank_account_bban_refund.rb +33 -30
  420. data/lib/ingenico/connect/sdk/domain/refund/bank_refund_method_specific_input.rb +35 -32
  421. data/lib/ingenico/connect/sdk/domain/refund/find_refunds_response.rb +47 -44
  422. data/lib/ingenico/connect/sdk/domain/refund/refund_customer.rb +48 -45
  423. data/lib/ingenico/connect/sdk/domain/refund/refund_error_response.rb +37 -34
  424. data/lib/ingenico/connect/sdk/domain/refund/refund_references.rb +21 -18
  425. data/lib/ingenico/connect/sdk/domain/refund/refund_request.rb +49 -46
  426. data/lib/ingenico/connect/sdk/domain/refund/refund_response.rb +9 -6
  427. data/lib/ingenico/connect/sdk/domain/refund/refund_result.rb +35 -32
  428. data/lib/ingenico/connect/sdk/domain/refund/refunds_response.rb +24 -21
  429. data/lib/ingenico/connect/sdk/domain/refund.rb +5 -0
  430. data/lib/ingenico/connect/sdk/domain/riskassessments/contact_details_risk_assessment.rb +21 -18
  431. data/lib/ingenico/connect/sdk/domain/riskassessments/customer_account_risk_assessment.rb +27 -24
  432. data/lib/ingenico/connect/sdk/domain/riskassessments/customer_device_risk_assessment.rb +27 -24
  433. data/lib/ingenico/connect/sdk/domain/riskassessments/customer_risk_assessment.rb +77 -74
  434. data/lib/ingenico/connect/sdk/domain/riskassessments/merchant_risk_assessment.rb +21 -18
  435. data/lib/ingenico/connect/sdk/domain/riskassessments/order_risk_assessment.rb +43 -40
  436. data/lib/ingenico/connect/sdk/domain/riskassessments/personal_information_risk_assessment.rb +22 -19
  437. data/lib/ingenico/connect/sdk/domain/riskassessments/personal_name_risk_assessment.rb +9 -6
  438. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment.rb +48 -45
  439. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_bank_account.rb +29 -26
  440. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_card.rb +22 -19
  441. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_response.rb +24 -21
  442. data/lib/ingenico/connect/sdk/domain/riskassessments/shipping_risk_assessment.rb +34 -31
  443. data/lib/ingenico/connect/sdk/domain/riskassessments.rb +5 -0
  444. data/lib/ingenico/connect/sdk/domain/services/bank_data.rb +45 -42
  445. data/lib/ingenico/connect/sdk/domain/services/bank_details.rb +29 -26
  446. data/lib/ingenico/connect/sdk/domain/services/bank_details_request.rb +9 -6
  447. data/lib/ingenico/connect/sdk/domain/services/bank_details_response.rb +43 -40
  448. data/lib/ingenico/connect/sdk/domain/services/convert_amount.rb +21 -18
  449. data/lib/ingenico/connect/sdk/domain/services/get_iin_details_request.rb +28 -25
  450. data/lib/ingenico/connect/sdk/domain/services/get_iin_details_response.rb +47 -44
  451. data/lib/ingenico/connect/sdk/domain/services/get_privacy_policy_response.rb +21 -18
  452. data/lib/ingenico/connect/sdk/domain/services/iin_detail.rb +27 -24
  453. data/lib/ingenico/connect/sdk/domain/services/payment_context.rb +46 -43
  454. data/lib/ingenico/connect/sdk/domain/services/swift.rb +75 -72
  455. data/lib/ingenico/connect/sdk/domain/services/test_connection.rb +21 -18
  456. data/lib/ingenico/connect/sdk/domain/services.rb +5 -0
  457. data/lib/ingenico/connect/sdk/domain/sessions/payment_product_filters_client_session.rb +29 -26
  458. data/lib/ingenico/connect/sdk/domain/sessions/session_request.rb +31 -28
  459. data/lib/ingenico/connect/sdk/domain/sessions/session_response.rb +54 -51
  460. data/lib/ingenico/connect/sdk/domain/sessions.rb +5 -0
  461. data/lib/ingenico/connect/sdk/domain/token/abstract_token.rb +21 -18
  462. data/lib/ingenico/connect/sdk/domain/token/approve_token_request.rb +9 -6
  463. data/lib/ingenico/connect/sdk/domain/token/contact_details_token.rb +9 -6
  464. data/lib/ingenico/connect/sdk/domain/token/create_token_request.rb +55 -52
  465. data/lib/ingenico/connect/sdk/domain/token/create_token_response.rb +33 -30
  466. data/lib/ingenico/connect/sdk/domain/token/creditor.rb +81 -78
  467. data/lib/ingenico/connect/sdk/domain/token/customer_token.rb +29 -26
  468. data/lib/ingenico/connect/sdk/domain/token/customer_token_with_contact_details.rb +22 -19
  469. data/lib/ingenico/connect/sdk/domain/token/debtor.rb +81 -78
  470. data/lib/ingenico/connect/sdk/domain/token/mandate_approval.rb +33 -30
  471. data/lib/ingenico/connect/sdk/domain/token/mandate_non_sepa_direct_debit.rb +29 -26
  472. data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit.rb +22 -19
  473. data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit_with_mandate_id.rb +21 -18
  474. data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit_without_creditor.rb +54 -51
  475. data/lib/ingenico/connect/sdk/domain/token/personal_information_token.rb +22 -19
  476. data/lib/ingenico/connect/sdk/domain/token/personal_name_token.rb +9 -6
  477. data/lib/ingenico/connect/sdk/domain/token/token_card.rb +29 -26
  478. data/lib/ingenico/connect/sdk/domain/token/token_card_data.rb +34 -31
  479. data/lib/ingenico/connect/sdk/domain/token/token_e_wallet.rb +29 -26
  480. data/lib/ingenico/connect/sdk/domain/token/token_e_wallet_data.rb +21 -18
  481. data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit.rb +29 -26
  482. data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit_payment_product705_specific_data.rb +28 -25
  483. data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit_payment_product730_specific_data.rb +22 -19
  484. data/lib/ingenico/connect/sdk/domain/token/token_response.rb +61 -58
  485. data/lib/ingenico/connect/sdk/domain/token/token_sepa_direct_debit.rb +29 -26
  486. data/lib/ingenico/connect/sdk/domain/token/token_sepa_direct_debit_without_creditor.rb +29 -26
  487. data/lib/ingenico/connect/sdk/domain/token/update_token_request.rb +49 -46
  488. data/lib/ingenico/connect/sdk/domain/token.rb +5 -0
  489. data/lib/ingenico/connect/sdk/domain.rb +1 -0
  490. data/lib/ingenico/connect/sdk/endpoint_configuration.rb +120 -116
  491. data/lib/ingenico/connect/sdk/exceptions.rb +1 -8
  492. data/lib/ingenico/connect/sdk/factory.rb +193 -182
  493. data/lib/ingenico/connect/sdk/global_collect_exception.rb +15 -10
  494. data/lib/ingenico/connect/sdk/idempotence_exception.rb +23 -19
  495. data/lib/ingenico/connect/sdk/logging/communicator_logger.rb +20 -16
  496. data/lib/ingenico/connect/sdk/logging/log_message_builder.rb +73 -67
  497. data/lib/ingenico/connect/sdk/logging/logging_capable.rb +12 -12
  498. data/lib/ingenico/connect/sdk/logging/logging_util.rb +304 -297
  499. data/lib/ingenico/connect/sdk/logging/obfuscation/body_obfuscator.rb +83 -79
  500. data/lib/ingenico/connect/sdk/logging/obfuscation/header_obfuscator.rb +42 -38
  501. data/lib/ingenico/connect/sdk/logging/obfuscation/obfuscation_capable.rb +17 -12
  502. data/lib/ingenico/connect/sdk/logging/obfuscation/obfuscation_rule.rb +40 -36
  503. data/lib/ingenico/connect/sdk/logging/obfuscation.rb +1 -0
  504. data/lib/ingenico/connect/sdk/logging/request_log_message_builder.rb +42 -34
  505. data/lib/ingenico/connect/sdk/logging/response_log_message_builder.rb +35 -29
  506. data/lib/ingenico/connect/sdk/logging/ruby_communicator_logger.rb +51 -47
  507. data/lib/ingenico/connect/sdk/logging/stdout_communicator_logger.rb +26 -22
  508. data/lib/ingenico/connect/sdk/logging.rb +1 -14
  509. data/lib/ingenico/connect/sdk/marshaller.rb +22 -19
  510. data/lib/ingenico/connect/sdk/marshaller_syntax_exception.rb +7 -4
  511. data/lib/ingenico/connect/sdk/merchant/captures/captures_client.rb +75 -72
  512. data/lib/ingenico/connect/sdk/merchant/captures.rb +5 -0
  513. data/lib/ingenico/connect/sdk/merchant/disputes/disputes_client.rb +134 -131
  514. data/lib/ingenico/connect/sdk/merchant/disputes/upload_file_request.rb +17 -14
  515. data/lib/ingenico/connect/sdk/merchant/disputes.rb +5 -0
  516. data/lib/ingenico/connect/sdk/merchant/files/files_client.rb +43 -40
  517. data/lib/ingenico/connect/sdk/merchant/files.rb +5 -0
  518. data/lib/ingenico/connect/sdk/merchant/hostedcheckouts/hostedcheckouts_client.rb +98 -95
  519. data/lib/ingenico/connect/sdk/merchant/hostedcheckouts.rb +5 -0
  520. data/lib/ingenico/connect/sdk/merchant/hostedmandatemanagements/hostedmandatemanagements_client.rb +70 -67
  521. data/lib/ingenico/connect/sdk/merchant/hostedmandatemanagements.rb +5 -0
  522. data/lib/ingenico/connect/sdk/merchant/installments/installments_client.rb +41 -38
  523. data/lib/ingenico/connect/sdk/merchant/installments.rb +5 -0
  524. data/lib/ingenico/connect/sdk/merchant/mandates/mandates_client.rb +191 -188
  525. data/lib/ingenico/connect/sdk/merchant/mandates.rb +5 -0
  526. data/lib/ingenico/connect/sdk/merchant/merchant_client.rb +110 -107
  527. data/lib/ingenico/connect/sdk/merchant/payments/find_payments_params.rb +35 -32
  528. data/lib/ingenico/connect/sdk/merchant/payments/payments_client.rb +519 -516
  529. data/lib/ingenico/connect/sdk/merchant/payments.rb +5 -0
  530. data/lib/ingenico/connect/sdk/merchant/payouts/find_payouts_params.rb +26 -23
  531. data/lib/ingenico/connect/sdk/merchant/payouts/payouts_client.rb +186 -183
  532. data/lib/ingenico/connect/sdk/merchant/payouts.rb +5 -0
  533. data/lib/ingenico/connect/sdk/merchant/productgroups/find_productgroups_params.rb +49 -46
  534. data/lib/ingenico/connect/sdk/merchant/productgroups/get_productgroup_params.rb +49 -46
  535. data/lib/ingenico/connect/sdk/merchant/productgroups/productgroups_client.rb +101 -98
  536. data/lib/ingenico/connect/sdk/merchant/productgroups.rb +5 -0
  537. data/lib/ingenico/connect/sdk/merchant/products/directory_params.rb +20 -17
  538. data/lib/ingenico/connect/sdk/merchant/products/find_products_params.rb +49 -46
  539. data/lib/ingenico/connect/sdk/merchant/products/get_product_params.rb +44 -41
  540. data/lib/ingenico/connect/sdk/merchant/products/networks_params.rb +26 -23
  541. data/lib/ingenico/connect/sdk/merchant/products/products_client.rb +223 -220
  542. data/lib/ingenico/connect/sdk/merchant/products.rb +5 -0
  543. data/lib/ingenico/connect/sdk/merchant/refunds/find_refunds_params.rb +35 -32
  544. data/lib/ingenico/connect/sdk/merchant/refunds/refunds_client.rb +157 -154
  545. data/lib/ingenico/connect/sdk/merchant/refunds.rb +5 -0
  546. data/lib/ingenico/connect/sdk/merchant/riskassessments/riskassessments_client.rb +68 -65
  547. data/lib/ingenico/connect/sdk/merchant/riskassessments.rb +5 -0
  548. data/lib/ingenico/connect/sdk/merchant/services/convert_amount_params.rb +23 -20
  549. data/lib/ingenico/connect/sdk/merchant/services/privacypolicy_params.rb +20 -17
  550. data/lib/ingenico/connect/sdk/merchant/services/services_client.rb +145 -142
  551. data/lib/ingenico/connect/sdk/merchant/services.rb +5 -0
  552. data/lib/ingenico/connect/sdk/merchant/sessions/sessions_client.rb +41 -38
  553. data/lib/ingenico/connect/sdk/merchant/sessions.rb +5 -0
  554. data/lib/ingenico/connect/sdk/merchant/tokens/delete_token_params.rb +17 -14
  555. data/lib/ingenico/connect/sdk/merchant/tokens/tokens_client.rb +159 -156
  556. data/lib/ingenico/connect/sdk/merchant/tokens.rb +5 -0
  557. data/lib/ingenico/connect/sdk/merchant.rb +5 -0
  558. data/lib/ingenico/connect/sdk/meta_data_provider.rb +151 -146
  559. data/lib/ingenico/connect/sdk/multipart_form_data_object.rb +36 -33
  560. data/lib/ingenico/connect/sdk/multipart_form_data_request.rb +10 -6
  561. data/lib/ingenico/connect/sdk/not_found_exception.rb +14 -11
  562. data/lib/ingenico/connect/sdk/param_request.rb +11 -8
  563. data/lib/ingenico/connect/sdk/pooled_connection.rb +20 -15
  564. data/lib/ingenico/connect/sdk/proxy_configuration.rb +63 -61
  565. data/lib/ingenico/connect/sdk/reference_exception.rb +14 -9
  566. data/lib/ingenico/connect/sdk/request_header.rb +52 -44
  567. data/lib/ingenico/connect/sdk/request_param.rb +22 -19
  568. data/lib/ingenico/connect/sdk/response_exception.rb +46 -41
  569. data/lib/ingenico/connect/sdk/response_header.rb +63 -55
  570. data/lib/ingenico/connect/sdk/session.rb +34 -31
  571. data/lib/ingenico/connect/sdk/uploadable_file.rb +23 -20
  572. data/lib/ingenico/connect/sdk/validation_exception.rb +14 -9
  573. data/lib/ingenico/connect/sdk/webhooks/api_version_mismatch_exception.rb +19 -15
  574. data/lib/ingenico/connect/sdk/webhooks/in_memory_secret_key_store.rb +49 -44
  575. data/lib/ingenico/connect/sdk/webhooks/secret_key_not_available_exception.rb +18 -12
  576. data/lib/ingenico/connect/sdk/webhooks/secret_key_store.rb +15 -11
  577. data/lib/ingenico/connect/sdk/webhooks/signature_validation_exception.rb +17 -14
  578. data/lib/ingenico/connect/sdk/webhooks/signature_validator.rb +83 -0
  579. data/lib/ingenico/connect/sdk/webhooks/webhooks.rb +20 -15
  580. data/lib/ingenico/connect/sdk/webhooks/webhooks_event.rb +60 -50
  581. data/lib/ingenico/connect/sdk/webhooks/webhooks_helper.rb +43 -94
  582. data/lib/ingenico/connect/sdk/webhooks/webhooks_helper_builder.rb +22 -17
  583. data/lib/ingenico/connect/sdk/webhooks.rb +1 -11
  584. data/lib/ingenico/connect/sdk.rb +1 -30
  585. data/spec/integration/connection_pooling_spec.rb +1 -1
  586. data/spec/lib/defaultimpl/default_connection_logger_spec.rb +17 -17
  587. data/spec/lib/webhooks/webhooks_spec.rb +2 -1
  588. metadata +40 -2
@@ -1,511 +1,515 @@
1
1
  require 'uri'
2
+ require 'ingenico/connect/sdk/communication_exception'
3
+ require 'ingenico/connect/sdk/logging/logging_capable'
4
+ require 'ingenico/connect/sdk/logging/obfuscation/obfuscation_capable'
5
+ require 'ingenico/connect/sdk/not_found_exception'
6
+ require 'ingenico/connect/sdk/pooled_connection'
7
+ require 'ingenico/connect/sdk/multipart_form_data_object'
8
+ require 'ingenico/connect/sdk/multipart_form_data_request'
9
+ require 'ingenico/connect/sdk/request_header'
10
+ require 'ingenico/connect/sdk/response_exception'
11
+ require 'ingenico/connect/sdk/response_header'
12
+
13
+ module Ingenico
14
+ module Connect
15
+ module SDK
16
+ # Class responsible for facilitating communication with the Ingenico ePayments platform.
17
+ # It combines the following classes to provide communication functionality:
18
+ #
19
+ # session:: {Ingenico::Connect::SDK::Session} that stores data for network communication and facilitates network communication
20
+ # marshaller:: {Ingenico::Connect::SDK::Marshaller} that is used to marshal and unmarshal data to and from JSON format
21
+ #
22
+ # @attr_reader [Ingenico::Connect::SDK::Marshaller] marshaller A Marshaller instance used by the communicator for serializing/deserializing to/from JSON
23
+ #
24
+ class Communicator
25
+ include Logging::LoggingCapable
26
+ include Logging::Obfuscation::ObfuscationCapable
27
+
28
+ # Creates a new Communicator based on a session and marshaller.
29
+ #
30
+ # @param session [Ingenico::Connect::SDK::Session] session that stores data for network communication and facilitates network communication
31
+ # @param marshaller [Ingenico::Connect::SDK::Marshaller] used to marshal and unmarshal data to and from JSON format
32
+ #
33
+ def initialize(session, marshaller)
34
+ raise ArgumentError('session is required') if session.nil?
35
+ raise ArgumentError('marshaller is required') if marshaller.nil?
36
+
37
+ @session = session
38
+ @marshaller = marshaller
39
+ end
2
40
 
3
- module Ingenico::Connect::SDK
4
- # Class responsible for facilitating communication with the Ingenico ePayments platform.
5
- # It combines the following classes to provide communication functionality:
6
- #
7
- # session:: {Ingenico::Connect::SDK::Session} that stores data for network communication and facilitates network communication
8
- # marshaller:: {Ingenico::Connect::SDK::Marshaller} that is used to marshal and unmarshal data to and from JSON format
9
- #
10
- # @attr_reader [Ingenico::Connect::SDK::Marshaller] marshaller A Marshaller instance used by the communicator for serializing/deserializing to/from JSON
11
- #
12
- class Communicator
13
- include Logging::LoggingCapable
14
- include Logging::Obfuscation::ObfuscationCapable
15
-
16
- # Creates a new Communicator based on a session and marshaller.
17
- #
18
- # @param session [Ingenico::Connect::SDK::Session] session that stores data for network communication and facilitates network communication
19
- # @param marshaller [Ingenico::Connect::SDK::Marshaller] used to marshal and unmarshal data to and from JSON format
20
- #
21
- def initialize(session, marshaller)
22
- raise ArgumentError('session is required') if session.nil?
23
- raise ArgumentError('marshaller is required') if marshaller.nil?
24
-
25
- @session = session
26
- @marshaller = marshaller
27
- end
28
-
29
- # Performs a GET request to the Ingenico ePayments platform and returns the response as the given response type.
30
- #
31
- # @param relative_path [String] path relative to the session's API endpoint
32
- # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] optional array of request headers
33
- # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] optional request parameters
34
- # @param response_type [Type] the response type.
35
- # @param context [Ingenico::Connect::SDK::CallContext] optional call context.
36
- # @return the response of the GET request as the given response type
37
- # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
38
- # This occurs for example if the request is not authenticated correctly
39
- # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
40
- # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
41
- # This occurs for example if a timeout occurs.
42
- def get(relative_path, request_headers, request_parameters, response_type, context)
43
- connection = @session.connection
44
- request_parameter_list = request_parameters &&
45
- request_parameters.to_request_parameters
46
- uri = to_absolute_uri(relative_path, request_parameter_list)
47
-
48
- request_headers = [] if request_headers.nil?
49
- add_generic_headers('GET', uri, request_headers, context)
50
-
51
- response_status_code, response_headers, response_body = nil
52
- connection.get(uri, request_headers) do |status_code, headers, content|
53
- response_status_code = status_code
54
- response_headers = headers
55
- response_body = content.read.force_encoding('UTF-8')
56
- end
57
- process_response(response_body, response_status_code, response_headers, response_type, relative_path, context)
58
- end
41
+ # Performs a GET request to the Ingenico ePayments platform and returns the response as the given response type.
42
+ #
43
+ # @param relative_path [String] path relative to the session's API endpoint
44
+ # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] optional array of request headers
45
+ # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] optional request parameters
46
+ # @param response_type [Type] the response type.
47
+ # @param context [Ingenico::Connect::SDK::CallContext] optional call context.
48
+ # @return the response of the GET request as the given response type
49
+ # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
50
+ # This occurs for example if the request is not authenticated correctly
51
+ # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
52
+ # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
53
+ # This occurs for example if a timeout occurs.
54
+ def get(relative_path, request_headers, request_parameters, response_type, context)
55
+ connection = @session.connection
56
+ request_parameter_list = request_parameters && request_parameters.to_request_parameters
57
+ uri = to_absolute_uri(relative_path, request_parameter_list)
58
+
59
+ request_headers = [] if request_headers.nil?
60
+ add_generic_headers('GET', uri, request_headers, context)
61
+
62
+ response_status_code, response_headers, response_body = nil
63
+ connection.get(uri, request_headers) do |status_code, headers, content|
64
+ response_status_code = status_code
65
+ response_headers = headers
66
+ response_body = content.read.force_encoding('UTF-8')
67
+ end
68
+ process_response(response_body, response_status_code, response_headers, response_type, relative_path, context)
69
+ end
59
70
 
60
- # Performs a GET request to the Ingenico ePayments platform and yields the response as the headers and body.
61
- #
62
- # @param relative_path [String] Path relative to the session's API endpoint
63
- # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
64
- # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
65
- # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
66
- # @yield [Array<Ingenico::Connect::SDK::ResponseHeader>, IO] The response headers and body.
67
- # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
68
- # This occurs for example if the request is not authenticated correctly
69
- # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
70
- # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
71
- # This occurs for example if a timeout occurs.
72
- def get_with_binary_response(relative_path, request_headers, request_parameters, context)
73
- connection = @session.connection
74
- request_parameter_list = request_parameters &&
75
- request_parameters.to_request_parameters
76
- uri = to_absolute_uri(relative_path, request_parameter_list)
77
-
78
- request_headers = [] if request_headers.nil?
79
- add_generic_headers('GET', uri, request_headers, context)
80
-
81
- response_status_code, response_headers, response_body = nil
82
- connection.get(uri, request_headers) do |status_code, headers, content|
83
- response_status_code = status_code
84
- response_headers = headers
85
- response_body = process_binary_response(status_code, content, headers, context) do |h, c|
86
- yield h, c
71
+ # Performs a GET request to the Ingenico ePayments platform and yields the response as the headers and body.
72
+ #
73
+ # @param relative_path [String] Path relative to the session's API endpoint
74
+ # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
75
+ # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
76
+ # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
77
+ # @yield [Array<Ingenico::Connect::SDK::ResponseHeader>, IO] The response headers and body.
78
+ # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
79
+ # This occurs for example if the request is not authenticated correctly
80
+ # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
81
+ # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
82
+ # This occurs for example if a timeout occurs.
83
+ def get_with_binary_response(relative_path, request_headers, request_parameters, context)
84
+ connection = @session.connection
85
+ request_parameter_list = request_parameters && request_parameters.to_request_parameters
86
+ uri = to_absolute_uri(relative_path, request_parameter_list)
87
+
88
+ request_headers = [] if request_headers.nil?
89
+ add_generic_headers('GET', uri, request_headers, context)
90
+
91
+ response_status_code, response_headers, response_body = nil
92
+ connection.get(uri, request_headers) do |status_code, headers, content|
93
+ response_status_code = status_code
94
+ response_headers = headers
95
+ response_body = process_binary_response(status_code, content, headers, context) do |h, c|
96
+ yield h, c
97
+ end
98
+ end
99
+ throw_exception_if_necessary(response_body, response_status_code, response_headers, relative_path)
87
100
  end
88
- end
89
- throw_exception_if_necessary(response_body, response_status_code, response_headers, relative_path)
90
- end
91
101
 
92
- # Performs a DELETE request to the Ingenico ePayments platform and returns the response as the given response type.
93
- #
94
- # @param relative_path [String] Path relative to the session's API endpoint
95
- # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
96
- # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
97
- # @param response_type [Type] The response type.
98
- # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
99
- # @return The response of the DELETE request as the given response type
100
- # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
101
- # This occurs for example if the request is not authenticated correctly
102
- # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
103
- # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
104
- # This occurs for example if a timeout occurs.
105
- def delete(relative_path, request_headers, request_parameters, response_type, context)
106
- connection = @session.connection
107
- request_parameter_list = request_parameters &&
108
- request_parameters.to_request_parameters
109
- uri = to_absolute_uri(relative_path, request_parameter_list)
110
- request_headers = [] if request_headers.nil?
111
- add_generic_headers('DELETE', uri, request_headers, context)
112
-
113
- response_status_code, response_headers, response_body = nil
114
- connection.delete(uri, request_headers) do |status_code, headers, content|
115
- response_status_code = status_code
116
- response_headers = headers
117
- response_body = content.read.force_encoding('UTF-8')
118
- end
119
- process_response(response_body, response_status_code, response_headers, response_type, relative_path, context)
120
- end
102
+ # Performs a DELETE request to the Ingenico ePayments platform and returns the response as the given response type.
103
+ #
104
+ # @param relative_path [String] Path relative to the session's API endpoint
105
+ # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
106
+ # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
107
+ # @param response_type [Type] The response type.
108
+ # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
109
+ # @return The response of the DELETE request as the given response type
110
+ # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
111
+ # This occurs for example if the request is not authenticated correctly
112
+ # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
113
+ # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
114
+ # This occurs for example if a timeout occurs.
115
+ def delete(relative_path, request_headers, request_parameters, response_type, context)
116
+ connection = @session.connection
117
+ request_parameter_list = request_parameters && request_parameters.to_request_parameters
118
+ uri = to_absolute_uri(relative_path, request_parameter_list)
119
+ request_headers = [] if request_headers.nil?
120
+ add_generic_headers('DELETE', uri, request_headers, context)
121
+
122
+ response_status_code, response_headers, response_body = nil
123
+ connection.delete(uri, request_headers) do |status_code, headers, content|
124
+ response_status_code = status_code
125
+ response_headers = headers
126
+ response_body = content.read.force_encoding('UTF-8')
127
+ end
128
+ process_response(response_body, response_status_code, response_headers, response_type, relative_path, context)
129
+ end
121
130
 
122
- # Performs a DELETE request to the Ingenico ePayments platform and yields the response as the headers and body.
123
- #
124
- # @param relative_path [String] Path relative to the session's API endpoint
125
- # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
126
- # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
127
- # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
128
- # @yield [Array<Ingenico::Connect::SDK::ResponseHeader>, IO] The response headers and body.
129
- # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
130
- # This occurs for example if the request is not authenticated correctly
131
- # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
132
- # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
133
- # This occurs for example if a timeout occurs.
134
- def delete_with_binary_response(relative_path, request_headers, request_parameters, context)
135
- connection = @session.connection
136
- request_parameter_list = request_parameters &&
137
- request_parameters.to_request_parameters
138
- uri = to_absolute_uri(relative_path, request_parameter_list)
139
- request_headers = [] if request_headers.nil?
140
- add_generic_headers('DELETE', uri, request_headers, context)
141
-
142
- response_status_code, response_headers, response_body = nil
143
- connection.delete(uri, request_headers) do |status_code, headers, content|
144
- response_status_code = status_code
145
- response_headers = headers
146
- response_body = process_binary_response(status_code, content, headers, context) do |h, c|
147
- yield h, c
131
+ # Performs a DELETE request to the Ingenico ePayments platform and yields the response as the headers and body.
132
+ #
133
+ # @param relative_path [String] Path relative to the session's API endpoint
134
+ # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
135
+ # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
136
+ # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
137
+ # @yield [Array<Ingenico::Connect::SDK::ResponseHeader>, IO] The response headers and body.
138
+ # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
139
+ # This occurs for example if the request is not authenticated correctly
140
+ # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
141
+ # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
142
+ # This occurs for example if a timeout occurs.
143
+ def delete_with_binary_response(relative_path, request_headers, request_parameters, context)
144
+ connection = @session.connection
145
+ request_parameter_list = request_parameters && request_parameters.to_request_parameters
146
+ uri = to_absolute_uri(relative_path, request_parameter_list)
147
+ request_headers = [] if request_headers.nil?
148
+ add_generic_headers('DELETE', uri, request_headers, context)
149
+
150
+ response_status_code, response_headers, response_body = nil
151
+ connection.delete(uri, request_headers) do |status_code, headers, content|
152
+ response_status_code = status_code
153
+ response_headers = headers
154
+ response_body = process_binary_response(status_code, content, headers, context) do |h, c|
155
+ yield h, c
156
+ end
157
+ end
158
+ throw_exception_if_necessary(response_body, response_status_code, response_headers, relative_path)
148
159
  end
149
- end
150
- throw_exception_if_necessary(response_body, response_status_code, response_headers, relative_path)
151
- end
152
160
 
153
- # Performs a POST request to the Ingenico ePayments platform and returns the response as the given response type.
154
- #
155
- # @param relative_path [String] Path relative to the session's API endpoint
156
- # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
157
- # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
158
- # @param request_body [Ingenico::Connect::SDK::DataObject, Ingenico::Connect::SDK::MultipartFormDataObject, Ingenico::Connect::SDK::MultipartFormDataRequest]
159
- # The optional request body
160
- # @param response_type [Type] The response type.
161
- # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
162
- # @return The response of the POST request as the given response type
163
- # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
164
- # This occurs for example if the request is not authenticated correctly
165
- # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
166
- # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
167
- # This occurs for example if a timeout occurs.
168
- def post(relative_path, request_headers, request_parameters, request_body, response_type, context)
169
- connection = @session.connection
170
- request_parameter_list = request_parameters &&
171
- request_parameters.to_request_parameters
172
- uri = to_absolute_uri(relative_path, request_parameter_list)
173
- request_headers = [] if request_headers.nil?
174
-
175
- body = nil
176
- if request_body.is_a? MultipartFormDataObject
177
- request_headers.push(RequestHeader.new('Content-Type', request_body.content_type))
178
- body = request_body
179
- elsif request_body.is_a? MultipartFormDataRequest
180
- multipart = request_body.to_multipart_form_data_object
181
- request_headers.push(RequestHeader.new('Content-Type', multipart.content_type))
182
- body = multipart
183
- elsif !request_body.nil?
184
- request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
185
- body = @marshaller.marshal(request_body)
186
- else
187
- # Set the content-type, even though there is no body, to prevent the httpClient from
188
- # adding a content-type header after authentication has been generated.
189
- request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
190
- end
161
+ # Performs a POST request to the Ingenico ePayments platform and returns the response as the given response type.
162
+ #
163
+ # @param relative_path [String] Path relative to the session's API endpoint
164
+ # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
165
+ # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
166
+ # @param request_body [Ingenico::Connect::SDK::DataObject, Ingenico::Connect::SDK::MultipartFormDataObject, Ingenico::Connect::SDK::MultipartFormDataRequest]
167
+ # The optional request body
168
+ # @param response_type [Type] The response type.
169
+ # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
170
+ # @return The response of the POST request as the given response type
171
+ # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
172
+ # This occurs for example if the request is not authenticated correctly
173
+ # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
174
+ # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
175
+ # This occurs for example if a timeout occurs.
176
+ def post(relative_path, request_headers, request_parameters, request_body, response_type, context)
177
+ connection = @session.connection
178
+ request_parameter_list = request_parameters && request_parameters.to_request_parameters
179
+ uri = to_absolute_uri(relative_path, request_parameter_list)
180
+ request_headers = [] if request_headers.nil?
181
+
182
+ body = nil
183
+ if request_body.is_a? MultipartFormDataObject
184
+ request_headers.push(RequestHeader.new('Content-Type', request_body.content_type))
185
+ body = request_body
186
+ elsif request_body.is_a? MultipartFormDataRequest
187
+ multipart = request_body.to_multipart_form_data_object
188
+ request_headers.push(RequestHeader.new('Content-Type', multipart.content_type))
189
+ body = multipart
190
+ elsif !request_body.nil?
191
+ request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
192
+ body = @marshaller.marshal(request_body)
193
+ else
194
+ # Set the content-type, even though there is no body, to prevent the httpClient from
195
+ # adding a content-type header after authentication has been generated.
196
+ request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
197
+ end
191
198
 
192
- add_generic_headers('POST', uri, request_headers, context)
199
+ add_generic_headers('POST', uri, request_headers, context)
193
200
 
194
- response_status_code, response_headers, response_body = nil
195
- connection.post(uri, request_headers, body) do |status_code, headers, content|
196
- response_status_code = status_code
197
- response_headers = headers
198
- response_body = content.read.force_encoding('UTF-8')
199
- end
200
- process_response(response_body, response_status_code, response_headers, response_type, relative_path, context)
201
- end
202
-
203
- # Performs a POST request to the Ingenico ePayments platform and yields the response as the headers and body.
204
- #
205
- # @param relative_path [String] Path relative to the session's API endpoint
206
- # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
207
- # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
208
- # @param request_body [Ingenico::Connect::SDK::DataObject, Ingenico::Connect::SDK::MultipartFormDataObject, Ingenico::Connect::SDK::MultipartFormDataRequest]
209
- # The optional request body
210
- # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
211
- # @yield [Array<Ingenico::Connect::SDK::ResponseHeader>, IO] The response headers and body.
212
- # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
213
- # This occurs for example if the request is not authenticated correctly
214
- # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
215
- # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
216
- # This occurs for example if a timeout occurs.
217
- def post_with_binary_response(relative_path, request_headers, request_parameters, request_body, context)
218
- connection = @session.connection
219
- request_parameter_list = request_parameters &&
220
- request_parameters.to_request_parameters
221
- uri = to_absolute_uri(relative_path, request_parameter_list)
222
- request_headers = [] if request_headers.nil?
223
-
224
- body = nil
225
- if request_body.is_a? MultipartFormDataObject
226
- request_headers.push(RequestHeader.new('Content-Type', request_body.content_type))
227
- body = request_body
228
- elsif request_body.is_a? MultipartFormDataRequest
229
- multipart = request_body.to_multipart_form_data_object
230
- request_headers.push(RequestHeader.new('Content-Type', multipart.content_type))
231
- body = multipart
232
- elsif !request_body.nil?
233
- request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
234
- body = @marshaller.marshal(request_body)
235
- else
236
- # Set the content-type, even though there is no body, to prevent the httpClient from
237
- # adding a content-type header after authentication has been generated.
238
- request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
239
- end
240
- add_generic_headers('POST', uri, request_headers, context)
241
-
242
- response_status_code, response_headers, response_body = nil
243
- connection.post(uri, request_headers, body) do |status_code, headers, content|
244
- response_status_code = status_code
245
- response_headers = headers
246
- response_body = process_binary_response(status_code, content, headers, context) do |h, c|
247
- yield h, c
201
+ response_status_code, response_headers, response_body = nil
202
+ connection.post(uri, request_headers, body) do |status_code, headers, content|
203
+ response_status_code = status_code
204
+ response_headers = headers
205
+ response_body = content.read.force_encoding('UTF-8')
206
+ end
207
+ process_response(response_body, response_status_code, response_headers, response_type, relative_path, context)
248
208
  end
249
- end
250
- throw_exception_if_necessary(response_body, response_status_code, response_headers, relative_path)
251
- end
252
209
 
253
- # Performs a PUT request to the Ingenico ePayments platform and returns the response as the given response type.
254
- #
255
- # @param relative_path [String] Path relative to the session's API endpoint
256
- # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
257
- # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
258
- # @param request_body [Ingenico::Connect::SDK::DataObject, Ingenico::Connect::SDK::MultipartFormDataObject, Ingenico::Connect::SDK::MultipartFormDataRequest]
259
- # The optional request body
260
- # @param response_type [Type] The response type.
261
- # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
262
- # @return The response of the PUT request as the given response type
263
- # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
264
- # This occurs for example if the request is not authenticated correctly
265
- # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
266
- # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
267
- # This occurs for example if a timeout occurs.
268
- def put(relative_path, request_headers, request_parameters, request_body, response_type, context)
269
- connection = @session.connection
270
- request_parameter_list = request_parameters &&
271
- request_parameters.to_request_parameters
272
- uri = to_absolute_uri(relative_path, request_parameter_list)
273
- request_headers = [] if request_headers.nil?
274
-
275
- body = nil
276
- if request_body.is_a? MultipartFormDataObject
277
- request_headers.push(RequestHeader.new('Content-Type', request_body.content_type))
278
- body = request_body
279
- elsif request_body.is_a? MultipartFormDataRequest
280
- multipart = request_body.to_multipart_form_data_object
281
- request_headers.push(RequestHeader.new('Content-Type', multipart.content_type))
282
- body = multipart
283
- elsif !request_body.nil?
284
- request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
285
- body = @marshaller.marshal(request_body)
286
- else
287
- # Set the content-type, even though there is no body, to prevent the httpClient from
288
- # adding a content-type header after authentication has been generated.
289
- request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
290
- end
291
- add_generic_headers('PUT', uri, request_headers, context)
210
+ # Performs a POST request to the Ingenico ePayments platform and yields the response as the headers and body.
211
+ #
212
+ # @param relative_path [String] Path relative to the session's API endpoint
213
+ # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
214
+ # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
215
+ # @param request_body [Ingenico::Connect::SDK::DataObject, Ingenico::Connect::SDK::MultipartFormDataObject, Ingenico::Connect::SDK::MultipartFormDataRequest]
216
+ # The optional request body
217
+ # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
218
+ # @yield [Array<Ingenico::Connect::SDK::ResponseHeader>, IO] The response headers and body.
219
+ # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
220
+ # This occurs for example if the request is not authenticated correctly
221
+ # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
222
+ # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
223
+ # This occurs for example if a timeout occurs.
224
+ def post_with_binary_response(relative_path, request_headers, request_parameters, request_body, context)
225
+ connection = @session.connection
226
+ request_parameter_list = request_parameters && request_parameters.to_request_parameters
227
+ uri = to_absolute_uri(relative_path, request_parameter_list)
228
+ request_headers = [] if request_headers.nil?
229
+
230
+ body = nil
231
+ if request_body.is_a? MultipartFormDataObject
232
+ request_headers.push(RequestHeader.new('Content-Type', request_body.content_type))
233
+ body = request_body
234
+ elsif request_body.is_a? MultipartFormDataRequest
235
+ multipart = request_body.to_multipart_form_data_object
236
+ request_headers.push(RequestHeader.new('Content-Type', multipart.content_type))
237
+ body = multipart
238
+ elsif !request_body.nil?
239
+ request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
240
+ body = @marshaller.marshal(request_body)
241
+ else
242
+ # Set the content-type, even though there is no body, to prevent the httpClient from
243
+ # adding a content-type header after authentication has been generated.
244
+ request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
245
+ end
246
+ add_generic_headers('POST', uri, request_headers, context)
247
+
248
+ response_status_code, response_headers, response_body = nil
249
+ connection.post(uri, request_headers, body) do |status_code, headers, content|
250
+ response_status_code = status_code
251
+ response_headers = headers
252
+ response_body = process_binary_response(status_code, content, headers, context) do |h, c|
253
+ yield h, c
254
+ end
255
+ end
256
+ throw_exception_if_necessary(response_body, response_status_code, response_headers, relative_path)
257
+ end
292
258
 
293
- response_status_code, response_headers, response_body = nil
294
- connection.put(uri, request_headers, body) do |status_code, headers, content|
295
- response_status_code = status_code
296
- response_headers = headers
297
- response_body = content.read.force_encoding('UTF-8')
298
- end
299
- process_response(response_body, response_status_code, response_headers, response_type, relative_path, context)
300
- end
259
+ # Performs a PUT request to the Ingenico ePayments platform and returns the response as the given response type.
260
+ #
261
+ # @param relative_path [String] Path relative to the session's API endpoint
262
+ # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
263
+ # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
264
+ # @param request_body [Ingenico::Connect::SDK::DataObject, Ingenico::Connect::SDK::MultipartFormDataObject, Ingenico::Connect::SDK::MultipartFormDataRequest]
265
+ # The optional request body
266
+ # @param response_type [Type] The response type.
267
+ # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
268
+ # @return The response of the PUT request as the given response type
269
+ # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
270
+ # This occurs for example if the request is not authenticated correctly
271
+ # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
272
+ # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
273
+ # This occurs for example if a timeout occurs.
274
+ def put(relative_path, request_headers, request_parameters, request_body, response_type, context)
275
+ connection = @session.connection
276
+ request_parameter_list = request_parameters && request_parameters.to_request_parameters
277
+ uri = to_absolute_uri(relative_path, request_parameter_list)
278
+ request_headers = [] if request_headers.nil?
279
+
280
+ body = nil
281
+ if request_body.is_a? MultipartFormDataObject
282
+ request_headers.push(RequestHeader.new('Content-Type', request_body.content_type))
283
+ body = request_body
284
+ elsif request_body.is_a? MultipartFormDataRequest
285
+ multipart = request_body.to_multipart_form_data_object
286
+ request_headers.push(RequestHeader.new('Content-Type', multipart.content_type))
287
+ body = multipart
288
+ elsif !request_body.nil?
289
+ request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
290
+ body = @marshaller.marshal(request_body)
291
+ else
292
+ # Set the content-type, even though there is no body, to prevent the httpClient from
293
+ # adding a content-type header after authentication has been generated.
294
+ request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
295
+ end
296
+ add_generic_headers('PUT', uri, request_headers, context)
301
297
 
302
- # Performs a PUT request to the Ingenico ePayments platform and yields the response as the headers and body.
303
- #
304
- # @param relative_path [String] Path relative to the session's API endpoint
305
- # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
306
- # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
307
- # @param request_body [Ingenico::Connect::SDK::DataObject, Ingenico::Connect::SDK::MultipartFormDataObject, Ingenico::Connect::SDK::MultipartFormDataRequest]
308
- # The optional request body
309
- # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
310
- # @yield [Array<Ingenico::Connect::SDK::ResponseHeader>, IO] The response headers and body.
311
- # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
312
- # This occurs for example if the request is not authenticated correctly
313
- # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
314
- # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
315
- # This occurs for example if a timeout occurs.
316
- def put_with_binary_response(relative_path, request_headers, request_parameters, request_body, context)
317
- connection = @session.connection
318
- request_parameter_list = request_parameters &&
319
- request_parameters.to_request_parameters
320
- uri = to_absolute_uri(relative_path, request_parameter_list)
321
- request_headers = [] if request_headers.nil?
322
-
323
- body = nil
324
- if request_body.is_a? MultipartFormDataObject
325
- request_headers.push(RequestHeader.new('Content-Type', request_body.content_type))
326
- body = request_body
327
- elsif request_body.is_a? MultipartFormDataRequest
328
- multipart = request_body.to_multipart_form_data_object
329
- request_headers.push(RequestHeader.new('Content-Type', multipart.content_type))
330
- body = multipart
331
- elsif !request_body.nil?
332
- request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
333
- body = @marshaller.marshal(request_body)
334
- else
335
- # Set the content-type, even though there is no body, to prevent the httpClient from
336
- # adding a content-type header after authentication has been generated.
337
- request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
338
- end
339
- add_generic_headers('PUT', uri, request_headers, context)
340
-
341
- response_status_code, response_headers, response_body = nil
342
- connection.put(uri, request_headers, body) do |status_code, headers, content|
343
- response_status_code = status_code
344
- response_headers = headers
345
- response_body = process_binary_response(status_code, content, headers, context) do |h, c|
346
- yield h, c
298
+ response_status_code, response_headers, response_body = nil
299
+ connection.put(uri, request_headers, body) do |status_code, headers, content|
300
+ response_status_code = status_code
301
+ response_headers = headers
302
+ response_body = content.read.force_encoding('UTF-8')
303
+ end
304
+ process_response(response_body, response_status_code, response_headers, response_type, relative_path, context)
347
305
  end
348
- end
349
- throw_exception_if_necessary(response_body, response_status_code, response_headers, relative_path)
350
- end
351
306
 
352
- # Closes any connections idle for more than _idle_time_ seconds.
353
- # Will not have any effect if the connection is not a pooled connection (an instance of {Ingenico::Connect::SDK::PooledConnection}).
354
- def close_idle_connections(idle_time)
355
- connection = @session.connection
356
- connection.close_idle_connections(idle_time) if
357
- connection.is_a? PooledConnection
358
- end
307
+ # Performs a PUT request to the Ingenico ePayments platform and yields the response as the headers and body.
308
+ #
309
+ # @param relative_path [String] Path relative to the session's API endpoint
310
+ # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] Optional array of request headers
311
+ # @param request_parameters [Ingenico::Connect::SDK::ParamRequest] Optional request parameters
312
+ # @param request_body [Ingenico::Connect::SDK::DataObject, Ingenico::Connect::SDK::MultipartFormDataObject, Ingenico::Connect::SDK::MultipartFormDataRequest]
313
+ # The optional request body
314
+ # @param context [Ingenico::Connect::SDK::CallContext] Optional call context.
315
+ # @yield [Array<Ingenico::Connect::SDK::ResponseHeader>, IO] The response headers and body.
316
+ # @raise [Ingenico::Connect::SDK::ResponseException] if the request could not be fulfilled successfully.
317
+ # This occurs for example if the request is not authenticated correctly
318
+ # @raise [Ingenico::Connect::SDK::NotFoundException] if the requested resource is not found
319
+ # @raise [Ingenico::Connect::SDK::CommunicationException] if there is an error in communicating with the Ingenico ePayments platform.
320
+ # This occurs for example if a timeout occurs.
321
+ def put_with_binary_response(relative_path, request_headers, request_parameters, request_body, context)
322
+ connection = @session.connection
323
+ request_parameter_list = request_parameters && request_parameters.to_request_parameters
324
+ uri = to_absolute_uri(relative_path, request_parameter_list)
325
+ request_headers = [] if request_headers.nil?
326
+
327
+ body = nil
328
+ if request_body.is_a? MultipartFormDataObject
329
+ request_headers.push(RequestHeader.new('Content-Type', request_body.content_type))
330
+ body = request_body
331
+ elsif request_body.is_a? MultipartFormDataRequest
332
+ multipart = request_body.to_multipart_form_data_object
333
+ request_headers.push(RequestHeader.new('Content-Type', multipart.content_type))
334
+ body = multipart
335
+ elsif !request_body.nil?
336
+ request_headers.push(RequestHeader.new('Content-Type', 'application/json'))
337
+ body = @marshaller.marshal(request_body)
338
+ else
339
+ # Set the content-type, even though there is no body, to prevent the httpClient from
340
+ # adding a content-type header after authentication has been generated.
341
+ request_headers.push(RequestHeader.new('Content-Type', 'text/plain'))
342
+ end
343
+ add_generic_headers('PUT', uri, request_headers, context)
344
+
345
+ response_status_code, response_headers, response_body = nil
346
+ connection.put(uri, request_headers, body) do |status_code, headers, content|
347
+ response_status_code = status_code
348
+ response_headers = headers
349
+ response_body = process_binary_response(status_code, content, headers, context) do |h, c|
350
+ yield h, c
351
+ end
352
+ end
353
+ throw_exception_if_necessary(response_body, response_status_code, response_headers, relative_path)
354
+ end
359
355
 
360
- # Closes any connections that have expired.
361
- # Will not have any effect if the connection is not a pooled connection (an instance of {Ingenico::Connect::SDK::PooledConnection}).
362
- def close_expired_connections
363
- connection = @session.connection
364
- connection.close_expired_connections if connection.is_a? PooledConnection
365
- end
356
+ # Closes any connections idle for more than _idle_time_ seconds.
357
+ # Will not have any effect if the connection is not a pooled connection (an instance of {Ingenico::Connect::SDK::PooledConnection}).
358
+ def close_idle_connections(idle_time)
359
+ connection = @session.connection
360
+ connection.close_idle_connections(idle_time) if connection.is_a? PooledConnection
361
+ end
366
362
 
367
- # Sets the current body obfuscator to use.
368
- # @param body_obfuscator [Ingenico::Connect::SDK::Logging::Obfuscation::BodyObfuscator]
369
- def set_body_obfuscator(body_obfuscator)
370
- connection = @session.connection
371
- connection.set_body_obfuscator(body_obfuscator) if connection.is_a? Logging::Obfuscation::ObfuscationCapable
372
- end
363
+ # Closes any connections that have expired.
364
+ # Will not have any effect if the connection is not a pooled connection (an instance of {Ingenico::Connect::SDK::PooledConnection}).
365
+ def close_expired_connections
366
+ connection = @session.connection
367
+ connection.close_expired_connections if connection.is_a? PooledConnection
368
+ end
373
369
 
374
- # Sets the current header obfuscator to use.
375
- # @param header_obfuscator [Ingenico::Connect::SDK::Logging::Obfuscation::HeaderObfuscator]
376
- def set_header_obfuscator(header_obfuscator)
377
- connection = @session.connection
378
- connection.set_header_obfuscator(header_obfuscator) if connection.is_a? Logging::Obfuscation::ObfuscationCapable
379
- end
370
+ # Sets the current body obfuscator to use.
371
+ # @param body_obfuscator [Ingenico::Connect::SDK::Logging::Obfuscation::BodyObfuscator]
372
+ def set_body_obfuscator(body_obfuscator)
373
+ connection = @session.connection
374
+ connection.set_body_obfuscator(body_obfuscator) if connection.is_a? Logging::Obfuscation::ObfuscationCapable
375
+ end
380
376
 
381
- # Enables logging outgoing requests and incoming responses by registering the _communicator_logger_.
382
- # Note that only one logger can be registered at a time and calling _enable_logging_
383
- # a second time will override the old logger instance with the new one.
384
- #
385
- # @param communicator_logger [Ingenico::Connect::SDK::Logging::CommunicatorLogger] The communicator logger the requests and responses are logged to
386
- def enable_logging(communicator_logger)
387
- @session.connection.enable_logging(communicator_logger)
388
- end
377
+ # Sets the current header obfuscator to use.
378
+ # @param header_obfuscator [Ingenico::Connect::SDK::Logging::Obfuscation::HeaderObfuscator]
379
+ def set_header_obfuscator(header_obfuscator)
380
+ connection = @session.connection
381
+ connection.set_header_obfuscator(header_obfuscator) if connection.is_a? Logging::Obfuscation::ObfuscationCapable
382
+ end
389
383
 
390
- # Disables logging by unregistering any previous logger that might be registered.
391
- def disable_logging
392
- @session.connection.disable_logging
393
- end
384
+ # Enables logging outgoing requests and incoming responses by registering the _communicator_logger_.
385
+ # Note that only one logger can be registered at a time and calling _enable_logging_
386
+ # a second time will override the old logger instance with the new one.
387
+ #
388
+ # @param communicator_logger [Ingenico::Connect::SDK::Logging::CommunicatorLogger] The communicator logger the requests and responses are logged to
389
+ def enable_logging(communicator_logger)
390
+ @session.connection.enable_logging(communicator_logger)
391
+ end
394
392
 
395
- # Frees networking resources by closing the underlying network connections.
396
- # After calling _close_, any use of the _get_, _delete_, _post_ and _put_ methods will not function
397
- # and likely result in an error.
398
- def close
399
- @session.connection.close
400
- end
393
+ # Disables logging by unregistering any previous logger that might be registered.
394
+ def disable_logging
395
+ @session.connection.disable_logging
396
+ end
401
397
 
402
- attr_reader :marshaller
403
-
404
- protected
405
-
406
- # Constructs a full URL using the base URL stored in the {Ingenico::Connect::SDK::Session} and the given relative path and request_parameters.
407
- # The returned URL is a *URI* object.
408
- #
409
- # @param relative_path [String] The relative path of the URL.
410
- # @param request_parameters [Array<Ingenico::Connect::SDK::RequestParam>] A list of request parameters that each have #name and #value
411
- # which represent the parameter name and value respectively.
412
- def to_absolute_uri(relative_path, request_parameters)
413
- api_endpoint = @session.api_endpoint
414
- raise RuntimeError('api_endpoint should not contain a path') unless
415
- api_endpoint.path.nil? || api_endpoint.path.empty?
416
-
417
- unless api_endpoint.userinfo.nil? && api_endpoint.query.nil? &&
418
- api_endpoint.fragment.nil?
419
- raise RuntimeError(
420
- 'api_endpoint should not contain user info, query or fragment'
421
- )
422
- end
423
- absolute_path = relative_path.start_with?('/') ? relative_path : '/' + relative_path
424
- uri = URI::HTTP.new(api_endpoint.scheme, nil, api_endpoint.host,
425
- api_endpoint.port, nil, absolute_path, nil, nil, nil)
426
- unless request_parameters.nil?
427
- request_parameters.each do |nvp|
428
- parameters = URI.decode_www_form(uri.query || '') << [nvp.name, nvp.value]
429
- uri.query = URI.encode_www_form(parameters)
398
+ # Frees networking resources by closing the underlying network connections.
399
+ # After calling _close_, any use of the _get_, _delete_, _post_ and _put_ methods will not function
400
+ # and likely result in an error.
401
+ def close
402
+ @session.connection.close
430
403
  end
431
- end
432
- uri
433
- end
434
404
 
435
- # Adds several standard headers to the http headers.
436
- # This method will add the 'Date' and 'Authorization' header;
437
- # the 'X-GCS-Idempotence-Key' header will also be added if an idempotence context is given
438
- #
439
- # @param http_method [String] 'GET', 'DELETE', 'POST' or 'PUT' depending on the HTTP method being used
440
- # @param uri [URI::HTTP] The full URI to the Ingenico ePayments platform,
441
- # including the relative path and request parameters.
442
- # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] List of request headers in which which new headers will be added
443
- # @param context [Ingenico::Connect::SDK::CallContext] object that will be used to produce
444
- # an Idempotence header to prevent accidental request duplication.
445
- def add_generic_headers(http_method, uri, request_headers, context = nil)
446
- request_headers.concat(@session.meta_data_provider.meta_data_headers)
447
- request_headers.push(RequestHeader.new('Date', get_header_date_string))
448
- if !context.nil? && !context.idempotence_key.nil?
449
- request_headers.push(RequestHeader.new('X-GCS-Idempotence-Key', context.idempotence_key))
450
- end
451
- authenticator = @session.authenticator
452
- authentication_signature = authenticator.create_simple_authentication_signature(http_method, uri, request_headers)
453
- request_headers.push(RequestHeader.new('Authorization', authentication_signature))
454
- end
405
+ attr_reader :marshaller
406
+
407
+ protected
408
+
409
+ # Constructs a full URL using the base URL stored in the {Ingenico::Connect::SDK::Session} and the given relative path and request_parameters.
410
+ # The returned URL is a *URI* object.
411
+ #
412
+ # @param relative_path [String] The relative path of the URL.
413
+ # @param request_parameters [Array<Ingenico::Connect::SDK::RequestParam>] A list of request parameters that each have #name and #value
414
+ # which represent the parameter name and value respectively.
415
+ def to_absolute_uri(relative_path, request_parameters)
416
+ api_endpoint = @session.api_endpoint
417
+ raise RuntimeError('api_endpoint should not contain a path') unless api_endpoint.path.nil? || api_endpoint.path.empty?
418
+
419
+ unless api_endpoint.userinfo.nil? && api_endpoint.query.nil? &&
420
+ api_endpoint.fragment.nil?
421
+ raise RuntimeError(
422
+ 'api_endpoint should not contain user info, query or fragment'
423
+ )
424
+ end
425
+ absolute_path = relative_path.start_with?('/') ? relative_path : '/' + relative_path
426
+ uri = URI::HTTP.new(api_endpoint.scheme, nil, api_endpoint.host,
427
+ api_endpoint.port, nil, absolute_path, nil, nil, nil)
428
+ unless request_parameters.nil?
429
+ request_parameters.each do |nvp|
430
+ parameters = URI.decode_www_form(uri.query || '') << [nvp.name, nvp.value]
431
+ uri.query = URI.encode_www_form(parameters)
432
+ end
433
+ end
434
+ uri
435
+ end
455
436
 
456
- def get_header_date_string
457
- Time.now.utc.strftime('%a, %d %b %Y %H:%M:%S GMT')
458
- end
437
+ # Adds several standard headers to the http headers.
438
+ # This method will add the 'Date' and 'Authorization' header;
439
+ # the 'X-GCS-Idempotence-Key' header will also be added if an idempotence context is given
440
+ #
441
+ # @param http_method [String] 'GET', 'DELETE', 'POST' or 'PUT' depending on the HTTP method being used
442
+ # @param uri [URI::HTTP] The full URI to the Ingenico ePayments platform,
443
+ # including the relative path and request parameters.
444
+ # @param request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] List of request headers in which which new headers will be added
445
+ # @param context [Ingenico::Connect::SDK::CallContext] object that will be used to produce
446
+ # an Idempotence header to prevent accidental request duplication.
447
+ def add_generic_headers(http_method, uri, request_headers, context = nil)
448
+ request_headers.concat(@session.meta_data_provider.meta_data_headers)
449
+ request_headers.push(RequestHeader.new('Date', get_header_date_string))
450
+ if !context.nil? && !context.idempotence_key.nil?
451
+ request_headers.push(RequestHeader.new('X-GCS-Idempotence-Key', context.idempotence_key))
452
+ end
453
+ authenticator = @session.authenticator
454
+ authentication_signature = authenticator.create_simple_authentication_signature(http_method, uri, request_headers)
455
+ request_headers.push(RequestHeader.new('Authorization', authentication_signature))
456
+ end
459
457
 
460
- def process_response(body, status, headers, response_type, request_path, context)
461
- update_context(headers, context) unless context.nil?
458
+ def get_header_date_string
459
+ Time.now.utc.strftime('%a, %d %b %Y %H:%M:%S GMT')
460
+ end
462
461
 
463
- throw_exception_if_necessary(body, status, headers, request_path)
464
- @marshaller.unmarshal(body, response_type)
465
- end
462
+ def process_response(body, status, headers, response_type, request_path, context)
463
+ update_context(headers, context) unless context.nil?
466
464
 
467
- def process_binary_response(status, body, headers, context)
468
- update_context(response.headers, context) unless context.nil?
465
+ throw_exception_if_necessary(body, status, headers, request_path)
466
+ @marshaller.unmarshal(body, response_type)
467
+ end
469
468
 
470
- if status < 400
471
- yield headers, body
472
- ''
473
- else
474
- body.read.force_encoding('UTF-8')
475
- end
476
- end
469
+ def process_binary_response(status, body, headers, context)
470
+ update_context(response.headers, context) unless context.nil?
477
471
 
478
- def update_context(headers, context)
479
- idempotence_request_timestamp_value = ResponseHeader.get_header_value(headers, 'X-GCS-Idempotence-Request-Timestamp')
480
- if idempotence_request_timestamp_value.nil?
481
- context.idempotence_request_timestamp = nil
482
- else
483
- context.idempotence_request_timestamp = idempotence_request_timestamp_value
484
- end
485
- end
472
+ if status < 400
473
+ yield headers, body
474
+ ''
475
+ else
476
+ body.read.force_encoding('UTF-8')
477
+ end
478
+ end
486
479
 
487
- def throw_exception_if_necessary(body, status_code, headers, request_path)
488
- if status_code < 200 || status_code >= 300
489
- if !body.nil? && !is_json(headers)
490
- cause = ResponseException.new(status_code, headers, body)
491
- if status_code == 404
492
- raise NotFoundException.new(cause, 'The requested resource was not found; invalid path: ' +
493
- request_path)
480
+ def update_context(headers, context)
481
+ idempotence_request_timestamp_value = ResponseHeader.get_header_value(headers, 'X-GCS-Idempotence-Request-Timestamp')
482
+ if idempotence_request_timestamp_value.nil?
483
+ context.idempotence_request_timestamp = nil
494
484
  else
495
- raise CommunicationException, cause
485
+ context.idempotence_request_timestamp = idempotence_request_timestamp_value
496
486
  end
497
- else
498
- raise ResponseException.new(status_code, headers, body)
499
487
  end
500
- end
501
- end
502
488
 
503
- private
489
+ def throw_exception_if_necessary(body, status_code, headers, request_path)
490
+ if status_code < 200 || status_code >= 300
491
+ if !body.nil? && !is_json(headers)
492
+ cause = ResponseException.new(status_code, headers, body)
493
+ if status_code == 404
494
+ raise NotFoundException.new(cause, 'The requested resource was not found; invalid path: ' +
495
+ request_path)
496
+ else
497
+ raise CommunicationException, cause
498
+ end
499
+ else
500
+ raise ResponseException.new(status_code, headers, body)
501
+ end
502
+ end
503
+ end
504
+
505
+ private
504
506
 
505
- def is_json(headers)
506
- content_type = ResponseHeader.get_header_value(headers, 'Content-Type')
507
- content_type.nil? || 'application/json'.casecmp(content_type) == 0 ||
508
- content_type.downcase.start_with?('application/json')
507
+ def is_json(headers)
508
+ content_type = ResponseHeader.get_header_value(headers, 'Content-Type')
509
+ content_type.nil? || 'application/json'.casecmp(content_type) == 0 ||
510
+ content_type.downcase.start_with?('application/json')
511
+ end
512
+ end
509
513
  end
510
514
  end
511
515
  end