connect-sdk-ruby 1.36.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. checksums.yaml +4 -4
  2. data/connect-sdk-ruby.gemspec +1 -1
  3. data/examples/merchant/captures/get_capture_example.rb +1 -1
  4. data/examples/merchant/disputes/cancel_dispute_example.rb +1 -1
  5. data/examples/merchant/disputes/get_dispute_example.rb +1 -1
  6. data/examples/merchant/disputes/submit_dispute_example.rb +1 -1
  7. data/examples/merchant/disputes/upload_dispute_file_example.rb +30 -0
  8. data/examples/merchant/{products/get_payment_product_public_key_example.rb → files/get_file_example.rb} +7 -1
  9. data/examples/merchant/hostedcheckouts/create_hosted_checkout_example.rb +1 -1
  10. data/examples/merchant/hostedcheckouts/get_hosted_checkout_example.rb +1 -1
  11. data/examples/merchant/hostedmandatemanagements/create_hosted_mandate_management_example.rb +1 -1
  12. data/examples/merchant/hostedmandatemanagements/get_hosted_mandate_management_example.rb +1 -1
  13. data/examples/merchant/mandates/block_mandate_example.rb +1 -1
  14. data/examples/merchant/mandates/create_mandate_example.rb +1 -1
  15. data/examples/merchant/mandates/create_mandate_with_reference_example.rb +1 -1
  16. data/examples/merchant/mandates/get_mandate_example.rb +1 -1
  17. data/examples/merchant/mandates/revoke_mandate_example.rb +1 -1
  18. data/examples/merchant/mandates/unblock_mandate_example.rb +1 -1
  19. data/examples/merchant/payments/approve_payment_example.rb +1 -1
  20. data/examples/merchant/payments/cancel_approval_payment_example.rb +1 -1
  21. data/examples/merchant/payments/cancel_payment_example.rb +1 -1
  22. data/examples/merchant/payments/capture_payment_example.rb +1 -1
  23. data/examples/merchant/payments/complete_payment_example.rb +1 -1
  24. data/examples/merchant/payments/create_payment_dispute_example.rb +1 -1
  25. data/examples/merchant/payments/create_payment_example.rb +3 -3
  26. data/examples/merchant/payments/find_payments_example.rb +1 -1
  27. data/examples/merchant/payments/get_payment_captures_example.rb +1 -1
  28. data/examples/merchant/payments/get_payment_disputes_example.rb +1 -1
  29. data/examples/merchant/payments/get_payment_example.rb +1 -1
  30. data/examples/merchant/payments/get_refunds_example.rb +1 -1
  31. data/examples/merchant/payments/get_third_party_status_example.rb +1 -1
  32. data/examples/merchant/payments/process_challenged_payment_example.rb +1 -1
  33. data/examples/merchant/payments/refund_payment_example.rb +2 -2
  34. data/examples/merchant/payments/tokenize_payment_example.rb +1 -1
  35. data/examples/merchant/payouts/approve_payout_example.rb +1 -1
  36. data/examples/merchant/payouts/cancel_approval_payout_example.rb +1 -1
  37. data/examples/merchant/payouts/cancel_payout_example.rb +1 -1
  38. data/examples/merchant/payouts/create_payout_example.rb +2 -2
  39. data/examples/merchant/payouts/find_payouts_example.rb +1 -1
  40. data/examples/merchant/payouts/get_payout_example.rb +1 -1
  41. data/examples/merchant/productgroups/get_device_fingerprint_for_groups_example.rb +1 -1
  42. data/examples/merchant/productgroups/get_payment_product_group_example.rb +1 -1
  43. data/examples/merchant/productgroups/get_payment_product_groups_example.rb +1 -1
  44. data/examples/merchant/products/get_customer_details_example.rb +1 -1
  45. data/examples/merchant/products/get_device_fingerprint_example.rb +1 -1
  46. data/examples/merchant/products/get_directory_example.rb +1 -1
  47. data/examples/merchant/products/get_networks_example.rb +1 -1
  48. data/examples/merchant/products/get_payment_product_example.rb +1 -1
  49. data/examples/merchant/products/get_payment_products_example.rb +1 -1
  50. data/examples/merchant/refunds/approve_refund_example.rb +1 -1
  51. data/examples/merchant/refunds/cancel_approval_refund_example.rb +1 -1
  52. data/examples/merchant/refunds/cancel_refund_example.rb +1 -1
  53. data/examples/merchant/refunds/find_refunds_example.rb +1 -1
  54. data/examples/merchant/refunds/get_refund_example.rb +1 -1
  55. data/examples/merchant/riskassessments/risk_assessment_bank_account_example.rb +1 -1
  56. data/examples/merchant/riskassessments/risk_assessment_cards_example.rb +1 -1
  57. data/examples/merchant/services/convert_amount_example.rb +1 -1
  58. data/examples/merchant/services/convert_bank_account_example.rb +1 -1
  59. data/examples/merchant/services/get_privacy_policy_example.rb +1 -1
  60. data/examples/merchant/services/iin_details_example.rb +1 -1
  61. data/examples/merchant/services/test_connection_example.rb +1 -1
  62. data/examples/merchant/sessions/create_session_example.rb +1 -1
  63. data/examples/merchant/tokens/approve_sepa_direct_debit_token_example.rb +1 -1
  64. data/examples/merchant/tokens/create_token_example.rb +1 -1
  65. data/examples/merchant/tokens/delete_token_example.rb +1 -1
  66. data/examples/merchant/tokens/get_token_example.rb +1 -1
  67. data/examples/merchant/tokens/update_token_example.rb +1 -1
  68. data/lib/ingenico/connect/sdk.rb +3 -1
  69. data/lib/ingenico/connect/sdk/api_exception.rb +12 -14
  70. data/lib/ingenico/connect/sdk/api_resource.rb +14 -13
  71. data/lib/ingenico/connect/sdk/authenticator.rb +5 -4
  72. data/lib/ingenico/connect/sdk/call_context.rb +6 -6
  73. data/lib/ingenico/connect/sdk/client.rb +12 -11
  74. data/lib/ingenico/connect/sdk/communication_exception.rb +2 -1
  75. data/lib/ingenico/connect/sdk/communicator.rb +331 -128
  76. data/lib/ingenico/connect/sdk/communicator_configuration.rb +21 -39
  77. data/lib/ingenico/connect/sdk/connection.rb +16 -6
  78. data/lib/ingenico/connect/sdk/data_object.rb +2 -13
  79. data/lib/ingenico/connect/sdk/declined_payment_exception.rb +1 -1
  80. data/lib/ingenico/connect/sdk/declined_payout_exception.rb +1 -1
  81. data/lib/ingenico/connect/sdk/declined_refund_exception.rb +1 -1
  82. data/lib/ingenico/connect/sdk/defaultimpl/authorization_type.rb +2 -1
  83. data/lib/ingenico/connect/sdk/defaultimpl/default_authenticator.rb +9 -7
  84. data/lib/ingenico/connect/sdk/defaultimpl/default_connection.rb +212 -68
  85. data/lib/ingenico/connect/sdk/defaultimpl/default_marshaller.rb +2 -2
  86. data/lib/ingenico/connect/sdk/domain/capture/capture.rb +12 -15
  87. data/lib/ingenico/connect/sdk/domain/capture/capture_output.rb +43 -60
  88. data/lib/ingenico/connect/sdk/domain/capture/capture_status_output.rb +4 -3
  89. data/lib/ingenico/connect/sdk/domain/capture/captures_response.rb +5 -6
  90. data/lib/ingenico/connect/sdk/domain/definitions/abstract_order_status.rb +4 -3
  91. data/lib/ingenico/connect/sdk/domain/definitions/abstract_payment_method_specific_input.rb +4 -3
  92. data/lib/ingenico/connect/sdk/domain/definitions/additional_order_input_airline_data.rb +5 -6
  93. data/lib/ingenico/connect/sdk/domain/definitions/address.rb +25 -24
  94. data/lib/ingenico/connect/sdk/domain/definitions/airline_data.rb +76 -79
  95. data/lib/ingenico/connect/sdk/domain/definitions/airline_flight_leg.rb +62 -61
  96. data/lib/ingenico/connect/sdk/domain/definitions/airline_passenger.rb +13 -12
  97. data/lib/ingenico/connect/sdk/domain/definitions/amount_of_money.rb +7 -6
  98. data/lib/ingenico/connect/sdk/domain/definitions/bank_account.rb +4 -3
  99. data/lib/ingenico/connect/sdk/domain/definitions/bank_account_bban.rb +19 -18
  100. data/lib/ingenico/connect/sdk/domain/definitions/bank_account_iban.rb +4 -3
  101. data/lib/ingenico/connect/sdk/domain/definitions/card.rb +4 -3
  102. data/lib/ingenico/connect/sdk/domain/definitions/card_essentials.rb +7 -6
  103. data/lib/ingenico/connect/sdk/domain/definitions/card_fraud_results.rb +15 -18
  104. data/lib/ingenico/connect/sdk/domain/definitions/card_without_cvv.rb +7 -6
  105. data/lib/ingenico/connect/sdk/domain/definitions/company_information.rb +7 -6
  106. data/lib/ingenico/connect/sdk/domain/definitions/contact_details_base.rb +7 -6
  107. data/lib/ingenico/connect/sdk/domain/definitions/customer_base.rb +12 -13
  108. data/lib/ingenico/connect/sdk/domain/definitions/fraud_fields.rb +70 -75
  109. data/lib/ingenico/connect/sdk/domain/definitions/fraud_fields_shipping_details.rb +14 -13
  110. data/lib/ingenico/connect/sdk/domain/definitions/fraud_results.rb +4 -3
  111. data/lib/ingenico/connect/sdk/domain/definitions/fraud_results_retail_decisions.rb +10 -9
  112. data/lib/ingenico/connect/sdk/domain/definitions/fraugster_results.rb +7 -6
  113. data/lib/ingenico/connect/sdk/domain/definitions/key_value_pair.rb +7 -6
  114. data/lib/ingenico/connect/sdk/domain/definitions/order_status_output.rb +17 -18
  115. data/lib/ingenico/connect/sdk/domain/definitions/payment_product_filter.rb +9 -12
  116. data/lib/ingenico/connect/sdk/domain/definitions/personal_name_base.rb +10 -9
  117. data/lib/ingenico/connect/sdk/domain/definitions/redirect_data_base.rb +7 -6
  118. data/lib/ingenico/connect/sdk/domain/definitions/result_do_risk_assessment.rb +15 -18
  119. data/lib/ingenico/connect/sdk/domain/definitions/retail_decisions_cc_fraud_check_output.rb +10 -9
  120. data/lib/ingenico/connect/sdk/domain/definitions/validation_bank_account_check.rb +10 -9
  121. data/lib/ingenico/connect/sdk/domain/definitions/validation_bank_account_output.rb +17 -18
  122. data/lib/ingenico/connect/sdk/domain/dispute/create_dispute_request.rb +17 -18
  123. data/lib/ingenico/connect/sdk/domain/dispute/dispute.rb +18 -21
  124. data/lib/ingenico/connect/sdk/domain/dispute/dispute_creation_detail.rb +10 -9
  125. data/lib/ingenico/connect/sdk/domain/dispute/dispute_output.rb +32 -39
  126. data/lib/ingenico/connect/sdk/domain/dispute/dispute_reference.rb +16 -15
  127. data/lib/ingenico/connect/sdk/domain/dispute/dispute_status_output.rb +13 -12
  128. data/lib/ingenico/connect/sdk/domain/dispute/disputes_response.rb +5 -6
  129. data/lib/ingenico/connect/sdk/domain/dispute/upload_dispute_file_response.rb +39 -0
  130. data/lib/ingenico/connect/sdk/domain/errors/api_error.rb +22 -21
  131. data/lib/ingenico/connect/sdk/domain/errors/error_response.rb +8 -9
  132. data/lib/ingenico/connect/sdk/domain/file/hosted_file.rb +13 -12
  133. data/lib/ingenico/connect/sdk/domain/hostedcheckout/create_hosted_checkout_request.rb +45 -66
  134. data/lib/ingenico/connect/sdk/domain/hostedcheckout/create_hosted_checkout_response.rb +17 -18
  135. data/lib/ingenico/connect/sdk/domain/hostedcheckout/created_payment_output.rb +23 -28
  136. data/lib/ingenico/connect/sdk/domain/hostedcheckout/displayed_data.rb +11 -12
  137. data/lib/ingenico/connect/sdk/domain/hostedcheckout/get_hosted_checkout_response.rb +8 -9
  138. data/lib/ingenico/connect/sdk/domain/hostedcheckout/hosted_checkout_specific_input.rb +29 -30
  139. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_method_specific_input_hosted_checkout.rb +5 -6
  140. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_product320_specific_input_hosted_checkout.rb +7 -6
  141. data/lib/ingenico/connect/sdk/domain/hostedcheckout/payment_product_filters_hosted_checkout.rb +12 -15
  142. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/create_hosted_mandate_management_request.rb +9 -12
  143. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/create_hosted_mandate_management_response.rb +10 -9
  144. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/get_hosted_mandate_management_response.rb +8 -9
  145. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/hosted_mandate_info.rb +20 -21
  146. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/hosted_mandate_management_specific_input.rb +13 -12
  147. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_base.rb +23 -24
  148. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_response.rb +9 -12
  149. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_with_return_url.rb +4 -3
  150. data/lib/ingenico/connect/sdk/domain/mandates/get_mandate_response.rb +5 -6
  151. data/lib/ingenico/connect/sdk/domain/mandates/mandate_address.rb +16 -15
  152. data/lib/ingenico/connect/sdk/domain/mandates/mandate_contact_details.rb +4 -3
  153. data/lib/ingenico/connect/sdk/domain/mandates/mandate_customer.rb +20 -27
  154. data/lib/ingenico/connect/sdk/domain/mandates/mandate_merchant_action.rb +8 -9
  155. data/lib/ingenico/connect/sdk/domain/mandates/mandate_personal_information.rb +8 -9
  156. data/lib/ingenico/connect/sdk/domain/mandates/mandate_personal_name.rb +7 -6
  157. data/lib/ingenico/connect/sdk/domain/mandates/mandate_response.rb +20 -21
  158. data/lib/ingenico/connect/sdk/domain/metadata/shopping_cart_extension.rb +8 -8
  159. data/lib/ingenico/connect/sdk/domain/payment/abstract_bank_transfer_payment_method_specific_input.rb +4 -3
  160. data/lib/ingenico/connect/sdk/domain/payment/abstract_card_payment_method_specific_input.rb +44 -45
  161. data/lib/ingenico/connect/sdk/domain/payment/abstract_e_invoice_payment_method_specific_input.rb +4 -3
  162. data/lib/ingenico/connect/sdk/domain/payment/abstract_payment_method_specific_output.rb +4 -3
  163. data/lib/ingenico/connect/sdk/domain/payment/abstract_redirect_payment_method_specific_input.rb +16 -15
  164. data/lib/ingenico/connect/sdk/domain/payment/abstract_redirect_payment_product840_specific_input.rb +4 -3
  165. data/lib/ingenico/connect/sdk/domain/payment/abstract_sepa_direct_debit_payment_product771_specific_input.rb +5 -4
  166. data/lib/ingenico/connect/sdk/domain/payment/abstract_three_d_secure.rb +21 -24
  167. data/lib/ingenico/connect/sdk/domain/payment/additional_order_input.rb +20 -25
  168. data/lib/ingenico/connect/sdk/domain/payment/address_personal.rb +5 -6
  169. data/lib/ingenico/connect/sdk/domain/payment/amount_breakdown.rb +7 -6
  170. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_card_payment_method_specific_output.rb +4 -3
  171. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_mobile_payment_method_specific_output.rb +4 -3
  172. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_payment_method_specific_input.rb +7 -6
  173. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_request.rb +16 -21
  174. data/lib/ingenico/connect/sdk/domain/payment/browser_data.rb +22 -21
  175. data/lib/ingenico/connect/sdk/domain/payment/cancel_approval_payment_response.rb +5 -6
  176. data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_card_payment_method_specific_output.rb +4 -3
  177. data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_mobile_payment_method_specific_output.rb +4 -3
  178. data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_response.rb +13 -18
  179. data/lib/ingenico/connect/sdk/domain/payment/capture_payment_request.rb +7 -6
  180. data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_input.rb +21 -26
  181. data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_input_base.rb +5 -6
  182. data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_output.rb +19 -24
  183. data/lib/ingenico/connect/sdk/domain/payment/card_recurrence_details.rb +10 -9
  184. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_input.rb +30 -43
  185. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1503_specific_input.rb +6 -5
  186. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1504_specific_input.rb +4 -3
  187. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1521_specific_input.rb +4 -3
  188. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1522_specific_input.rb +4 -3
  189. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1523_specific_input.rb +4 -3
  190. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1524_specific_input.rb +4 -3
  191. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1526_specific_input.rb +4 -3
  192. data/lib/ingenico/connect/sdk/domain/payment/complete_payment_card_payment_method_specific_input.rb +5 -6
  193. data/lib/ingenico/connect/sdk/domain/payment/complete_payment_request.rb +13 -18
  194. data/lib/ingenico/connect/sdk/domain/payment/contact_details.rb +13 -12
  195. data/lib/ingenico/connect/sdk/domain/payment/create_payment_request.rb +52 -75
  196. data/lib/ingenico/connect/sdk/domain/payment/create_payment_result.rb +13 -18
  197. data/lib/ingenico/connect/sdk/domain/payment/customer.rb +38 -49
  198. data/lib/ingenico/connect/sdk/domain/payment/customer_account.rb +40 -45
  199. data/lib/ingenico/connect/sdk/domain/payment/customer_account_authentication.rb +7 -6
  200. data/lib/ingenico/connect/sdk/domain/payment/customer_approve_payment.rb +4 -3
  201. data/lib/ingenico/connect/sdk/domain/payment/customer_device.rb +26 -27
  202. data/lib/ingenico/connect/sdk/domain/payment/customer_payment_activity.rb +10 -9
  203. data/lib/ingenico/connect/sdk/domain/payment/decrypted_payment_data.rb +22 -21
  204. data/lib/ingenico/connect/sdk/domain/payment/device_render_options.rb +7 -6
  205. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_input.rb +8 -9
  206. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_output.rb +5 -6
  207. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_product9000_specific_input.rb +8 -9
  208. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_product9000_specific_output.rb +4 -3
  209. data/lib/ingenico/connect/sdk/domain/payment/external_cardholder_authentication_data.rb +25 -24
  210. data/lib/ingenico/connect/sdk/domain/payment/find_payments_response.rb +14 -15
  211. data/lib/ingenico/connect/sdk/domain/payment/gift_card_purchase.rb +8 -9
  212. data/lib/ingenico/connect/sdk/domain/payment/hosted_checkout_specific_output.rb +7 -6
  213. data/lib/ingenico/connect/sdk/domain/payment/invoice_payment_method_specific_input.rb +4 -3
  214. data/lib/ingenico/connect/sdk/domain/payment/level3_summary_data.rb +14 -13
  215. data/lib/ingenico/connect/sdk/domain/payment/line_item.rb +18 -25
  216. data/lib/ingenico/connect/sdk/domain/payment/line_item_invoice_data.rb +16 -15
  217. data/lib/ingenico/connect/sdk/domain/payment/line_item_level3_interchange_information.rb +25 -24
  218. data/lib/ingenico/connect/sdk/domain/payment/merchant.rb +11 -12
  219. data/lib/ingenico/connect/sdk/domain/payment/merchant_action.rb +27 -36
  220. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_data.rb +7 -6
  221. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_method_specific_input.rb +17 -18
  222. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_method_specific_output.rb +19 -24
  223. data/lib/ingenico/connect/sdk/domain/payment/mobile_three_d_secure_challenge_parameters.rb +13 -12
  224. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_input.rb +27 -30
  225. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_output.rb +5 -6
  226. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_product705_specific_input.rb +11 -12
  227. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_product730_specific_input.rb +5 -6
  228. data/lib/ingenico/connect/sdk/domain/payment/order.rb +35 -50
  229. data/lib/ingenico/connect/sdk/domain/payment/order_approve_payment.rb +13 -18
  230. data/lib/ingenico/connect/sdk/domain/payment/order_invoice_data.rb +14 -15
  231. data/lib/ingenico/connect/sdk/domain/payment/order_line_details.rb +34 -33
  232. data/lib/ingenico/connect/sdk/domain/payment/order_output.rb +9 -12
  233. data/lib/ingenico/connect/sdk/domain/payment/order_references.rb +14 -15
  234. data/lib/ingenico/connect/sdk/domain/payment/order_references_approve_payment.rb +4 -3
  235. data/lib/ingenico/connect/sdk/domain/payment/order_type_information.rb +10 -9
  236. data/lib/ingenico/connect/sdk/domain/payment/payment.rb +16 -21
  237. data/lib/ingenico/connect/sdk/domain/payment/payment_account_on_file.rb +7 -6
  238. data/lib/ingenico/connect/sdk/domain/payment/payment_approval_response.rb +18 -25
  239. data/lib/ingenico/connect/sdk/domain/payment/payment_creation_output.rb +10 -9
  240. data/lib/ingenico/connect/sdk/domain/payment/payment_creation_references.rb +7 -6
  241. data/lib/ingenico/connect/sdk/domain/payment/payment_error_response.rb +12 -15
  242. data/lib/ingenico/connect/sdk/domain/payment/payment_output.rb +43 -60
  243. data/lib/ingenico/connect/sdk/domain/payment/payment_product3201_specific_output.rb +5 -6
  244. data/lib/ingenico/connect/sdk/domain/payment/payment_product771_specific_output.rb +4 -3
  245. data/lib/ingenico/connect/sdk/domain/payment/payment_product836_specific_output.rb +4 -3
  246. data/lib/ingenico/connect/sdk/domain/payment/payment_product840_customer_account.rb +31 -30
  247. data/lib/ingenico/connect/sdk/domain/payment/payment_product840_specific_output.rb +13 -18
  248. data/lib/ingenico/connect/sdk/domain/payment/payment_product863_third_party_data.rb +22 -21
  249. data/lib/ingenico/connect/sdk/domain/payment/payment_references.rb +19 -18
  250. data/lib/ingenico/connect/sdk/domain/payment/payment_status_output.rb +10 -9
  251. data/lib/ingenico/connect/sdk/domain/payment/personal_information.rb +11 -12
  252. data/lib/ingenico/connect/sdk/domain/payment/personal_name.rb +4 -3
  253. data/lib/ingenico/connect/sdk/domain/payment/protection_eligibility.rb +7 -6
  254. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_input.rb +36 -49
  255. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_input_base.rb +5 -6
  256. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_output.rb +24 -33
  257. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product809_specific_input.rb +8 -7
  258. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product816_specific_input.rb +5 -6
  259. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product840_specific_input.rb +8 -7
  260. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product861_specific_input.rb +4 -3
  261. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product863_specific_input.rb +7 -6
  262. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product882_specific_input.rb +4 -3
  263. data/lib/ingenico/connect/sdk/domain/payment/redirection_data.rb +7 -6
  264. data/lib/ingenico/connect/sdk/domain/payment/refund_e_wallet_method_specific_output.rb +5 -6
  265. data/lib/ingenico/connect/sdk/domain/payment/refund_method_specific_output.rb +7 -6
  266. data/lib/ingenico/connect/sdk/domain/payment/refund_mobile_method_specific_output.rb +4 -3
  267. data/lib/ingenico/connect/sdk/domain/payment/refund_output.rb +27 -36
  268. data/lib/ingenico/connect/sdk/domain/payment/refund_payment_product840_customer_account.rb +10 -9
  269. data/lib/ingenico/connect/sdk/domain/payment/refund_payment_product840_specific_output.rb +5 -6
  270. data/lib/ingenico/connect/sdk/domain/payment/sdk_data_input.rb +26 -27
  271. data/lib/ingenico/connect/sdk/domain/payment/sdk_data_output.rb +4 -3
  272. data/lib/ingenico/connect/sdk/domain/payment/seller.rb +29 -30
  273. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_input.rb +23 -24
  274. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_input_base.rb +5 -6
  275. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_output.rb +9 -12
  276. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_product771_specific_input.rb +8 -9
  277. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_product771_specific_input_base.rb +8 -9
  278. data/lib/ingenico/connect/sdk/domain/payment/shipping.rb +26 -27
  279. data/lib/ingenico/connect/sdk/domain/payment/shopping_cart.rb +22 -27
  280. data/lib/ingenico/connect/sdk/domain/payment/third_party_data.rb +5 -6
  281. data/lib/ingenico/connect/sdk/domain/payment/third_party_status_response.rb +4 -3
  282. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure.rb +9 -12
  283. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_data.rb +10 -9
  284. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_results.rb +27 -30
  285. data/lib/ingenico/connect/sdk/domain/payment/tokenize_payment_request.rb +4 -3
  286. data/lib/ingenico/connect/sdk/domain/payout/approve_payout_request.rb +4 -3
  287. data/lib/ingenico/connect/sdk/domain/payout/bank_transfer_payout_method_specific_input.rb +22 -27
  288. data/lib/ingenico/connect/sdk/domain/payout/card_payout_method_specific_input.rb +11 -12
  289. data/lib/ingenico/connect/sdk/domain/payout/create_payout_request.rb +44 -57
  290. data/lib/ingenico/connect/sdk/domain/payout/find_payouts_response.rb +14 -15
  291. data/lib/ingenico/connect/sdk/domain/payout/payout_customer.rb +20 -27
  292. data/lib/ingenico/connect/sdk/domain/payout/payout_error_response.rb +12 -15
  293. data/lib/ingenico/connect/sdk/domain/payout/payout_references.rb +10 -9
  294. data/lib/ingenico/connect/sdk/domain/payout/payout_result.rb +12 -15
  295. data/lib/ingenico/connect/sdk/domain/product/abstract_indicator.rb +7 -6
  296. data/lib/ingenico/connect/sdk/domain/product/account_on_file.rb +15 -18
  297. data/lib/ingenico/connect/sdk/domain/product/account_on_file_attribute.rb +7 -6
  298. data/lib/ingenico/connect/sdk/domain/product/account_on_file_display_hints.rb +8 -9
  299. data/lib/ingenico/connect/sdk/domain/product/boleto_bancario_requiredness_validator.rb +4 -3
  300. data/lib/ingenico/connect/sdk/domain/product/device_fingerprint_request.rb +4 -3
  301. data/lib/ingenico/connect/sdk/domain/product/device_fingerprint_response.rb +7 -6
  302. data/lib/ingenico/connect/sdk/domain/product/directory.rb +5 -6
  303. data/lib/ingenico/connect/sdk/domain/product/directory_entry.rb +14 -15
  304. data/lib/ingenico/connect/sdk/domain/product/fixed_list_validator.rb +5 -6
  305. data/lib/ingenico/connect/sdk/domain/product/get_customer_details_request.rb +8 -9
  306. data/lib/ingenico/connect/sdk/domain/product/get_customer_details_response.rb +31 -30
  307. data/lib/ingenico/connect/sdk/domain/product/label_template_element.rb +7 -6
  308. data/lib/ingenico/connect/sdk/domain/product/length_validator.rb +7 -6
  309. data/lib/ingenico/connect/sdk/domain/product/payment_product.rb +71 -84
  310. data/lib/ingenico/connect/sdk/domain/product/payment_product302_specific_data.rb +5 -6
  311. data/lib/ingenico/connect/sdk/domain/product/payment_product320_specific_data.rb +8 -9
  312. data/lib/ingenico/connect/sdk/domain/product/payment_product863_specific_data.rb +5 -6
  313. data/lib/ingenico/connect/sdk/domain/product/payment_product_display_hints.rb +10 -9
  314. data/lib/ingenico/connect/sdk/domain/product/payment_product_field.rb +18 -21
  315. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_data_restrictions.rb +8 -9
  316. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_display_element.rb +13 -12
  317. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_display_hints.rb +33 -36
  318. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_form_element.rb +8 -9
  319. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_tooltip.rb +7 -6
  320. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_validators.rb +41 -60
  321. data/lib/ingenico/connect/sdk/domain/product/payment_product_group.rb +19 -24
  322. data/lib/ingenico/connect/sdk/domain/product/payment_product_groups.rb +5 -6
  323. data/lib/ingenico/connect/sdk/domain/product/payment_product_networks_response.rb +5 -6
  324. data/lib/ingenico/connect/sdk/domain/product/payment_products.rb +5 -6
  325. data/lib/ingenico/connect/sdk/domain/product/range_validator.rb +7 -6
  326. data/lib/ingenico/connect/sdk/domain/product/regular_expression_validator.rb +4 -3
  327. data/lib/ingenico/connect/sdk/domain/product/value_mapping_element.rb +12 -13
  328. data/lib/ingenico/connect/sdk/domain/refund/approve_refund_request.rb +4 -3
  329. data/lib/ingenico/connect/sdk/domain/refund/bank_account_bban_refund.rb +10 -9
  330. data/lib/ingenico/connect/sdk/domain/refund/bank_refund_method_specific_input.rb +12 -15
  331. data/lib/ingenico/connect/sdk/domain/refund/find_refunds_response.rb +14 -15
  332. data/lib/ingenico/connect/sdk/domain/refund/refund_customer.rb +16 -21
  333. data/lib/ingenico/connect/sdk/domain/refund/refund_error_response.rb +12 -15
  334. data/lib/ingenico/connect/sdk/domain/refund/refund_references.rb +4 -3
  335. data/lib/ingenico/connect/sdk/domain/refund/refund_request.rb +20 -27
  336. data/lib/ingenico/connect/sdk/domain/refund/refund_result.rb +12 -15
  337. data/lib/ingenico/connect/sdk/domain/refund/refunds_response.rb +5 -6
  338. data/lib/ingenico/connect/sdk/domain/riskassessments/contact_details_risk_assessment.rb +4 -3
  339. data/lib/ingenico/connect/sdk/domain/riskassessments/customer_account_risk_assessment.rb +7 -6
  340. data/lib/ingenico/connect/sdk/domain/riskassessments/customer_device_risk_assessment.rb +7 -6
  341. data/lib/ingenico/connect/sdk/domain/riskassessments/customer_risk_assessment.rb +35 -46
  342. data/lib/ingenico/connect/sdk/domain/riskassessments/merchant_risk_assessment.rb +4 -3
  343. data/lib/ingenico/connect/sdk/domain/riskassessments/order_risk_assessment.rb +17 -24
  344. data/lib/ingenico/connect/sdk/domain/riskassessments/personal_information_risk_assessment.rb +5 -6
  345. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment.rb +16 -21
  346. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_bank_account.rb +9 -12
  347. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_card.rb +5 -6
  348. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_response.rb +5 -6
  349. data/lib/ingenico/connect/sdk/domain/riskassessments/shipping_risk_assessment.rb +11 -12
  350. data/lib/ingenico/connect/sdk/domain/services/bank_data.rb +13 -12
  351. data/lib/ingenico/connect/sdk/domain/services/bank_details.rb +9 -12
  352. data/lib/ingenico/connect/sdk/domain/services/bank_details_response.rb +17 -24
  353. data/lib/ingenico/connect/sdk/domain/services/convert_amount.rb +4 -3
  354. data/lib/ingenico/connect/sdk/domain/services/get_iin_details_request.rb +8 -9
  355. data/lib/ingenico/connect/sdk/domain/services/get_iin_details_response.rb +14 -15
  356. data/lib/ingenico/connect/sdk/domain/services/get_privacy_policy_response.rb +4 -3
  357. data/lib/ingenico/connect/sdk/domain/services/iin_detail.rb +7 -6
  358. data/lib/ingenico/connect/sdk/domain/services/payment_context.rb +11 -12
  359. data/lib/ingenico/connect/sdk/domain/services/swift.rb +31 -30
  360. data/lib/ingenico/connect/sdk/domain/services/test_connection.rb +4 -3
  361. data/lib/ingenico/connect/sdk/domain/sessions/payment_product_filters_client_session.rb +9 -12
  362. data/lib/ingenico/connect/sdk/domain/sessions/session_request.rb +9 -12
  363. data/lib/ingenico/connect/sdk/domain/sessions/session_response.rb +20 -21
  364. data/lib/ingenico/connect/sdk/domain/token/abstract_token.rb +4 -3
  365. data/lib/ingenico/connect/sdk/domain/token/create_token_request.rb +20 -27
  366. data/lib/ingenico/connect/sdk/domain/token/create_token_response.rb +7 -6
  367. data/lib/ingenico/connect/sdk/domain/token/creditor.rb +34 -33
  368. data/lib/ingenico/connect/sdk/domain/token/customer_token.rb +9 -12
  369. data/lib/ingenico/connect/sdk/domain/token/customer_token_with_contact_details.rb +5 -6
  370. data/lib/ingenico/connect/sdk/domain/token/debtor.rb +34 -33
  371. data/lib/ingenico/connect/sdk/domain/token/mandate_approval.rb +10 -9
  372. data/lib/ingenico/connect/sdk/domain/token/mandate_non_sepa_direct_debit.rb +9 -12
  373. data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit.rb +5 -6
  374. data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit_with_mandate_id.rb +4 -3
  375. data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit_without_creditor.rb +22 -27
  376. data/lib/ingenico/connect/sdk/domain/token/personal_information_token.rb +5 -6
  377. data/lib/ingenico/connect/sdk/domain/token/token_card.rb +9 -12
  378. data/lib/ingenico/connect/sdk/domain/token/token_card_data.rb +11 -12
  379. data/lib/ingenico/connect/sdk/domain/token/token_e_wallet.rb +9 -12
  380. data/lib/ingenico/connect/sdk/domain/token/token_e_wallet_data.rb +4 -3
  381. data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit.rb +9 -12
  382. data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit_payment_product705_specific_data.rb +8 -9
  383. data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit_payment_product730_specific_data.rb +5 -6
  384. data/lib/ingenico/connect/sdk/domain/token/token_response.rb +23 -30
  385. data/lib/ingenico/connect/sdk/domain/token/token_sepa_direct_debit.rb +9 -12
  386. data/lib/ingenico/connect/sdk/domain/token/token_sepa_direct_debit_without_creditor.rb +9 -12
  387. data/lib/ingenico/connect/sdk/domain/token/update_token_request.rb +20 -27
  388. data/lib/ingenico/connect/sdk/endpoint_configuration.rb +12 -20
  389. data/lib/ingenico/connect/sdk/factory.rb +34 -32
  390. data/lib/ingenico/connect/sdk/idempotence_exception.rb +3 -3
  391. data/lib/ingenico/connect/sdk/logging/communicator_logger.rb +5 -2
  392. data/lib/ingenico/connect/sdk/logging/log_message_builder.rb +25 -13
  393. data/lib/ingenico/connect/sdk/logging/logging_util.rb +14 -14
  394. data/lib/ingenico/connect/sdk/logging/request_log_message_builder.rb +4 -5
  395. data/lib/ingenico/connect/sdk/logging/response_log_message_builder.rb +7 -6
  396. data/lib/ingenico/connect/sdk/logging/ruby_communicator_logger.rb +5 -4
  397. data/lib/ingenico/connect/sdk/logging/stdout_communicator_logger.rb +2 -1
  398. data/lib/ingenico/connect/sdk/marshaller.rb +8 -3
  399. data/lib/ingenico/connect/sdk/merchant/captures/captures_client.rb +17 -17
  400. data/lib/ingenico/connect/sdk/merchant/disputes/disputes_client.rb +80 -47
  401. data/lib/ingenico/connect/sdk/merchant/disputes/upload_file_request.rb +27 -0
  402. data/lib/ingenico/connect/sdk/merchant/files/files_client.rb +55 -0
  403. data/lib/ingenico/connect/sdk/merchant/hostedcheckouts/hostedcheckouts_client.rb +31 -31
  404. data/lib/ingenico/connect/sdk/merchant/hostedmandatemanagements/hostedmandatemanagements_client.rb +31 -31
  405. data/lib/ingenico/connect/sdk/merchant/mandates/mandates_client.rb +92 -92
  406. data/lib/ingenico/connect/sdk/merchant/merchant_client.rb +37 -30
  407. data/lib/ingenico/connect/sdk/merchant/payments/find_payments_params.rb +12 -11
  408. data/lib/ingenico/connect/sdk/merchant/payments/payments_client.rb +248 -248
  409. data/lib/ingenico/connect/sdk/merchant/payouts/find_payouts_params.rb +10 -9
  410. data/lib/ingenico/connect/sdk/merchant/payouts/payouts_client.rb +90 -90
  411. data/lib/ingenico/connect/sdk/merchant/productgroups/find_productgroups_params.rb +17 -13
  412. data/lib/ingenico/connect/sdk/merchant/productgroups/get_productgroup_params.rb +17 -13
  413. data/lib/ingenico/connect/sdk/merchant/productgroups/productgroups_client.rb +48 -48
  414. data/lib/ingenico/connect/sdk/merchant/products/directory_params.rb +6 -5
  415. data/lib/ingenico/connect/sdk/merchant/products/find_products_params.rb +17 -13
  416. data/lib/ingenico/connect/sdk/merchant/products/get_product_params.rb +19 -15
  417. data/lib/ingenico/connect/sdk/merchant/products/networks_params.rb +10 -9
  418. data/lib/ingenico/connect/sdk/merchant/products/products_client.rb +96 -127
  419. data/lib/ingenico/connect/sdk/merchant/refunds/find_refunds_params.rb +12 -11
  420. data/lib/ingenico/connect/sdk/merchant/refunds/refunds_client.rb +74 -74
  421. data/lib/ingenico/connect/sdk/merchant/riskassessments/riskassessments_client.rb +30 -30
  422. data/lib/ingenico/connect/sdk/merchant/services/convert_amount_params.rb +8 -7
  423. data/lib/ingenico/connect/sdk/merchant/services/privacypolicy_params.rb +6 -5
  424. data/lib/ingenico/connect/sdk/merchant/services/services_client.rb +71 -71
  425. data/lib/ingenico/connect/sdk/merchant/sessions/sessions_client.rb +16 -16
  426. data/lib/ingenico/connect/sdk/merchant/tokens/delete_token_params.rb +4 -3
  427. data/lib/ingenico/connect/sdk/merchant/tokens/tokens_client.rb +76 -76
  428. data/lib/ingenico/connect/sdk/meta_data_provider.rb +19 -20
  429. data/lib/ingenico/connect/sdk/modules.rb +5 -4
  430. data/lib/ingenico/connect/sdk/multipart_form_data_object.rb +44 -0
  431. data/lib/ingenico/connect/sdk/multipart_form_data_request.rb +9 -0
  432. data/lib/ingenico/connect/sdk/not_found_exception.rb +4 -7
  433. data/lib/ingenico/connect/sdk/param_request.rb +3 -25
  434. data/lib/ingenico/connect/sdk/proxy_configuration.rb +16 -17
  435. data/lib/ingenico/connect/sdk/request_header.rb +22 -3
  436. data/lib/ingenico/connect/sdk/request_param.rb +3 -2
  437. data/lib/ingenico/connect/sdk/response_exception.rb +24 -27
  438. data/lib/ingenico/connect/sdk/response_header.rb +49 -2
  439. data/lib/ingenico/connect/sdk/session.rb +11 -10
  440. data/lib/ingenico/connect/sdk/uploadable_file.rb +30 -0
  441. data/lib/ingenico/connect/sdk/webhooks/api_version_mismatch_exception.rb +3 -3
  442. data/lib/ingenico/connect/sdk/webhooks/in_memory_secret_key_store.rb +5 -5
  443. data/lib/ingenico/connect/sdk/webhooks/secret_key_not_available_exception.rb +2 -0
  444. data/lib/ingenico/connect/sdk/webhooks/secret_key_store.rb +2 -2
  445. data/lib/ingenico/connect/sdk/webhooks/signature_validation_exception.rb +1 -1
  446. data/lib/ingenico/connect/sdk/webhooks/webhooks_event.rb +19 -25
  447. data/lib/ingenico/connect/sdk/webhooks/webhooks_helper.rb +11 -10
  448. data/spec/integration/multipart_form_data_spec.rb +214 -0
  449. data/spec/lib/defaultimpl/default_connection_idempotence_spec.rb +7 -7
  450. data/spec/lib/defaultimpl/default_connection_logger_spec.rb +0 -4
  451. data/spec/lib/defaultimpl/default_connection_spec.rb +48 -25
  452. data/spec/lib/logging/header_obfuscator_spec.rb +1 -1
  453. data/spec/lib/logging/logging_util_spec.rb +7 -7
  454. data/spec/lib/logging/obfuscator_spec.rb +4 -4
  455. data/spec/lib/logging/ruby_communicator_logger_spec.rb +8 -8
  456. data/spec/lib/logging/stdout_communicator_logger_spec.rb +1 -1
  457. data/spec/lib/logging/value_obfuscator_spec.rb +1 -1
  458. data/spec/lib/payments_client_spec.rb +8 -9
  459. metadata +12 -7
  460. data/lib/ingenico/connect/sdk/domain/publickey/public_key.rb +0 -38
  461. data/lib/ingenico/connect/sdk/response.rb +0 -59
  462. data/spec/lib/requestparams/param_request_spec.rb +0 -57
