direct-sdk-ruby 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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