direct-sdk-ruby 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +2 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +141 -0
  5. data/Rakefile +34 -0
  6. data/direct-sdk-ruby.gemspec +28 -0
  7. data/lib/ingenico/direct/sdk.rb +26 -0
  8. data/lib/ingenico/direct/sdk/api_exception.rb +42 -0
  9. data/lib/ingenico/direct/sdk/api_resource.rb +115 -0
  10. data/lib/ingenico/direct/sdk/authenticator.rb +16 -0
  11. data/lib/ingenico/direct/sdk/authorization_exception.rb +13 -0
  12. data/lib/ingenico/direct/sdk/call_context.rb +26 -0
  13. data/lib/ingenico/direct/sdk/client.rb +85 -0
  14. data/lib/ingenico/direct/sdk/communication_exception.rb +16 -0
  15. data/lib/ingenico/direct/sdk/communicator.rb +301 -0
  16. data/lib/ingenico/direct/sdk/communicator_configuration.rb +59 -0
  17. data/lib/ingenico/direct/sdk/connection.rb +41 -0
  18. data/lib/ingenico/direct/sdk/data_object.rb +32 -0
  19. data/lib/ingenico/direct/sdk/declined_payment_exception.rb +30 -0
  20. data/lib/ingenico/direct/sdk/declined_payout_exception.rb +32 -0
  21. data/lib/ingenico/direct/sdk/declined_refund_exception.rb +32 -0
  22. data/lib/ingenico/direct/sdk/declined_transaction_exception.rb +16 -0
  23. data/lib/ingenico/direct/sdk/defaultimpl.rb +6 -0
  24. data/lib/ingenico/direct/sdk/defaultimpl/authorization_type.rb +24 -0
  25. data/lib/ingenico/direct/sdk/defaultimpl/default_authenticator.rb +108 -0
  26. data/lib/ingenico/direct/sdk/defaultimpl/default_connection.rb +293 -0
  27. data/lib/ingenico/direct/sdk/defaultimpl/default_marshaller.rb +32 -0
  28. data/lib/ingenico/direct/sdk/direct_exception.rb +15 -0
  29. data/lib/ingenico/direct/sdk/domain/account_on_file.rb +50 -0
  30. data/lib/ingenico/direct/sdk/domain/account_on_file_attribute.rb +39 -0
  31. data/lib/ingenico/direct/sdk/domain/account_on_file_display_hints.rb +38 -0
  32. data/lib/ingenico/direct/sdk/domain/additional_order_input.rb +47 -0
  33. data/lib/ingenico/direct/sdk/domain/address.rb +51 -0
  34. data/lib/ingenico/direct/sdk/domain/address_personal.rb +59 -0
  35. data/lib/ingenico/direct/sdk/domain/airline_data.rb +129 -0
  36. data/lib/ingenico/direct/sdk/domain/airline_flight_leg.rb +99 -0
  37. data/lib/ingenico/direct/sdk/domain/airline_passenger.rb +39 -0
  38. data/lib/ingenico/direct/sdk/domain/amount_breakdown.rb +31 -0
  39. data/lib/ingenico/direct/sdk/domain/amount_of_money.rb +31 -0
  40. data/lib/ingenico/direct/sdk/domain/api_error.rb +47 -0
  41. data/lib/ingenico/direct/sdk/domain/browser_data.rb +39 -0
  42. data/lib/ingenico/direct/sdk/domain/cancel_payment_response.rb +31 -0
  43. data/lib/ingenico/direct/sdk/domain/capture.rb +47 -0
  44. data/lib/ingenico/direct/sdk/domain/capture_output.rb +79 -0
  45. data/lib/ingenico/direct/sdk/domain/capture_payment_request.rb +31 -0
  46. data/lib/ingenico/direct/sdk/domain/capture_response.rb +47 -0
  47. data/lib/ingenico/direct/sdk/domain/capture_status_output.rb +27 -0
  48. data/lib/ingenico/direct/sdk/domain/captures_response.rb +34 -0
  49. data/lib/ingenico/direct/sdk/domain/card.rb +39 -0
  50. data/lib/ingenico/direct/sdk/domain/card_essentials.rb +31 -0
  51. data/lib/ingenico/direct/sdk/domain/card_fraud_results.rb +35 -0
  52. data/lib/ingenico/direct/sdk/domain/card_payment_method_specific_input.rb +95 -0
  53. data/lib/ingenico/direct/sdk/domain/card_payment_method_specific_input_base.rb +79 -0
  54. data/lib/ingenico/direct/sdk/domain/card_payment_method_specific_output.rb +67 -0
  55. data/lib/ingenico/direct/sdk/domain/card_payout_method_specific_input.rb +39 -0
  56. data/lib/ingenico/direct/sdk/domain/card_recurrence_details.rb +27 -0
  57. data/lib/ingenico/direct/sdk/domain/card_without_cvv.rb +35 -0
  58. data/lib/ingenico/direct/sdk/domain/company_information.rb +27 -0
  59. data/lib/ingenico/direct/sdk/domain/complete_payment_card_payment_method_specific_input.rb +31 -0
  60. data/lib/ingenico/direct/sdk/domain/complete_payment_request.rb +39 -0
  61. data/lib/ingenico/direct/sdk/domain/complete_payment_response.rb +47 -0
  62. data/lib/ingenico/direct/sdk/domain/contact_details.rb +43 -0
  63. data/lib/ingenico/direct/sdk/domain/create_hosted_checkout_request.rb +63 -0
  64. data/lib/ingenico/direct/sdk/domain/create_hosted_checkout_response.rb +49 -0
  65. data/lib/ingenico/direct/sdk/domain/create_hosted_tokenization_request.rb +39 -0
  66. data/lib/ingenico/direct/sdk/domain/create_hosted_tokenization_response.rb +41 -0
  67. data/lib/ingenico/direct/sdk/domain/create_payment_request.rb +67 -0
  68. data/lib/ingenico/direct/sdk/domain/create_payment_response.rb +47 -0
  69. data/lib/ingenico/direct/sdk/domain/create_payout_request.rb +47 -0
  70. data/lib/ingenico/direct/sdk/domain/create_token_request.rb +35 -0
  71. data/lib/ingenico/direct/sdk/domain/created_payment_output.rb +35 -0
  72. data/lib/ingenico/direct/sdk/domain/created_token_response.rb +51 -0
  73. data/lib/ingenico/direct/sdk/domain/customer.rb +87 -0
  74. data/lib/ingenico/direct/sdk/domain/customer_account.rb +71 -0
  75. data/lib/ingenico/direct/sdk/domain/customer_account_authentication.rb +31 -0
  76. data/lib/ingenico/direct/sdk/domain/customer_device.rb +51 -0
  77. data/lib/ingenico/direct/sdk/domain/customer_payment_activity.rb +35 -0
  78. data/lib/ingenico/direct/sdk/domain/customer_token.rb +47 -0
  79. data/lib/ingenico/direct/sdk/domain/decrypted_payment_data.rb +43 -0
  80. data/lib/ingenico/direct/sdk/domain/directory_entry.rb +35 -0
  81. data/lib/ingenico/direct/sdk/domain/empty_validator.rb +13 -0
  82. data/lib/ingenico/direct/sdk/domain/error_response.rb +38 -0
  83. data/lib/ingenico/direct/sdk/domain/external_cardholder_authentication_data.rb +59 -0
  84. data/lib/ingenico/direct/sdk/domain/external_token_linked.rb +27 -0
  85. data/lib/ingenico/direct/sdk/domain/fixed_list_validator.rb +33 -0
  86. data/lib/ingenico/direct/sdk/domain/fraud_fields.rb +31 -0
  87. data/lib/ingenico/direct/sdk/domain/fraud_results.rb +27 -0
  88. data/lib/ingenico/direct/sdk/domain/g_pay_three_d_secure.rb +47 -0
  89. data/lib/ingenico/direct/sdk/domain/get_hosted_checkout_response.rb +35 -0
  90. data/lib/ingenico/direct/sdk/domain/get_hosted_tokenization_response.rb +35 -0
  91. data/lib/ingenico/direct/sdk/domain/get_payment_product_groups_response.rb +34 -0
  92. data/lib/ingenico/direct/sdk/domain/get_payment_products_response.rb +34 -0
  93. data/lib/ingenico/direct/sdk/domain/gift_card_purchase.rb +35 -0
  94. data/lib/ingenico/direct/sdk/domain/hosted_checkout_specific_input.rb +55 -0
  95. data/lib/ingenico/direct/sdk/domain/hosted_checkout_specific_output.rb +31 -0
  96. data/lib/ingenico/direct/sdk/domain/label_template_element.rb +31 -0
  97. data/lib/ingenico/direct/sdk/domain/length_validator.rb +31 -0
  98. data/lib/ingenico/direct/sdk/domain/line_item.rb +47 -0
  99. data/lib/ingenico/direct/sdk/domain/line_item_invoice_data.rb +27 -0
  100. data/lib/ingenico/direct/sdk/domain/loan_recipient.rb +43 -0
  101. data/lib/ingenico/direct/sdk/domain/merchant_action.rb +35 -0
  102. data/lib/ingenico/direct/sdk/domain/mobile_payment_data.rb +31 -0
  103. data/lib/ingenico/direct/sdk/domain/mobile_payment_method_specific_input.rb +63 -0
  104. data/lib/ingenico/direct/sdk/domain/mobile_payment_method_specific_output.rb +59 -0
  105. data/lib/ingenico/direct/sdk/domain/mobile_payment_product320_specific_input.rb +31 -0
  106. data/lib/ingenico/direct/sdk/domain/order.rb +71 -0
  107. data/lib/ingenico/direct/sdk/domain/order_line_details.rb +55 -0
  108. data/lib/ingenico/direct/sdk/domain/order_references.rb +31 -0
  109. data/lib/ingenico/direct/sdk/domain/order_status_output.rb +50 -0
  110. data/lib/ingenico/direct/sdk/domain/order_type_information.rb +31 -0
  111. data/lib/ingenico/direct/sdk/domain/payment_account_on_file.rb +31 -0
  112. data/lib/ingenico/direct/sdk/domain/payment_creation_output.rb +39 -0
  113. data/lib/ingenico/direct/sdk/domain/payment_error_response.rb +46 -0
  114. data/lib/ingenico/direct/sdk/domain/payment_output.rb +79 -0
  115. data/lib/ingenico/direct/sdk/domain/payment_product.rb +77 -0
  116. data/lib/ingenico/direct/sdk/domain/payment_product5100_specific_input.rb +27 -0
  117. data/lib/ingenico/direct/sdk/domain/payment_product5402_specific_output.rb +27 -0
  118. data/lib/ingenico/direct/sdk/domain/payment_product5500_specific_output.rb +35 -0
  119. data/lib/ingenico/direct/sdk/domain/payment_product771_specific_output.rb +13 -0
  120. data/lib/ingenico/direct/sdk/domain/payment_product840_customer_account.rb +55 -0
  121. data/lib/ingenico/direct/sdk/domain/payment_product840_specific_output.rb +54 -0
  122. data/lib/ingenico/direct/sdk/domain/payment_product_display_hints.rb +35 -0
  123. data/lib/ingenico/direct/sdk/domain/payment_product_field.rb +47 -0
  124. data/lib/ingenico/direct/sdk/domain/payment_product_field_data_restrictions.rb +35 -0
  125. data/lib/ingenico/direct/sdk/domain/payment_product_field_display_element.rb +39 -0
  126. data/lib/ingenico/direct/sdk/domain/payment_product_field_display_hints.rb +71 -0
  127. data/lib/ingenico/direct/sdk/domain/payment_product_field_form_element.rb +38 -0
  128. data/lib/ingenico/direct/sdk/domain/payment_product_field_tooltip.rb +31 -0
  129. data/lib/ingenico/direct/sdk/domain/payment_product_field_validators.rb +91 -0
  130. data/lib/ingenico/direct/sdk/domain/payment_product_filter.rb +43 -0
  131. data/lib/ingenico/direct/sdk/domain/payment_product_filters_hosted_checkout.rb +38 -0
  132. data/lib/ingenico/direct/sdk/domain/payment_product_group.rb +43 -0
  133. data/lib/ingenico/direct/sdk/domain/payment_product_networks_response.rb +33 -0
  134. data/lib/ingenico/direct/sdk/domain/payment_references.rb +27 -0
  135. data/lib/ingenico/direct/sdk/domain/payment_response.rb +55 -0
  136. data/lib/ingenico/direct/sdk/domain/payment_status_output.rb +58 -0
  137. data/lib/ingenico/direct/sdk/domain/payout_error_response.rb +46 -0
  138. data/lib/ingenico/direct/sdk/domain/payout_output.rb +31 -0
  139. data/lib/ingenico/direct/sdk/domain/payout_response.rb +47 -0
  140. data/lib/ingenico/direct/sdk/domain/payout_result.rb +47 -0
  141. data/lib/ingenico/direct/sdk/domain/payout_status_output.rb +35 -0
  142. data/lib/ingenico/direct/sdk/domain/personal_information.rb +39 -0
  143. data/lib/ingenico/direct/sdk/domain/personal_information_token.rb +31 -0
  144. data/lib/ingenico/direct/sdk/domain/personal_name.rb +35 -0
  145. data/lib/ingenico/direct/sdk/domain/personal_name_token.rb +31 -0
  146. data/lib/ingenico/direct/sdk/domain/product_directory.rb +34 -0
  147. data/lib/ingenico/direct/sdk/domain/protection_eligibility.rb +31 -0
  148. data/lib/ingenico/direct/sdk/domain/range_validator.rb +31 -0
  149. data/lib/ingenico/direct/sdk/domain/redirect_data.rb +31 -0
  150. data/lib/ingenico/direct/sdk/domain/redirect_payment_method_specific_input.rb +67 -0
  151. data/lib/ingenico/direct/sdk/domain/redirect_payment_method_specific_output.rb +67 -0
  152. data/lib/ingenico/direct/sdk/domain/redirect_payment_product809_specific_input.rb +27 -0
  153. data/lib/ingenico/direct/sdk/domain/redirect_payment_product840_specific_input.rb +27 -0
  154. data/lib/ingenico/direct/sdk/domain/redirection_data.rb +27 -0
  155. data/lib/ingenico/direct/sdk/domain/refund_card_method_specific_output.rb +31 -0
  156. data/lib/ingenico/direct/sdk/domain/refund_e_wallet_method_specific_output.rb +39 -0
  157. data/lib/ingenico/direct/sdk/domain/refund_error_response.rb +46 -0
  158. data/lib/ingenico/direct/sdk/domain/refund_mobile_method_specific_output.rb +35 -0
  159. data/lib/ingenico/direct/sdk/domain/refund_output.rb +79 -0
  160. data/lib/ingenico/direct/sdk/domain/refund_payment_product840_customer_account.rb +35 -0
  161. data/lib/ingenico/direct/sdk/domain/refund_payment_product840_specific_output.rb +31 -0
  162. data/lib/ingenico/direct/sdk/domain/refund_redirect_method_specific_output.rb +31 -0
  163. data/lib/ingenico/direct/sdk/domain/refund_request.rb +31 -0
  164. data/lib/ingenico/direct/sdk/domain/refund_response.rb +47 -0
  165. data/lib/ingenico/direct/sdk/domain/refunds_response.rb +34 -0
  166. data/lib/ingenico/direct/sdk/domain/regular_expression_validator.rb +27 -0
  167. data/lib/ingenico/direct/sdk/domain/sepa_direct_debit_payment_method_specific_output.rb +43 -0
  168. data/lib/ingenico/direct/sdk/domain/session_request.rb +33 -0
  169. data/lib/ingenico/direct/sdk/domain/session_response.rb +49 -0
  170. data/lib/ingenico/direct/sdk/domain/shipping.rb +51 -0
  171. data/lib/ingenico/direct/sdk/domain/shopping_cart.rb +65 -0
  172. data/lib/ingenico/direct/sdk/domain/shopping_cart_extension.rb +52 -0
  173. data/lib/ingenico/direct/sdk/domain/test_connection.rb +27 -0
  174. data/lib/ingenico/direct/sdk/domain/three_d_secure.rb +63 -0
  175. data/lib/ingenico/direct/sdk/domain/three_d_secure_base.rb +47 -0
  176. data/lib/ingenico/direct/sdk/domain/three_d_secure_data.rb +35 -0
  177. data/lib/ingenico/direct/sdk/domain/three_d_secure_results.rb +31 -0
  178. data/lib/ingenico/direct/sdk/domain/token_card.rb +35 -0
  179. data/lib/ingenico/direct/sdk/domain/token_card_data.rb +31 -0
  180. data/lib/ingenico/direct/sdk/domain/token_card_specific_input.rb +31 -0
  181. data/lib/ingenico/direct/sdk/domain/token_data.rb +31 -0
  182. data/lib/ingenico/direct/sdk/domain/token_e_wallet.rb +35 -0
  183. data/lib/ingenico/direct/sdk/domain/token_response.rb +55 -0
  184. data/lib/ingenico/direct/sdk/domain/value_mapping_element.rb +38 -0
  185. data/lib/ingenico/direct/sdk/endpoint_configuration.rb +127 -0
  186. data/lib/ingenico/direct/sdk/exceptions.rb +8 -0
  187. data/lib/ingenico/direct/sdk/factory.rb +136 -0
  188. data/lib/ingenico/direct/sdk/idempotence_exception.rb +24 -0
  189. data/lib/ingenico/direct/sdk/logging.rb +10 -0
  190. data/lib/ingenico/direct/sdk/logging/communicator_logger.rb +22 -0
  191. data/lib/ingenico/direct/sdk/logging/log_message_builder.rb +56 -0
  192. data/lib/ingenico/direct/sdk/logging/logging_capable.rb +19 -0
  193. data/lib/ingenico/direct/sdk/logging/logging_util.rb +271 -0
  194. data/lib/ingenico/direct/sdk/logging/request_log_message_builder.rb +39 -0
  195. data/lib/ingenico/direct/sdk/logging/response_log_message_builder.rb +34 -0
  196. data/lib/ingenico/direct/sdk/logging/ruby_communicator_logger.rb +57 -0
  197. data/lib/ingenico/direct/sdk/logging/stdout_communicator_logger.rb +34 -0
  198. data/lib/ingenico/direct/sdk/marshaller.rb +24 -0
  199. data/lib/ingenico/direct/sdk/marshaller_syntax_exception.rb +6 -0
  200. data/lib/ingenico/direct/sdk/merchant/hostedcheckout/hosted_checkout_client.rb +87 -0
  201. data/lib/ingenico/direct/sdk/merchant/hostedtokenization/hosted_tokenization_client.rb +87 -0
  202. data/lib/ingenico/direct/sdk/merchant/merchant_client.rb +83 -0
  203. data/lib/ingenico/direct/sdk/merchant/payments/payments_client.rb +291 -0
  204. data/lib/ingenico/direct/sdk/merchant/payouts/payouts_client.rb +87 -0
  205. data/lib/ingenico/direct/sdk/merchant/productgroups/get_product_group_params.rb +58 -0
  206. data/lib/ingenico/direct/sdk/merchant/productgroups/get_product_groups_params.rb +58 -0
  207. data/lib/ingenico/direct/sdk/merchant/productgroups/product_groups_client.rb +88 -0
  208. data/lib/ingenico/direct/sdk/merchant/products/get_payment_product_networks_params.rb +39 -0
  209. data/lib/ingenico/direct/sdk/merchant/products/get_payment_product_params.rb +58 -0
  210. data/lib/ingenico/direct/sdk/merchant/products/get_payment_products_params.rb +58 -0
  211. data/lib/ingenico/direct/sdk/merchant/products/get_product_directory_params.rb +31 -0
  212. data/lib/ingenico/direct/sdk/merchant/products/products_client.rb +156 -0
  213. data/lib/ingenico/direct/sdk/merchant/services/services_client.rb +52 -0
  214. data/lib/ingenico/direct/sdk/merchant/sessions/sessions_client.rb +55 -0
  215. data/lib/ingenico/direct/sdk/merchant/tokens/tokens_client.rb +117 -0
  216. data/lib/ingenico/direct/sdk/meta_data_provider.rb +150 -0
  217. data/lib/ingenico/direct/sdk/modules.rb +71 -0
  218. data/lib/ingenico/direct/sdk/not_found_exception.rb +16 -0
  219. data/lib/ingenico/direct/sdk/param_request.rb +11 -0
  220. data/lib/ingenico/direct/sdk/pooled_connection.rb +21 -0
  221. data/lib/ingenico/direct/sdk/proxy_configuration.rb +74 -0
  222. data/lib/ingenico/direct/sdk/reference_exception.rb +14 -0
  223. data/lib/ingenico/direct/sdk/request_header.rb +50 -0
  224. data/lib/ingenico/direct/sdk/request_param.rb +23 -0
  225. data/lib/ingenico/direct/sdk/response_exception.rb +47 -0
  226. data/lib/ingenico/direct/sdk/response_header.rb +42 -0
  227. data/lib/ingenico/direct/sdk/validation_exception.rb +14 -0
  228. data/lib/ingenico/direct/sdk/webhooks.rb +11 -0
  229. data/lib/ingenico/direct/sdk/webhooks/api_version_mismatch_exception.rb +20 -0
  230. data/lib/ingenico/direct/sdk/webhooks/in_memory_secret_key_store.rb +56 -0
  231. data/lib/ingenico/direct/sdk/webhooks/secret_key_not_available_exception.rb +17 -0
  232. data/lib/ingenico/direct/sdk/webhooks/secret_key_store.rb +16 -0
  233. data/lib/ingenico/direct/sdk/webhooks/signature_validation_exception.rb +19 -0
  234. data/lib/ingenico/direct/sdk/webhooks/webhooks.rb +22 -0
  235. data/lib/ingenico/direct/sdk/webhooks/webhooks_event.rb +58 -0
  236. data/lib/ingenico/direct/sdk/webhooks/webhooks_helper.rb +99 -0
  237. data/lib/ingenico/direct/sdk/webhooks/webhooks_helper_builder.rb +25 -0
  238. metadata +385 -0