@@ -10,33 +10,30 @@ module Ingenico::Connect::SDK
10
10
  module Domain
11
11
  module Token
12
12
 
13
+ # @attr [Ingenico::Connect::SDK::Domain::Token::CustomerTokenWithContactDetails] customer
14
+ # @attr [Ingenico::Connect::SDK::Domain::Token::MandateSepaDirectDebit] mandate
13
15
  class TokenSepaDirectDebit < Ingenico::Connect::SDK::Domain::Token::AbstractToken
14
16
 
15
- # {Ingenico::Connect::SDK::Domain::Token::CustomerTokenWithContactDetails}
16
17
  attr_accessor :customer
17
18
 
18
- # {Ingenico::Connect::SDK::Domain::Token::MandateSepaDirectDebit}
19
19
  attr_accessor :mandate
20
20
 
21
+ # @return (Hash)
21
22
  def to_h
22
23
  hash = super
23
- add_to_hash(hash, 'customer', @customer)
24
- add_to_hash(hash, 'mandate', @mandate)
24
+ hash['customer'] = @customer.to_h unless @customer.nil?
25
+ hash['mandate'] = @mandate.to_h unless @mandate.nil?
25
26
  hash
26
27
  end
27
28
 
28
29
  def from_hash(hash)
29
30
  super
30
- if hash.has_key?('customer')
31
- if !(hash['customer'].is_a? Hash)
32
- raise TypeError, "value '%s' is not a Hash" % [hash['customer']]
33
- end
31
+ if hash.has_key? 'customer'
32
+ raise TypeError, "value '%s' is not a Hash" % [hash['customer']] unless hash['customer'].is_a? Hash
34
33
  @customer = Ingenico::Connect::SDK::Domain::Token::CustomerTokenWithContactDetails.new_from_hash(hash['customer'])
35
34
  end
36
- if hash.has_key?('mandate')
37
- if !(hash['mandate'].is_a? Hash)
38
- raise TypeError, "value '%s' is not a Hash" % [hash['mandate']]
39
- end
35
+ if hash.has_key? 'mandate'
36
+ raise TypeError, "value '%s' is not a Hash" % [hash['mandate']] unless hash['mandate'].is_a? Hash
40
37
  @mandate = Ingenico::Connect::SDK::Domain::Token::MandateSepaDirectDebit.new_from_hash(hash['mandate'])
41
38
  end
42
39
  end
@@ -10,33 +10,30 @@ module Ingenico::Connect::SDK
10
10
  module Domain
11
11
  module Token
12
12
 
13
+ # @attr [Ingenico::Connect::SDK::Domain::Token::CustomerTokenWithContactDetails] customer
14
+ # @attr [Ingenico::Connect::SDK::Domain::Token::MandateSepaDirectDebitWithoutCreditor] mandate
13
15
  class TokenSepaDirectDebitWithoutCreditor < Ingenico::Connect::SDK::Domain::Token::AbstractToken