@@ -0,0 +1,47 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/three_d_secure_data'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [String] challenge_canvas_size
12
+ # @attr [String] challenge_indicator
13
+ # @attr [String] exemption_request
14
+ # @attr [Ingenico::Direct::SDK::Domain::ThreeDSecureData] prior_three_d_secure_data
15
+ # @attr [true/false] skip_authentication
16
+ class ThreeDSecureBase < Ingenico::Direct::SDK::DataObject
17
+ attr_accessor :challenge_canvas_size
18
+ attr_accessor :challenge_indicator
19
+ attr_accessor :exemption_request
20
+ attr_accessor :prior_three_d_secure_data
21
+ attr_accessor :skip_authentication
22
+
23
+ # @return (Hash)
24
+ def to_h
25
+ hash = super
26
+ hash['challengeCanvasSize'] = @challenge_canvas_size unless @challenge_canvas_size.nil?
27
+ hash['challengeIndicator'] = @challenge_indicator unless @challenge_indicator.nil?
28
+ hash['exemptionRequest'] = @exemption_request unless @exemption_request.nil?
29
+ hash['priorThreeDSecureData'] = @prior_three_d_secure_data.to_h if @prior_three_d_secure_data
30
+ hash['skipAuthentication'] = @skip_authentication unless @skip_authentication.nil?
31
+ hash
32
+ end
33
+
34
+ def from_hash(hash)
35
+ super
36
+ @challenge_canvas_size = hash['challengeCanvasSize'] if hash.key? 'challengeCanvasSize'
37
+ @challenge_indicator = hash['challengeIndicator'] if hash.key? 'challengeIndicator'
38
+ @exemption_request = hash['exemptionRequest'] if hash.key? 'exemptionRequest'
39
+ if hash.key? 'priorThreeDSecureData'
40
+ raise TypeError, "value '%s' is not a Hash" % [hash['priorThreeDSecureData']] unless hash['priorThreeDSecureData'].is_a? Hash
41
+ @prior_three_d_secure_data = Ingenico::Direct::SDK::Domain::ThreeDSecureData.new_from_hash(hash['priorThreeDSecureData'])
42
+ end
43
+ @skip_authentication = hash['skipAuthentication'] if hash.key? 'skipAuthentication'
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,35 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+
7
+ module Ingenico::Direct::SDK
8
+ module Domain
9
+
10
+ # @attr [String] acs_transaction_id
11
+ # @attr [String] method
12
+ # @attr [String] utc_timestamp
13
+ class ThreeDSecureData < Ingenico::Direct::SDK::DataObject
14
+ attr_accessor :acs_transaction_id
15
+ attr_accessor :method
16
+ attr_accessor :utc_timestamp
17
+
18
+ # @return (Hash)
19
+ def to_h
20
+ hash = super
21
+ hash['acsTransactionId'] = @acs_transaction_id unless @acs_transaction_id.nil?
22
+ hash['method'] = @method unless @method.nil?
23
+ hash['utcTimestamp'] = @utc_timestamp unless @utc_timestamp.nil?
24
+ hash
25
+ end
26
+
27
+ def from_hash(hash)
28
+ super
29
+ @acs_transaction_id = hash['acsTransactionId'] if hash.key? 'acsTransactionId'
30
+ @method = hash['method'] if hash.key? 'method'
31
+ @utc_timestamp = hash['utcTimestamp'] if hash.key? 'utcTimestamp'
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,31 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+
7
+ module Ingenico::Direct::SDK
8
+ module Domain
9
+
10
+ # @attr [String] eci
11
+ # @attr [String] xid
12
+ class ThreeDSecureResults < Ingenico::Direct::SDK::DataObject
13
+ attr_accessor :eci
14
+ attr_accessor :xid
15
+
16
+ # @return (Hash)
17
+ def to_h
18
+ hash = super
19
+ hash['eci'] = @eci unless @eci.nil?
20
+ hash['xid'] = @xid unless @xid.nil?
21
+ hash
22
+ end
23
+
24
+ def from_hash(hash)
25
+ super
26
+ @eci = hash['eci'] if hash.key? 'eci'
27
+ @xid = hash['xid'] if hash.key? 'xid'
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,35 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/token_card_data'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [String] alias
12
+ # @attr [Ingenico::Direct::SDK::Domain::TokenCardData] data
13
+ class TokenCard < Ingenico::Direct::SDK::DataObject
14
+ attr_accessor :alias
15
+ attr_accessor :data
16
+
17
+ # @return (Hash)
18
+ def to_h
19
+ hash = super
20
+ hash['alias'] = @alias unless @alias.nil?
21
+ hash['data'] = @data.to_h if @data
22
+ hash
23
+ end
24
+
25
+ def from_hash(hash)
26
+ super
27
+ @alias = hash['alias'] if hash.key? 'alias'
28
+ if hash.key? 'data'
29
+ raise TypeError, "value '%s' is not a Hash" % [hash['data']] unless hash['data'].is_a? Hash
30
+ @data = Ingenico::Direct::SDK::Domain::TokenCardData.new_from_hash(hash['data'])
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,31 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/card_without_cvv'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [Ingenico::Direct::SDK::Domain::CardWithoutCvv] card_without_cvv
12
+ class TokenCardData < Ingenico::Direct::SDK::DataObject
13
+ attr_accessor :card_without_cvv
14
+
15
+ # @return (Hash)
16
+ def to_h
17
+ hash = super
18
+ hash['cardWithoutCvv'] = @card_without_cvv.to_h if @card_without_cvv
19
+ hash
20
+ end
21
+
22
+ def from_hash(hash)
23
+ super
24
+ if hash.key? 'cardWithoutCvv'
25
+ raise TypeError, "value '%s' is not a Hash" % [hash['cardWithoutCvv']] unless hash['cardWithoutCvv'].is_a? Hash
26
+ @card_without_cvv = Ingenico::Direct::SDK::Domain::CardWithoutCvv.new_from_hash(hash['cardWithoutCvv'])
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/token_data'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [Ingenico::Direct::SDK::Domain::TokenData] data
12
+ class TokenCardSpecificInput < Ingenico::Direct::SDK::DataObject
13
+ attr_accessor :data
14
+
15
+ # @return (Hash)
16
+ def to_h
17
+ hash = super
18
+ hash['data'] = @data.to_h if @data
19
+ hash
20
+ end
21
+
22
+ def from_hash(hash)
23
+ super
24
+ if hash.key? 'data'
25
+ raise TypeError, "value '%s' is not a Hash" % [hash['data']] unless hash['data'].is_a? Hash
26
+ @data = Ingenico::Direct::SDK::Domain::TokenData.new_from_hash(hash['data'])
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/card'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [Ingenico::Direct::SDK::Domain::Card] card
12
+ class TokenData < Ingenico::Direct::SDK::DataObject
13
+ attr_accessor :card
14
+
15
+ # @return (Hash)
16
+ def to_h
17
+ hash = super
18
+ hash['card'] = @card.to_h if @card
19
+ hash
20
+ end
21
+
22
+ def from_hash(hash)
23
+ super
24
+ if hash.key? 'card'
25
+ raise TypeError, "value '%s' is not a Hash" % [hash['card']] unless hash['card'].is_a? Hash
26
+ @card = Ingenico::Direct::SDK::Domain::Card.new_from_hash(hash['card'])
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,35 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/customer_token'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [String] alias
12
+ # @attr [Ingenico::Direct::SDK::Domain::CustomerToken] customer
13
+ class TokenEWallet < Ingenico::Direct::SDK::DataObject
14
+ attr_accessor :alias
15
+ attr_accessor :customer
16
+
17
+ # @return (Hash)
18
+ def to_h
19
+ hash = super
20
+ hash['alias'] = @alias unless @alias.nil?
21
+ hash['customer'] = @customer.to_h if @customer
22
+ hash
23
+ end
24
+
25
+ def from_hash(hash)
26
+ super
27
+ @alias = hash['alias'] if hash.key? 'alias'
28
+ if hash.key? 'customer'
29
+ raise TypeError, "value '%s' is not a Hash" % [hash['customer']] unless hash['customer'].is_a? Hash
30
+ @customer = Ingenico::Direct::SDK::Domain::CustomerToken.new_from_hash(hash['customer'])
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,55 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/external_token_linked'
7
+ require 'ingenico/direct/sdk/domain/token_card'
8
+ require 'ingenico/direct/sdk/domain/token_e_wallet'
9
+
10
+ module Ingenico::Direct::SDK
11
+ module Domain
12
+
13
+ # @attr [Ingenico::Direct::SDK::Domain::TokenCard] card
14
+ # @attr [Ingenico::Direct::SDK::Domain::TokenEWallet] e_wallet
15
+ # @attr [Ingenico::Direct::SDK::Domain::ExternalTokenLinked] external_token_linked
16
+ # @attr [String] id
17
+ # @attr [Integer] payment_product_id
18
+ class TokenResponse < Ingenico::Direct::SDK::DataObject
19
+ attr_accessor :card
20
+ attr_accessor :e_wallet
21
+ attr_accessor :external_token_linked
22
+ attr_accessor :id
23
+ attr_accessor :payment_product_id
24
+
25
+ # @return (Hash)
26
+ def to_h
27
+ hash = super
28
+ hash['card'] = @card.to_h if @card
29
+ hash['eWallet'] = @e_wallet.to_h if @e_wallet
30
+ hash['externalTokenLinked'] = @external_token_linked.to_h if @external_token_linked
31
+ hash['id'] = @id unless @id.nil?
32
+ hash['paymentProductId'] = @payment_product_id unless @payment_product_id.nil?
33
+ hash
34
+ end
35
+
36
+ def from_hash(hash)
37
+ super
38
+ if hash.key? 'card'
39
+ raise TypeError, "value '%s' is not a Hash" % [hash['card']] unless hash['card'].is_a? Hash
40
+ @card = Ingenico::Direct::SDK::Domain::TokenCard.new_from_hash(hash['card'])
41
+ end
42
+ if hash.key? 'eWallet'
43
+ raise TypeError, "value '%s' is not a Hash" % [hash['eWallet']] unless hash['eWallet'].is_a? Hash
44
+ @e_wallet = Ingenico::Direct::SDK::Domain::TokenEWallet.new_from_hash(hash['eWallet'])
45
+ end
46
+ if hash.key? 'externalTokenLinked'
47
+ raise TypeError, "value '%s' is not a Hash" % [hash['externalTokenLinked']] unless hash['externalTokenLinked'].is_a? Hash
48
+ @external_token_linked = Ingenico::Direct::SDK::Domain::ExternalTokenLinked.new_from_hash(hash['externalTokenLinked'])
49
+ end
50
+ @id = hash['id'] if hash.key? 'id'
51
+ @payment_product_id = hash['paymentProductId'] if hash.key? 'paymentProductId'
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,38 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/payment_product_field_display_element'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [Array<Ingenico::Direct::SDK::Domain::PaymentProductFieldDisplayElement>] display_elements
12
+ # @attr [String] value
13
+ class ValueMappingElement < Ingenico::Direct::SDK::DataObject
14
+ attr_accessor :display_elements
15
+ attr_accessor :value
16
+
17
+ # @return (Hash)
18
+ def to_h
19
+ hash = super
20
+ hash['displayElements'] = @display_elements.collect(&:to_h) if @display_elements
21
+ hash['value'] = @value unless @value.nil?
22
+ hash
23
+ end
24
+
25
+ def from_hash(hash)
26
+ super
27
+ if hash.key? 'displayElements'
28
+ raise TypeError, "value '%s' is not an Array" % [hash['displayElements']] unless hash['displayElements'].is_a? Array
29
+ @display_elements = []
30
+ hash['displayElements'].each do |e|
31
+ @display_elements << Ingenico::Direct::SDK::Domain::PaymentProductFieldDisplayElement.new_from_hash(e)
32
+ end
33
+ end
34
+ @value = hash['value'] if hash.key? 'value'
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,127 @@
1
+ require 'uri'
2
+
3
+ module Ingenico::Direct::SDK
4
+
5
+ # Base class for configuration classes in the SDK.
6
+ #
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::Direct::SDK::ProxyConfiguration] proxy_configuration Proxy settings.
13
+ # @attr [String] integrator Name of the integrator
14
+ # @attr [Ingenico::Direct::SDK::Domain::ShoppingCartExtension] shopping_cart_extension Shopping cart-related metadata.
15
+ class EndpointConfiguration
16
+ DEFAULT_CONNECT_TIMEOUT = 10
17
+ DEFAULT_SOCKET_TIMEOUT = 10
18
+ DEFAULT_MAX_CONNECTIONS = 10
19
+
20
+ # The default number of seconds before a connection attempt with the Ingenico ePayments platform times out.
21
+ # Used if _connectTimeout_ is not present in the properties.
22
+ def self.default_connect_timeout
23
+ DEFAULT_CONNECT_TIMEOUT
24
+ end
25
+
26
+ # The default number of seconds before a timeout occurs when transmitting data to or from the Ingenico ePayments platform.
27
+ # Used if _socketTimeout_ is not present in the properties.
28
+ def self.default_socket_timeout
29
+ DEFAULT_SOCKET_TIMEOUT
30
+ end
31
+
32
+ # The default number of connections that are kept alive in the connection pool.
33
+ # Used if _maxConnections_ is not present in the properties.
34
+ def self.default_max_connections
35
+ DEFAULT_MAX_CONNECTIONS
36
+ end
37
+
38
+ # Initializes a new EndpointConfiguration.
39
+ #
40
+ # The given _properties_ is searched for settings using properties[prefix + '.setting_name']
41
+ # The following settings are searched:
42
+ #
43
+ # endpoint:: This property is searched for *endpoint.host*, *endpoint.scheme* and *endpoint.port*.
44
+ # The found host, scheme and port are used to construct the base URL to the Ingenico ePayments platform.
45
+ # connectTimeout:: The number of seconds before a connection attempt with the Ingenico ePayments platform times out.
46
+ # socketTimeout:: The number of seconds before a timeout occurs when transmitting data to or from the Ingenico ePayments platform.
47
+ # maxConnections:: The number of connections with the Ingenico ePayments platform
48
+ # that are kept alive in the connection pool. These connections will be reused when possible.
49
+ # proxy:: This property is searched for *proxy.uri*, *proxy.username* and *proxy.password*.
50
+ # The found URI, username and password are used
51
+ # for connecting to the Ingenico ePayments platform using a proxy.
52
+ # integrator:: Name of the integrator
53
+ # shoppingCartExtension:: Will be used to initialize a {Ingenico::Direct::SDK::Domain::ShoppingCartExtension}.
54
+ def initialize(properties = nil, prefix = nil)
55
+ return unless properties
56
+
57
+ @api_endpoint = get_endpoint(properties, prefix)
58
+ @connect_timeout = get_property(properties, "#{prefix}.connectTimeout", DEFAULT_CONNECT_TIMEOUT)
59
+ @socket_timeout = get_property(properties, "#{prefix}.socketTimeout", DEFAULT_SOCKET_TIMEOUT)
60
+ @max_connections = get_property(properties, "#{prefix}.maxConnections", DEFAULT_MAX_CONNECTIONS)
61
+
62
+ proxy_uri = properties["#{prefix}.proxy.uri"]
63
+ if proxy_uri
64
+ proxy_user = properties["#{prefix}.proxy.username"]
65
+ proxy_pass = properties["#{prefix}.proxy.password"]
66
+ @proxy_configuration = ProxyConfiguration.new(address: URI(proxy_uri),
67
+ username: proxy_user,
68
+ password: proxy_pass)
69
+ end
70
+ @integrator = properties["#{prefix}.integrator"]
71
+ @shopping_cart_extension = get_shopping_cart_extension(properties, prefix)
72
+ end
73
+
74
+ protected
75
+
76
+ def set_endpoint(endpoint)
77
+ if endpoint
78
+ raise ArgumentError, 'endpoint should not contain a path' if endpoint.path
79
+ if endpoint.userinfo || endpoint.query || endpoint.fragment
80
+ raise ArgumentError('endpoint should not contain user info, query or fragment')
81
+ end
82
+ end
83
+ @api_endpoint = endpoint
84
+ end
85
+
86
+ private
87
+
88
+ def get_property(properties, key, default_value)
89
+ property_value = properties[key]
90
+ property_value.nil? ? default_value : property_value
91
+ end
92
+
93
+ def get_endpoint(properties, prefix)
94
+ host = properties["#{prefix}.endpoint.host"]
95
+ scheme = properties["#{prefix}.endpoint.scheme"] || 'https'
96
+ port = properties["#{prefix}.endpoint.port"] || -1
97
+ create_uri(scheme, host, port)
98
+ end
99
+
100
+ def create_uri(scheme, host, port)
101
+ port == -1 ? "#{scheme}://#{host}" : "#{scheme}://#{host}:#{port}"
102
+ end
103
+
104
+ def get_shopping_cart_extension(properties, prefix)
105
+ creator = properties["#{prefix}.shoppingCartExtension.creator"]
106
+ name = properties["#{prefix}.shoppingCartExtension.name"]
107
+ version = properties["#{prefix}.shoppingCartExtension.version"]
108
+ extension_id = properties["#{prefix}.shoppingCartExtension.extensionId"]
109
+ (creator || name || version || extension_id) ?
110
+ Domain::ShoppingCartExtension.new(creator, name, version, extension_id) :
111
+ nil
112
+ end
113
+
114
+ public
115
+
116
+ attr_reader :api_endpoint
117
+
118
+ attr_accessor :connect_timeout
119
+ attr_accessor :socket_timeout
120
+ attr_accessor :max_connections
121
+
122
+ attr_accessor :proxy_configuration
123
+
124
+ attr_accessor :integrator
125
+ attr_accessor :shopping_cart_extension
126
+ end
127
+ end