14
16
 
15
- # {Ingenico::Connect::SDK::Domain::Token::CustomerTokenWithContactDetails}
16
17
  attr_accessor :customer
17
18
 
18
- # {Ingenico::Connect::SDK::Domain::Token::MandateSepaDirectDebitWithoutCreditor}
19
19
  attr_accessor :mandate
20
20
 
21
+ # @return (Hash)
21
22
  def to_h
22
23
  hash = super
23
- add_to_hash(hash, 'customer', @customer)
24
- add_to_hash(hash, 'mandate', @mandate)
24
+ hash['customer'] = @customer.to_h unless @customer.nil?
25
+ hash['mandate'] = @mandate.to_h unless @mandate.nil?
25
26
  hash
26
27
  end
27
28
 
28
29
  def from_hash(hash)
29
30
  super
30
- if hash.has_key?('customer')
31
- if !(hash['customer'].is_a? Hash)
32
- raise TypeError, "value '%s' is not a Hash" % [hash['customer']]
33
- end
31
+ if hash.has_key? 'customer'
32
+ raise TypeError, "value '%s' is not a Hash" % [hash['customer']] unless hash['customer'].is_a? Hash
34
33
  @customer = Ingenico::Connect::SDK::Domain::Token::CustomerTokenWithContactDetails.new_from_hash(hash['customer'])
35
34
  end
36
- if hash.has_key?('mandate')
37
- if !(hash['mandate'].is_a? Hash)
38
- raise TypeError, "value '%s' is not a Hash" % [hash['mandate']]
39
- end
35
+ if hash.has_key? 'mandate'
36
+ raise TypeError, "value '%s' is not a Hash" % [hash['mandate']] unless hash['mandate'].is_a? Hash
40
37
  @mandate = Ingenico::Connect::SDK::Domain::Token::MandateSepaDirectDebitWithoutCreditor.new_from_hash(hash['mandate'])
41
38
  end
42
39
  end
@@ -12,60 +12,53 @@ module Ingenico::Connect::SDK
12
12
  module Domain
13
13
  module Token
14
14
 
15
+ # @attr [Ingenico::Connect::SDK::Domain::Token::TokenCard] card
16
+ # @attr [Ingenico::Connect::SDK::Domain::Token::TokenEWallet] e_wallet
17
+ # @attr [Ingenico::Connect::SDK::Domain::Token::TokenNonSepaDirectDebit] non_sepa_direct_debit
18
+ # @attr [Integer] payment_product_id
19
+ # @attr [Ingenico::Connect::SDK::Domain::Token::TokenSepaDirectDebitWithoutCreditor] sepa_direct_debit
15
20
  class UpdateTokenRequest < Ingenico::Connect::SDK::DataObject
16
21
 
17
- # {Ingenico::Connect::SDK::Domain::Token::TokenCard}
18
22
  attr_accessor :card
19
23
 
20
- # {Ingenico::Connect::SDK::Domain::Token::TokenEWallet}
21
24
  attr_accessor :e_wallet
22
25
 
23
- # {Ingenico::Connect::SDK::Domain::Token::TokenNonSepaDirectDebit}
24
26
  attr_accessor :non_sepa_direct_debit
25
27
 
26
- # Integer
27
28
  attr_accessor :payment_product_id
28
29
 
29
- # {Ingenico::Connect::SDK::Domain::Token::TokenSepaDirectDebitWithoutCreditor}
30
30
  attr_accessor :sepa_direct_debit
31
31
 
32
+ # @return (Hash)
32
33
  def to_h
33
34
  hash = super
34
- add_to_hash(hash, 'card', @card)
35
- add_to_hash(hash, 'eWallet', @e_wallet)
36
- add_to_hash(hash, 'nonSepaDirectDebit', @non_sepa_direct_debit)
37
- add_to_hash(hash, 'paymentProductId', @payment_product_id)
38
- add_to_hash(hash, 'sepaDirectDebit', @sepa_direct_debit)
35
+ hash['card'] = @card.to_h unless @card.nil?
36
+ hash['eWallet'] = @e_wallet.to_h unless @e_wallet.nil?
37
+ hash['nonSepaDirectDebit'] = @non_sepa_direct_debit.to_h unless @non_sepa_direct_debit.nil?
38
+ hash['paymentProductId'] = @payment_product_id unless @payment_product_id.nil?
39
+ hash['sepaDirectDebit'] = @sepa_direct_debit.to_h unless @sepa_direct_debit.nil?
39
40
  hash
40
41
  end
41
42
 
42
43
  def from_hash(hash)
43
44
  super
44
- if hash.has_key?('card')
45
- if !(hash['card'].is_a? Hash)
46
- raise TypeError, "value '%s' is not a Hash" % [hash['card']]
47
- end
45
+ if hash.has_key? 'card'
46
+ raise TypeError, "value '%s' is not a Hash" % [hash['card']] unless hash['card'].is_a? Hash
48
47
  @card = Ingenico::Connect::SDK::Domain::Token::TokenCard.new_from_hash(hash['card'])
49
48
  end
50
- if hash.has_key?('eWallet')
51
- if !(hash['eWallet'].is_a? Hash)
52
- raise TypeError, "value '%s' is not a Hash" % [hash['eWallet']]
53
- end
49
+ if hash.has_key? 'eWallet'
50
+ raise TypeError, "value '%s' is not a Hash" % [hash['eWallet']] unless hash['eWallet'].is_a? Hash
54
51
  @e_wallet = Ingenico::Connect::SDK::Domain::Token::TokenEWallet.new_from_hash(hash['eWallet'])
55
52
  end
56
- if hash.has_key?('nonSepaDirectDebit')
57
- if !(hash['nonSepaDirectDebit'].is_a? Hash)
58
- raise TypeError, "value '%s' is not a Hash" % [hash['nonSepaDirectDebit']]
59
- end
53
+ if hash.has_key? 'nonSepaDirectDebit'
54
+ raise TypeError, "value '%s' is not a Hash" % [hash['nonSepaDirectDebit']] unless hash['nonSepaDirectDebit'].is_a? Hash
60
55
  @non_sepa_direct_debit = Ingenico::Connect::SDK::Domain::Token::TokenNonSepaDirectDebit.new_from_hash(hash['nonSepaDirectDebit'])
61
56
  end
62
- if hash.has_key?('paymentProductId')
57
+ if hash.has_key? 'paymentProductId'
63
58
  @payment_product_id = hash['paymentProductId']
64
59
  end
65
- if hash.has_key?('sepaDirectDebit')
66
- if !(hash['sepaDirectDebit'].is_a? Hash)
67
- raise TypeError, "value '%s' is not a Hash" % [hash['sepaDirectDebit']]
68
- end
60
+ if hash.has_key? 'sepaDirectDebit'
61
+ raise TypeError, "value '%s' is not a Hash" % [hash['sepaDirectDebit']] unless hash['sepaDirectDebit'].is_a? Hash
69
62
  @sepa_direct_debit = Ingenico::Connect::SDK::Domain::Token::TokenSepaDirectDebitWithoutCreditor.new_from_hash(hash['sepaDirectDebit'])
70
63
  end
71
64
  end
@@ -3,13 +3,15 @@ require 'uri'
3
3
  module Ingenico::Connect::SDK
4
4
 
5
5
  # Base class for configuration classes in the SDK.
6
- # This class stores the following:
7
6
  #
8
- # _api_endpoint_:: Base URL to the Ingenico ePayments platform, stored as a string.
9
- # _connect_timeout_:: Timeout in seconds before a connection attempt times out.
10
- # _socket_timeout_:: Timeout in seconds that occurs after not receiving transmitted data for _socket_timeout_ seconds.
11
- # _max_connections_:: The number of connections in the connection pool that will be kept alive.
12
- # _proxy_configuration_:: {Ingenico::Connect::SDK::ProxyConfiguration} containing proxy settings.
7
+ # @attr [String] api_endpoint The base URL to the Ingenico ePayments platform.
8
+ # @attr [Integer] connect_timeout The number of seconds before a connection attempt with the Ingenico ePayments platform times out.
9
+ # @attr [Integer] socket_timeout The number of seconds before a timeout occurs when transmitting data to or from the Ingenico ePayments platform.
10
+ # @attr [Integer] max_connections The number of connections with the Ingenico ePayments platform that are kept alive in the connection pool.
11
+ # These connections will be reused when possible.
12
+ # @attr [Ingenico::Connect::SDK::ProxyConfiguration] proxy_configuration Proxy settings.
13
+ # @attr [String] integrator Name of the integrator
14
+ # @attr [Ingenico::Connect::SDK::Domain::Metadata::ShoppingCartExtension] shopping_cart_extension Shopping cart-related metadata.
13
15
  class EndpointConfiguration
14
16
  @@DEFAULT_MAX_CONNECTIONS = 10
15
17
 
@@ -21,7 +23,7 @@ module Ingenico::Connect::SDK
21
23
 
22
24
  # Initializes a new EndpointConfiguration.
23
25
  #
24
- # The given _properties_ is searched for settings using properties.[prefix + '.setting_name']
26
+ # The given _properties_ is searched for settings using properties[prefix + '.setting_name']
25
27
  # The following settings are searched:
26
28
  #
27
29
  # endpoint:: This property is searched for *endpoint.host*, *endpoint.scheme* and *endpoint.port*.
@@ -34,7 +36,7 @@ module Ingenico::Connect::SDK
34
36
  # proxy:: This property is searched for *proxy.uri*, *proxy.username* and *proxy.password*.
35
37
  # The found URI, username and password are used
36
38
  # for connecting to the Ingenico ePayments platform using a proxy.
37
- # integrator:: String
39
+ # integrator:: Name of the integrator
38
40
  # shoppingCartExtension:: Will be used to initialize a {Ingenico::Connect::SDK::Domain::Metadata::ShoppingCartExtension}.
39
41
  def initialize(properties=nil, prefix=nil)
40
42
  unless properties.nil?
@@ -116,25 +118,15 @@ module Ingenico::Connect::SDK
116
118
 
117
119
  public
118
120
 
119
- # The number of seconds before a connection attempt with the Ingenico ePayments platform times out.
120
- attr_accessor :connect_timeout
121
+ attr_reader :api_endpoint
121
122
 
122
- # The number of seconds before a timeout occurs when transmitting data to or from the Ingenico ePayments platform.
123
+ attr_accessor :connect_timeout
123
124
  attr_accessor :socket_timeout
124
-
125
- # The number of connections with the Ingenico ePayments platform that are kept alive in the connection pool.
126
- # These connections will be reused when possible.
127
125
  attr_accessor :max_connections
128
126
 
129
- # {Ingenico::Connect::SDK::ProxyConfiguration} containing proxy settings.
130
127
  attr_accessor :proxy_configuration
131
128
 
132
129
  attr_accessor :integrator
133
-
134
- # {Ingenico::Connect::SDK::Domain::Metadata::ShoppingCartExtension} containing shopping cart-related metadata.
135
130
  attr_accessor :shopping_cart_extension
136
-
137
- # The base URL to the Ingenico ePayments platform.
138
- attr_reader :api_endpoint
139
131
  end
140
132
  end
@@ -10,9 +10,10 @@ module Ingenico::Connect::SDK
10
10
  # Creates and returns a {Ingenico::Connect::SDK::CommunicatorConfiguration} based on the configuration in the file
11
11
  # located at _configuration_file_name_.
12
12
  #
13
- # configuration_file_name:: Path to the configuration file to use, should be in YAML format.
14
- # api_key_id:: Key id for the GlobalCollect service.
15
- # secret_api_key:: Secret key used for authentication to the GlobalCollect service.
13
+ # @param configuration_file_name [String] Path to the configuration file to use, should be in YAML format.
14
+ # @param api_key_id [String] Key id for the GlobalCollect service.
15
+ # @param secret_api_key [String] Secret key used for authentication to the GlobalCollect service.
16
+ # @return [Ingenico::Connect::SDK::CommunicatorConfiguration] The created communicator configuration
16
17
  def self.create_configuration(configuration_file_name, api_key_id, secret_api_key)
17
18
  properties = YAML::load_file(configuration_file_name)
18
19
  CommunicatorConfiguration.new(properties: properties,
@@ -25,13 +26,11 @@ module Ingenico::Connect::SDK
25
26
  # If an authenticator is not given, a {Ingenico::Connect::SDK::DefaultImpl::DefaultAuthenticator} is created
26
27
  # using the _api_key_id_ and _secret_api_key_ in the CommunicatorConfiguration.
27
28
  #
28
- # configuration:: {Ingenico::Connect::SDK::CommunicatorConfiguration} that contains configuration settings
29
- # to be used by the client.
30
- # meta_data_provider:: {Ingenico::Connect::SDK::MetaDataProvider} that stores the metadata for the communicating client.
31
- # connection:: Implementation of {Ingenico::Connect::SDK::Connection} that can be used to communicate
32
- # with the Ingenico ePayments platform.
33
- # authenticator:: Implementation of {Ingenico::Connect::SDK::Authenticator} that can authenticate messages
34
- # sent to the Ingenico ePayments platform.
29
+ # @param configuration [Ingenico::Connect::SDK::CommunicatorConfiguration] configuration settings to be used by the client.
30
+ # @param meta_data_provider [Ingenico::Connect::SDK::MetaDataProvider] stores the metadata for the communicating client.
31
+ # @param connection [Ingenico::Connect::SDK::Connection] connection that can be used to communicate with the Ingenico ePayments platform.
32
+ # @param authenticator [Ingenico::Connect::SDK::Authenticator] authenticator that can authenticate messages sent to the Ingenico ePayments platform.
33
+ # @return [Ingenico::Connect::SDK::Session] The created session
35
34
  def self.create_session_from_configuration(configuration, meta_data_provider: nil,
36
35
  connection: nil, authenticator: nil)
37
36
  unless meta_data_provider
@@ -56,14 +55,13 @@ module Ingenico::Connect::SDK
56
55
  # If an authenticator is not given, a {Ingenico::Connect::SDK::DefaultImpl::DefaultAuthenticator} is created
57
56
  # using the _api_key_id_ and _secret_api_key_ in the CommunicatorConfiguration.
58
57
  #
59
- # configuration_file_name:: Path to the configuration file to use, should be in YAML format.
60
- # api_key_id:: Key id for the GlobalCollect service.
61
- # secret_api_key:: Secret key used for authentication to the GlobalCollect service.
62
- # meta_data_provider:: {Ingenico::Connect::SDK::MetaDataProvider} that stores the metadata for the communicating client.
63
- # connection:: Implementation of {Ingenico::Connect::SDK::Connection} that can be used to communicate
64
- # with the Ingenico ePayments platform.
65
- # authenticator:: Implementation of {Ingenico::Connect::SDK::Authenticator} that can authenticate messages
66
- # sent to the Ingenico ePayments platform.
58
+ # @param configuration_file_name [String] Path to the configuration file to use, should be in YAML format.
59
+ # @param api_key_id [String] Key id for the GlobalCollect service.
60
+ # @param secret_api_key [String] Secret key used for authentication to the GlobalCollect service.
61
+ # @param meta_data_provider [Ingenico::Connect::SDK::MetaDataProvider] stores the metadata for the communicating client.
62
+ # @param connection [Ingenico::Connect::SDK::Connection] connection that can be used to communicate with the Ingenico ePayments platform.
63
+ # @param authenticator [Ingenico::Connect::SDK::Authenticator] authenticator that can authenticate messages sent to the Ingenico ePayments platform.
64
+ # @return [Ingenico::Connect::SDK::Session] The created session
67
65
  def self.create_session_from_file(configuration_file_name, api_key_id, secret_api_key,
68
66
  meta_data_provider: nil, connection: nil, authenticator: nil)
69
67
  configuration = create_configuration(configuration_file_name, api_key_id, secret_api_key)
@@ -73,15 +71,16 @@ module Ingenico::Connect::SDK
73
71
 
74
72
  # Creates and returns an {Ingenico::Connect::SDK::Communicator} that is used for communication with the GlobalCollect service.
75
73
  #
76
- # session:: {Ingenico::Connect::SDK::Session} that the communicator will utilize for communication.
74
+ # @param session [Ingenico::Connect::SDK::Session] session that the communicator will utilize for communication.
75
+ # @return [Ingenico::Connect::SDK::Communicator] The created communicator
77
76
  def self.create_communicator_from_session(session)
78
77
  Communicator.new(session, DefaultImpl::DefaultMarshaller.INSTANCE)
79
78
  end
80
79
 
81
80
  # Creates and returns an {Ingenico::Connect::SDK::Communicator} that can be used for communication with the GlobalCollect service.
82
81
  #
83
- # configuration:: {Ingenico::Connect::SDK::CommunicatorConfiguration} that contains configuration settings
84
- # to be used by the client.
82
+ # @param configuration [Ingenico::Connect::SDK::CommunicatorConfiguration] contains configuration settings to be used by the client.
83
+ # @return [Ingenico::Connect::SDK::Communicator] The created communicator
85
84
  def self.create_communicator_from_configuration(configuration)
86
85
  session = create_session_from_configuration(configuration)
87
86
  Communicator.new(session, DefaultImpl::DefaultMarshaller.INSTANCE)
@@ -89,9 +88,10 @@ module Ingenico::Connect::SDK
89
88
 
90
89
  # Creates and returns an {Ingenico::Connect::SDK::Communicator} that is used for communication with the GlobalCollect service.
91
90
  #
92
- # configuration_file_name:: Path to the configuration file to use, should be in YAML format.
93
- # api_key_id:: Key id for the GlobalCollect service.
94
- # secret_api_key:: Secret key used for authentication to the GlobalCollect service.
91
+ # @param configuration_file_name [String] Path to the configuration file to use, should be in YAML format.
92
+ # @param api_key_id [String] Key id for the GlobalCollect service.
93
+ # @param secret_api_key [String] Secret key used for authentication to the GlobalCollect service.
94
+ # @return [Ingenico::Connect::SDK::Communicator] The created communicator
95
95
  def self.create_communicator_from_file(configuration_file_name, api_key_id, secret_api_key)
96
96
  configuration = create_configuration(configuration_file_name, api_key_id, secret_api_key)
97
97
  session = create_session_from_configuration(configuration)
@@ -107,8 +107,8 @@ module Ingenico::Connect::SDK
107
107
  # end
108
108
  # # client is closed here
109
109
  #
110
- # configuration:: {Ingenico::Connect::SDK::CommunicatorConfiguration} that contains configuration settings
111
- # to be used by the client.
110
+ # @param configuration [Ingenico::Connect::SDK::CommunicatorConfiguration] contains configuration settings to be used by the client.
111
+ # @return [Ingenico::Connect::SDK::Client] The created client
112
112
  def self.create_client_from_configuration(configuration)
113
113
  communicator = create_communicator_from_configuration(configuration)
114
114
  client = Client.new(communicator)
@@ -132,7 +132,8 @@ module Ingenico::Connect::SDK
132
132
  # end
133
133
  # # client is closed here
134
134
  #
135
- # communicator:: {Ingenico::Connect::SDK::Communicator} that provides network communication service for the Client
135
+ # @param communicator [Ingenico::Connect::SDK::Communicator] provides network communication service for the Client
136
+ # @return [Ingenico::Connect::SDK::Client] The created client
136
137
  def self.create_client_from_communicator(communicator)
137
138
  client = Client.new(communicator)
138
139
  if block_given?
@@ -155,7 +156,8 @@ module Ingenico::Connect::SDK
155
156
  # end
156
157
  # # client is closed here
157
158
  #
158
- # session:: {Ingenico::Connect::SDK::Session} that the Client will utilize for communication.
159
+ # @param session [Ingenico::Connect::SDK::Session] session that the communicator will utilize for communication.
160
+ # @return [Ingenico::Connect::SDK::Client] The created client
159
161
  def self.create_client_from_session(session)
160
162
  communicator = create_communicator_from_session(session)
161
163
  client = Client.new(communicator)
@@ -179,10 +181,10 @@ module Ingenico::Connect::SDK
179
181
  # end
180
182
  # # client is closed here
181
183
  #
182
- # configuration_file_name:: Path to the configuration file to use for configuring the Client,
183
- # should be in YAML format.
184
- # api_key_id:: Key id for the GlobalCollect service.
185
- # secret_api_key:: Secret key used for authentication to the GlobalCollect service.
184
+ # @param configuration_file_name [String] Path to the configuration file to use, should be in YAML format.
185
+ # @param api_key_id [String] Key id for the GlobalCollect service.
186
+ # @param secret_api_key [String] Secret key used for authentication to the GlobalCollect service.
187
+ # @return [Ingenico::Connect::SDK::Client] The created client
186
188
  def self.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
187
189
  communicator = create_communicator_from_file(configuration_file_name, api_key_id, secret_api_key)
188
190
  client = Client.new(communicator)
@@ -3,6 +3,9 @@ module Ingenico::Connect::SDK
3
3
  # This exception is thrown when a response from the Ingenico ePayments platform indicates
4
4
  # a request with the same _idempotence_key_ was received earlier.
5
5
  # The _idempotence_request_timestamp_ indicates the time when the first request with this _idempotence_key_ arrived.
6
+ #
7
+ # @attr_reader [String] idempotence_key The idempotence key used in the request.
8
+ # @attr_reader [Integer] idempotence_request_timestamp A timestamp indicating the arrival time of the request that conflicts with the request just sent.
6
9
  class IdempotenceException < ApiException
7
10
 
8
11
  # Create a new IdempotenceException
@@ -15,10 +18,7 @@ module Ingenico::Connect::SDK
15
18
  @idempotence_request_timestamp = idempotence_request_timestamp
16
19
  end
17
20
 
18
- # The idempotence key used in the request.
19
21
  attr_reader :idempotence_key
20
-
21
- # A timestamp indicating the arrival time of the request that conflicts with the request just sent.
22
22
  attr_reader :idempotence_request_timestamp
23
23
  end
24
24
  end
@@ -3,14 +3,17 @@ module Ingenico::Connect::SDK
3
3
 
4
4
  # Base logger class used in this SDK. This class is an interface and cannot be instantiated.
5
5
  class CommunicatorLogger
6
- # interface, no instantiation
6
+ # Interface, no instantiation
7
7
  # @see Ingenico::Connect::SDK::Logging::StdoutCommunicatorLogger
8
8
  # @see Ingenico::Connect::SDK::Logging::RubyCommunicatorLogger
9
9
  def initialize
10
10
  raise NotImplementedError.new("#{self.class.name} is not implemented.")
11
11
  end
12
12
 
13
- # logs a message with or without exception
13
+ # Logs a message with or without exception
14
+ #
15
+ # @param message [String] the message to log
16
+ # @param thrown [Exception, false] the exception to log, or false to log no exception
14
17
  def log(message, thrown=false)
15
18
  raise NotImplementedError.new("#{self.class.name}#log() is not implemented.")
16
19
  end
@@ -2,24 +2,22 @@ module Ingenico::Connect::SDK
2
2
  module Logging
3
3
 
4
4
  # Abstract class used to construct a message describing a request or response.
5
+ #
6
+ # @attr_reader [String] request_id An identifier assigned to the request and response
7
+ # @attr_reader [String] headers Request or response headers in string form
8
+ # @attr_reader [String] body Request or response body as a string
9
+ # @attr_reader [String] content_type Content type of the body, generally 'application/json' or 'text/html'
5
10
  class LogMessageBuilder
6
11
 
7
- # An identifier assigned to the request and response
8
12
  attr_reader :request_id
9
-
10
- # Request or response headers in string form
11
13
  attr_reader :headers
12
-
13
- # Request or response body as a string
14
14
  attr_reader :body
15
-
16
- # Content type of the body, generally 'application/json' or 'text/html'
17
15
  attr_reader :content_type
18
16
 
19
17
  # Create a new LogMessageBuilder
20
- def initialize(requestId)
21
- raise ArgumentError if requestId.nil? or requestId.empty?
22
- @request_id = requestId
18
+ def initialize(request_id)
19
+ raise ArgumentError if request_id.nil? or request_id.empty?
20
+ @request_id = request_id
23
21
  @headers = ''
24
22
  end
25
23
 
@@ -32,10 +30,15 @@ module Ingenico::Connect::SDK
32
30
  end
33
31
 
34
32
  # Sets the body of this message to the parameter body.
35
- # body:: The message body
36
- # content_type:: The content type of the body
33
+
34
+ # @param body [String] the message body
35
+ # @param content_type [String] the content type of the body
37
36
  def set_body(body, content_type)
38
- @body = LoggingUtil.obfuscate_body(body)
37
+ if is_binary(content_type)
38
+ @body = "<binary content>"
39
+ else
40
+ @body = LoggingUtil.obfuscate_body(body)
41
+ end
39
42
  @content_type = content_type
40
43
  end
41
44
 
@@ -57,6 +60,15 @@ module Ingenico::Connect::SDK
57
60
  value.nil? ? '' : value
58
61
  end
59
62
 
63
+ # Returns whether or not the content type is binary
64
+ def is_binary(content_type)
65
+ if content_type.nil?
66
+ return false
67
+ else
68
+ content_type = content_type.downcase
69
+ return !(content_type.start_with?("text/") || content_type.include?("json") || content_type.include?("xml"))
70
+ end
71
+ end
60
72
  end
61
73
  end
62
74
  end