hamza-payments-query-sdk 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 (262) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +136 -0
  4. data/lib/payments/api_helper.rb +10 -0
  5. data/lib/payments/client.rb +78 -0
  6. data/lib/payments/configuration.rb +145 -0
  7. data/lib/payments/controllers/base_controller.rb +60 -0
  8. data/lib/payments/controllers/m3_ds_actions_controller.rb +97 -0
  9. data/lib/payments/controllers/manage_payments_controller.rb +272 -0
  10. data/lib/payments/controllers/payment_controller.rb +51 -0
  11. data/lib/payments/controllers/payment_queries_controller.rb +134 -0
  12. data/lib/payments/exceptions/api_exception.rb +21 -0
  13. data/lib/payments/exceptions/error_response_exception.rb +51 -0
  14. data/lib/payments/exceptions/header_error_response_exception.rb +58 -0
  15. data/lib/payments/exceptions/pq_querybydaterange400_response_exception.rb +51 -0
  16. data/lib/payments/exceptions/pq_querybypaymentid404_response_error_exception.rb +51 -0
  17. data/lib/payments/exceptions/pq_queryhistoricalpayments400_response_exception.rb +51 -0
  18. data/lib/payments/exceptions/validation_error_response_exception.rb +58 -0
  19. data/lib/payments/http/auth/basic_auth.rb +50 -0
  20. data/lib/payments/http/http_call_back.rb +10 -0
  21. data/lib/payments/http/http_method_enum.rb +10 -0
  22. data/lib/payments/http/http_request.rb +10 -0
  23. data/lib/payments/http/http_response.rb +10 -0
  24. data/lib/payments/http/proxy_settings.rb +13 -0
  25. data/lib/payments/models/accept_enum.rb +21 -0
  26. data/lib/payments/models/account_history.rb +110 -0
  27. data/lib/payments/models/account_updater_message1_enum.rb +44 -0
  28. data/lib/payments/models/account_updater_message_enum.rb +41 -0
  29. data/lib/payments/models/advice.rb +62 -0
  30. data/lib/payments/models/applepay_payments_instruction.rb +151 -0
  31. data/lib/payments/models/authentication.rb +161 -0
  32. data/lib/payments/models/authorization_action_list.rb +90 -0
  33. data/lib/payments/models/authorization_failed.rb +103 -0
  34. data/lib/payments/models/authorization_refused.rb +124 -0
  35. data/lib/payments/models/authorization_requested.rb +94 -0
  36. data/lib/payments/models/authorization_succeeded.rb +104 -0
  37. data/lib/payments/models/authorization_timed_out.rb +94 -0
  38. data/lib/payments/models/authorization_type1_enum.rb +23 -0
  39. data/lib/payments/models/authorization_type_enum.rb +23 -0
  40. data/lib/payments/models/avs_not_matched_enum.rb +25 -0
  41. data/lib/payments/models/base_model.rb +110 -0
  42. data/lib/payments/models/billing_address.rb +147 -0
  43. data/lib/payments/models/browser_color_depth_enum.rb +41 -0
  44. data/lib/payments/models/cancel_response.rb +71 -0
  45. data/lib/payments/models/cancellation.rb +88 -0
  46. data/lib/payments/models/cancellation_failed.rb +94 -0
  47. data/lib/payments/models/cancellation_request_submitted.rb +94 -0
  48. data/lib/payments/models/cancellation_requested.rb +94 -0
  49. data/lib/payments/models/cancellation_timed_out.rb +94 -0
  50. data/lib/payments/models/card.rb +159 -0
  51. data/lib/payments/models/card1.rb +106 -0
  52. data/lib/payments/models/card3.rb +72 -0
  53. data/lib/payments/models/card_authorized_payment_response.rb +195 -0
  54. data/lib/payments/models/card_payment_instrument.rb +76 -0
  55. data/lib/payments/models/card_payments_instruction.rb +164 -0
  56. data/lib/payments/models/category_enum.rb +23 -0
  57. data/lib/payments/models/challenge.rb +100 -0
  58. data/lib/payments/models/challenge_info.rb +91 -0
  59. data/lib/payments/models/challenge_response201.rb +75 -0
  60. data/lib/payments/models/challenge_response202.rb +62 -0
  61. data/lib/payments/models/challenged_action_list.rb +65 -0
  62. data/lib/payments/models/challenged_response.rb +96 -0
  63. data/lib/payments/models/channel1_enum.rb +27 -0
  64. data/lib/payments/models/channel_enum.rb +24 -0
  65. data/lib/payments/models/conflict_payment_instrument.rb +104 -0
  66. data/lib/payments/models/content_type_enum.rb +20 -0
  67. data/lib/payments/models/custom.rb +241 -0
  68. data/lib/payments/models/customer.rb +146 -0
  69. data/lib/payments/models/customer_agreement.rb +120 -0
  70. data/lib/payments/models/cvc_not_matched_enum.rb +24 -0
  71. data/lib/payments/models/detail_enum.rb +23 -0
  72. data/lib/payments/models/device_data.rb +200 -0
  73. data/lib/payments/models/device_data_collection.rb +79 -0
  74. data/lib/payments/models/device_data_request.rb +71 -0
  75. data/lib/payments/models/device_data_required_action_list.rb +66 -0
  76. data/lib/payments/models/device_data_required_response.rb +89 -0
  77. data/lib/payments/models/device_data_response201.rb +95 -0
  78. data/lib/payments/models/embedded.rb +71 -0
  79. data/lib/payments/models/embedded1.rb +71 -0
  80. data/lib/payments/models/error.rb +81 -0
  81. data/lib/payments/models/exemption.rb +106 -0
  82. data/lib/payments/models/expiry_date.rb +90 -0
  83. data/lib/payments/models/expiry_date1.rb +84 -0
  84. data/lib/payments/models/fraud.rb +73 -0
  85. data/lib/payments/models/fraud_high_risk_response.rb +88 -0
  86. data/lib/payments/models/funding_type_enum.rb +32 -0
  87. data/lib/payments/models/googlepay_payments_instruction.rb +151 -0
  88. data/lib/payments/models/identifier_type_enum.rb +26 -0
  89. data/lib/payments/models/installment_plan.rb +76 -0
  90. data/lib/payments/models/installment_type_enum.rb +26 -0
  91. data/lib/payments/models/issuer.rb +63 -0
  92. data/lib/payments/models/issuer1.rb +76 -0
  93. data/lib/payments/models/issuer_response_enum.rb +23 -0
  94. data/lib/payments/models/last_event_enum.rb +95 -0
  95. data/lib/payments/models/links.rb +123 -0
  96. data/lib/payments/models/links1.rb +70 -0
  97. data/lib/payments/models/links2.rb +60 -0
  98. data/lib/payments/models/links3.rb +97 -0
  99. data/lib/payments/models/merchant.rb +88 -0
  100. data/lib/payments/models/message_enum.rb +34 -0
  101. data/lib/payments/models/method_enum.rb +38 -0
  102. data/lib/payments/models/mnext.rb +62 -0
  103. data/lib/payments/models/mself.rb +62 -0
  104. data/lib/payments/models/name_enum.rb +51 -0
  105. data/lib/payments/models/narrative.rb +86 -0
  106. data/lib/payments/models/narrative1.rb +87 -0
  107. data/lib/payments/models/narrative2.rb +71 -0
  108. data/lib/payments/models/number.rb +85 -0
  109. data/lib/payments/models/number3.rb +62 -0
  110. data/lib/payments/models/outcome16_enum.rb +21 -0
  111. data/lib/payments/models/outcome17_enum.rb +21 -0
  112. data/lib/payments/models/outcome6_enum.rb +42 -0
  113. data/lib/payments/models/outcome7_enum.rb +26 -0
  114. data/lib/payments/models/outcome_enum.rb +50 -0
  115. data/lib/payments/models/partial_refund_action_list.rb +64 -0
  116. data/lib/payments/models/partial_refund_response.rb +81 -0
  117. data/lib/payments/models/partial_settle_action_list.rb +102 -0
  118. data/lib/payments/models/partial_settle_response.rb +81 -0
  119. data/lib/payments/models/payment.rb +192 -0
  120. data/lib/payments/models/payment1.rb +86 -0
  121. data/lib/payments/models/payment_instrument.rb +62 -0
  122. data/lib/payments/models/payment_instrument4.rb +81 -0
  123. data/lib/payments/models/payment_instrument6.rb +71 -0
  124. data/lib/payments/models/payment_instrument7.rb +171 -0
  125. data/lib/payments/models/payment_refused_response.rb +187 -0
  126. data/lib/payments/models/payment_request.rb +96 -0
  127. data/lib/payments/models/payments_action_cancel.rb +71 -0
  128. data/lib/payments/models/payments_action_complete3ds_challenge.rb +72 -0
  129. data/lib/payments/models/payments_action_partial_refund.rb +71 -0
  130. data/lib/payments/models/payments_action_partial_settle.rb +73 -0
  131. data/lib/payments/models/payments_action_refund.rb +71 -0
  132. data/lib/payments/models/payments_action_settle.rb +71 -0
  133. data/lib/payments/models/payments_action_supply3ds_device_data.rb +73 -0
  134. data/lib/payments/models/payments_bank_account.rb +119 -0
  135. data/lib/payments/models/payments_cancel.rb +72 -0
  136. data/lib/payments/models/payments_card_account.rb +69 -0
  137. data/lib/payments/models/payments_card_on_file_customer_agreement.rb +85 -0
  138. data/lib/payments/models/payments_card_plain_payment_instrument.rb +149 -0
  139. data/lib/payments/models/payments_customer_agreement.rb +79 -0
  140. data/lib/payments/models/payments_email_account.rb +69 -0
  141. data/lib/payments/models/payments_events.rb +72 -0
  142. data/lib/payments/models/payments_exemption.rb +102 -0
  143. data/lib/payments/models/payments_fraud.rb +107 -0
  144. data/lib/payments/models/payments_funds_recipient.rb +139 -0
  145. data/lib/payments/models/payments_funds_sender.rb +120 -0
  146. data/lib/payments/models/payments_funds_transfer.rb +108 -0
  147. data/lib/payments/models/payments_gift_cards_purchase.rb +81 -0
  148. data/lib/payments/models/payments_installment_customer_agreement.rb +133 -0
  149. data/lib/payments/models/payments_instruction.rb +309 -0
  150. data/lib/payments/models/payments_link.rb +62 -0
  151. data/lib/payments/models/payments_network_token_payment_instrument.rb +126 -0
  152. data/lib/payments/models/payments_partial_refund_request.rb +68 -0
  153. data/lib/payments/models/payments_partial_settle.rb +72 -0
  154. data/lib/payments/models/payments_partial_settle_request.rb +81 -0
  155. data/lib/payments/models/payments_payment_facilitator.rb +88 -0
  156. data/lib/payments/models/payments_payment_instrument.rb +78 -0
  157. data/lib/payments/models/payments_phone_account.rb +69 -0
  158. data/lib/payments/models/payments_recipient.rb +110 -0
  159. data/lib/payments/models/payments_recipient_account.rb +81 -0
  160. data/lib/payments/models/payments_recipient_address.rb +72 -0
  161. data/lib/payments/models/payments_response.rb +69 -0
  162. data/lib/payments/models/payments_response202.rb +90 -0
  163. data/lib/payments/models/payments_response_payment_instrument.rb +158 -0
  164. data/lib/payments/models/payments_sequence.rb +69 -0
  165. data/lib/payments/models/payments_settle.rb +72 -0
  166. data/lib/payments/models/payments_shipping_address.rb +148 -0
  167. data/lib/payments/models/payments_social_network_account.rb +71 -0
  168. data/lib/payments/models/payments_sub_merchant.rb +108 -0
  169. data/lib/payments/models/payments_sub_merchant_address.rb +99 -0
  170. data/lib/payments/models/payments_subscription_customer_agreement.rb +106 -0
  171. data/lib/payments/models/payments_three_ds.rb +217 -0
  172. data/lib/payments/models/payments_transfer_address.rb +112 -0
  173. data/lib/payments/models/payments_unscheduled_customer_agreement.rb +87 -0
  174. data/lib/payments/models/payments_wallet_account.rb +70 -0
  175. data/lib/payments/models/placement_enum.rb +21 -0
  176. data/lib/payments/models/pq_querybydaterange200_response.rb +68 -0
  177. data/lib/payments/models/pq_querybypaymentid200_response.rb +230 -0
  178. data/lib/payments/models/pq_queryhistoricalpayments200_response.rb +72 -0
  179. data/lib/payments/models/preference_enum.rb +29 -0
  180. data/lib/payments/models/preferred_card_brand_enum.rb +51 -0
  181. data/lib/payments/models/purpose_enum.rb +78 -0
  182. data/lib/payments/models/query_action_list.rb +114 -0
  183. data/lib/payments/models/query_events_response.rb +71 -0
  184. data/lib/payments/models/reason_enum.rb +50 -0
  185. data/lib/payments/models/refund_failed.rb +94 -0
  186. data/lib/payments/models/refund_request_submitted.rb +94 -0
  187. data/lib/payments/models/refund_requested.rb +124 -0
  188. data/lib/payments/models/refund_response.rb +71 -0
  189. data/lib/payments/models/refund_timed_out.rb +94 -0
  190. data/lib/payments/models/result_enum.rb +29 -0
  191. data/lib/payments/models/reversal_failed.rb +94 -0
  192. data/lib/payments/models/reversal_request_submitted.rb +94 -0
  193. data/lib/payments/models/reversal_requested.rb +103 -0
  194. data/lib/payments/models/reversal_timed_out.rb +94 -0
  195. data/lib/payments/models/risk_enum.rb +29 -0
  196. data/lib/payments/models/risk_factor.rb +82 -0
  197. data/lib/payments/models/routing.rb +74 -0
  198. data/lib/payments/models/sale_failed.rb +103 -0
  199. data/lib/payments/models/sale_refused.rb +124 -0
  200. data/lib/payments/models/sale_requested.rb +94 -0
  201. data/lib/payments/models/sale_succeeded.rb +104 -0
  202. data/lib/payments/models/sale_timed_out.rb +94 -0
  203. data/lib/payments/models/scheme.rb +75 -0
  204. data/lib/payments/models/self1.rb +72 -0
  205. data/lib/payments/models/self2.rb +62 -0
  206. data/lib/payments/models/self3.rb +62 -0
  207. data/lib/payments/models/sent_for_cancellation_response.rb +185 -0
  208. data/lib/payments/models/sent_for_settlement_action_list.rb +76 -0
  209. data/lib/payments/models/sent_for_settlement_response.rb +195 -0
  210. data/lib/payments/models/session_payment_instrument.rb +119 -0
  211. data/lib/payments/models/settle_action_list.rb +76 -0
  212. data/lib/payments/models/settle_response.rb +81 -0
  213. data/lib/payments/models/settlement.rb +88 -0
  214. data/lib/payments/models/settlement_failed.rb +94 -0
  215. data/lib/payments/models/settlement_request_submitted.rb +94 -0
  216. data/lib/payments/models/settlement_requested.rb +125 -0
  217. data/lib/payments/models/settlement_timed_out.rb +94 -0
  218. data/lib/payments/models/shipping.rb +130 -0
  219. data/lib/payments/models/stored_card_usage1_enum.rb +24 -0
  220. data/lib/payments/models/stored_card_usage_enum.rb +24 -0
  221. data/lib/payments/models/time_frame_enum.rb +29 -0
  222. data/lib/payments/models/token.rb +168 -0
  223. data/lib/payments/models/token_creation.rb +95 -0
  224. data/lib/payments/models/token_payment_instrument.rb +118 -0
  225. data/lib/payments/models/token_response_conflicts.rb +90 -0
  226. data/lib/payments/models/transaction_history.rb +127 -0
  227. data/lib/payments/models/transaction_type1_enum.rb +26 -0
  228. data/lib/payments/models/transaction_type_enum.rb +26 -0
  229. data/lib/payments/models/type10_enum.rb +23 -0
  230. data/lib/payments/models/type12_enum.rb +35 -0
  231. data/lib/payments/models/type1_enum.rb +26 -0
  232. data/lib/payments/models/type2_enum.rb +23 -0
  233. data/lib/payments/models/type3_enum.rb +20 -0
  234. data/lib/payments/models/type4_enum.rb +20 -0
  235. data/lib/payments/models/type5_enum.rb +41 -0
  236. data/lib/payments/models/type6_enum.rb +29 -0
  237. data/lib/payments/models/type7_enum.rb +23 -0
  238. data/lib/payments/models/type8_enum.rb +23 -0
  239. data/lib/payments/models/type9_enum.rb +35 -0
  240. data/lib/payments/models/type_enum.rb +23 -0
  241. data/lib/payments/models/unsuccessful_authentication_response.rb +76 -0
  242. data/lib/payments/models/updated_payment_instrument.rb +159 -0
  243. data/lib/payments/models/updated_payment_instrument1.rb +93 -0
  244. data/lib/payments/models/user_type_enum.rb +35 -0
  245. data/lib/payments/models/value.rb +94 -0
  246. data/lib/payments/models/value1.rb +91 -0
  247. data/lib/payments/models/value2.rb +91 -0
  248. data/lib/payments/models/value3.rb +91 -0
  249. data/lib/payments/models/value4.rb +91 -0
  250. data/lib/payments/models/verification.rb +173 -0
  251. data/lib/payments/models/wallet_payment_instrument.rb +100 -0
  252. data/lib/payments/models/window_size_enum.rb +34 -0
  253. data/lib/payments/models/wp_api_version_enum.rb +20 -0
  254. data/lib/payments/utilities/date_time_helper.rb +11 -0
  255. data/lib/payments/utilities/file_wrapper.rb +28 -0
  256. data/lib/payments/utilities/union_type_lookup.rb +78 -0
  257. data/lib/payments.rb +280 -0
  258. data/test/controllers/controller_test_base.rb +29 -0
  259. data/test/controllers/test_payment_controller.rb +161 -0
  260. data/test/controllers/test_payment_queries_controller.rb +68 -0
  261. data/test/http_response_catcher.rb +19 -0
  262. metadata +374 -0
@@ -0,0 +1,81 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # PaymentsPartialSettleRequest Model.
8
+ class PaymentsPartialSettleRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :reference
15
+
16
+ # The sequence number and total number of expected partial settlement
17
+ # requests for the payment.
18
+ # @return [PaymentsSequence]
19
+ attr_accessor :sequence
20
+
21
+ # The sequence number and total number of expected partial settlement
22
+ # requests for the payment.
23
+ # @return [Value]
24
+ attr_accessor :value
25
+
26
+ # A mapping from model property names to API property names.
27
+ def self.names
28
+ @_hash = {} if @_hash.nil?
29
+ @_hash['reference'] = 'reference'
30
+ @_hash['sequence'] = 'sequence'
31
+ @_hash['value'] = 'value'
32
+ @_hash
33
+ end
34
+
35
+ # An array for optional fields
36
+ def self.optionals
37
+ %w[
38
+ sequence
39
+ ]
40
+ end
41
+
42
+ # An array for nullable fields
43
+ def self.nullables
44
+ []
45
+ end
46
+
47
+ def initialize(reference = nil, value = nil, sequence = SKIP)
48
+ @reference = reference
49
+ @sequence = sequence unless sequence == SKIP
50
+ @value = value
51
+ end
52
+
53
+ # Creates an instance of the object from a hash.
54
+ def self.from_hash(hash)
55
+ return nil unless hash
56
+
57
+ # Extract variables from the hash.
58
+ reference = hash.key?('reference') ? hash['reference'] : nil
59
+ value = Value.from_hash(hash['value']) if hash['value']
60
+ sequence = PaymentsSequence.from_hash(hash['sequence']) if hash['sequence']
61
+
62
+ # Create object from extracted values.
63
+ PaymentsPartialSettleRequest.new(reference,
64
+ value,
65
+ sequence)
66
+ end
67
+
68
+ # Provides a human-readable string representation of the object.
69
+ def to_s
70
+ class_name = self.class.name.split('::').last
71
+ "<#{class_name} reference: #{@reference}, sequence: #{@sequence}, value: #{@value}>"
72
+ end
73
+
74
+ # Provides a debugging-friendly string with detailed object information.
75
+ def inspect
76
+ class_name = self.class.name.split('::').last
77
+ "<#{class_name} reference: #{@reference.inspect}, sequence: #{@sequence.inspect}, value:"\
78
+ " #{@value.inspect}>"
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,88 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # An object containing Payment Facilitator information. This information is
8
+ # required for every authorization [__only if you are a Payment
9
+ # Facilitator__](/products/payments/enable-features/payment-facilitator)
10
+ class PaymentsPaymentFacilitator < BaseModel
11
+ SKIP = Object.new
12
+ private_constant :SKIP
13
+
14
+ # Your payment facilitator ID received from Mastercard, Visa and Amex.
15
+ # @return [String]
16
+ attr_accessor :scheme_id
17
+
18
+ # Independent Sales Organization (ISO) ID provided by Mastercard.
19
+ # @return [String]
20
+ attr_accessor :independent_sales_organization_id
21
+
22
+ # Your sub-merchant's details.
23
+ # @return [PaymentsSubMerchant]
24
+ attr_accessor :sub_merchant
25
+
26
+ # A mapping from model property names to API property names.
27
+ def self.names
28
+ @_hash = {} if @_hash.nil?
29
+ @_hash['scheme_id'] = 'schemeId'
30
+ @_hash['independent_sales_organization_id'] =
31
+ 'independentSalesOrganizationId'
32
+ @_hash['sub_merchant'] = 'subMerchant'
33
+ @_hash
34
+ end
35
+
36
+ # An array for optional fields
37
+ def self.optionals
38
+ %w[
39
+ independent_sales_organization_id
40
+ ]
41
+ end
42
+
43
+ # An array for nullable fields
44
+ def self.nullables
45
+ []
46
+ end
47
+
48
+ def initialize(scheme_id = nil, sub_merchant = nil,
49
+ independent_sales_organization_id = SKIP)
50
+ @scheme_id = scheme_id
51
+ unless independent_sales_organization_id == SKIP
52
+ @independent_sales_organization_id =
53
+ independent_sales_organization_id
54
+ end
55
+ @sub_merchant = sub_merchant
56
+ end
57
+
58
+ # Creates an instance of the object from a hash.
59
+ def self.from_hash(hash)
60
+ return nil unless hash
61
+
62
+ # Extract variables from the hash.
63
+ scheme_id = hash.key?('schemeId') ? hash['schemeId'] : nil
64
+ sub_merchant = PaymentsSubMerchant.from_hash(hash['subMerchant']) if hash['subMerchant']
65
+ independent_sales_organization_id =
66
+ hash.key?('independentSalesOrganizationId') ? hash['independentSalesOrganizationId'] : SKIP
67
+
68
+ # Create object from extracted values.
69
+ PaymentsPaymentFacilitator.new(scheme_id,
70
+ sub_merchant,
71
+ independent_sales_organization_id)
72
+ end
73
+
74
+ # Provides a human-readable string representation of the object.
75
+ def to_s
76
+ class_name = self.class.name.split('::').last
77
+ "<#{class_name} scheme_id: #{@scheme_id}, independent_sales_organization_id:"\
78
+ " #{@independent_sales_organization_id}, sub_merchant: #{@sub_merchant}>"
79
+ end
80
+
81
+ # Provides a debugging-friendly string with detailed object information.
82
+ def inspect
83
+ class_name = self.class.name.split('::').last
84
+ "<#{class_name} scheme_id: #{@scheme_id.inspect}, independent_sales_organization_id:"\
85
+ " #{@independent_sales_organization_id.inspect}, sub_merchant: #{@sub_merchant.inspect}>"
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,78 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # PaymentsPaymentInstrument Model.
8
+ class PaymentsPaymentInstrument < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :type
15
+
16
+ # Discriminators mapping.
17
+ def self.discriminators
18
+ if @_discriminators.nil?
19
+ @_discriminators = {}
20
+ @_discriminators['plain'] = PaymentsCardPlainPaymentInstrument
21
+ @_discriminators['checkout'] = SessionPaymentInstrument
22
+ @_discriminators['token'] = TokenPaymentInstrument
23
+ end
24
+ @_discriminators
25
+ end
26
+
27
+ # A mapping from model property names to API property names.
28
+ def self.names
29
+ @_hash = {} if @_hash.nil?
30
+ @_hash['type'] = 'type'
31
+ @_hash
32
+ end
33
+
34
+ # An array for optional fields
35
+ def self.optionals
36
+ %w[
37
+ type
38
+ ]
39
+ end
40
+
41
+ # An array for nullable fields
42
+ def self.nullables
43
+ []
44
+ end
45
+
46
+ def initialize(type = 'PaymentsPaymentInstrument')
47
+ @type = type unless type == SKIP
48
+ end
49
+
50
+ # Creates an instance of the object from a hash.
51
+ def self.from_hash(hash)
52
+ return nil unless hash
53
+
54
+ # Delegate unboxing to another function if a discriminator
55
+ # value for a child class is present.
56
+ unboxer = discriminators[hash['type']]
57
+ return unboxer.send(:from_hash, hash) if unboxer
58
+
59
+ # Extract variables from the hash.
60
+ type = hash['type'] ||= 'PaymentsPaymentInstrument'
61
+
62
+ # Create object from extracted values.
63
+ PaymentsPaymentInstrument.new(type)
64
+ end
65
+
66
+ # Provides a human-readable string representation of the object.
67
+ def to_s
68
+ class_name = self.class.name.split('::').last
69
+ "<#{class_name} type: #{@type}>"
70
+ end
71
+
72
+ # Provides a debugging-friendly string with detailed object information.
73
+ def inspect
74
+ class_name = self.class.name.split('::').last
75
+ "<#{class_name} type: #{@type.inspect}>"
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,69 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require_relative 'payments_recipient_account'
7
+
8
+ module Payments
9
+ # PaymentsPhoneAccount Model.
10
+ class PaymentsPhoneAccount < PaymentsRecipientAccount
11
+ # Recipient's phone number.
12
+ # @return [String]
13
+ attr_accessor :phone_number
14
+
15
+ # A mapping from model property names to API property names.
16
+ def self.names
17
+ @_hash = {} if @_hash.nil?
18
+ @_hash['phone_number'] = 'phoneNumber'
19
+ @_hash = super().merge(@_hash)
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ _arr = []
26
+ (_arr << super()).flatten!
27
+ end
28
+
29
+ # An array for nullable fields
30
+ def self.nullables
31
+ _arr = []
32
+ (_arr << super()).flatten!
33
+ end
34
+
35
+ def initialize(phone_number = nil, type = 'phone')
36
+ @phone_number = phone_number
37
+
38
+ # Call the constructor of the base class
39
+ super(type)
40
+ end
41
+
42
+ # Creates an instance of the object from a hash.
43
+ def self.from_hash(hash)
44
+ return nil unless hash
45
+
46
+ # Extract variables from the hash.
47
+ phone_number = hash.key?('phoneNumber') ? hash['phoneNumber'] : nil
48
+ type = hash['type'] ||= 'phone'
49
+
50
+ # Create object from extracted values.
51
+ PaymentsPhoneAccount.new(phone_number,
52
+ type)
53
+ end
54
+
55
+ # Provides a human-readable string representation of the object.
56
+ def to_s
57
+ class_name = self.class.name.split('::').last
58
+ super_string = super().sub(/^<[^ ]+ /, '').sub(/>$/, '')
59
+ "<#{class_name} #{super_string}, phone_number: #{@phone_number}>"
60
+ end
61
+
62
+ # Provides a debugging-friendly string with detailed object information.
63
+ def inspect
64
+ class_name = self.class.name.split('::').last
65
+ super_string = super().inspect.sub(/^<[^ ]+ /, '').sub(/>$/, '')
66
+ "<#{class_name} #{super_string}, phone_number: #{@phone_number.inspect}>"
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,110 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # An object containing information about the recipient of financial services.
8
+ # Required for MCC 6012 transactions in the Visa Europe region. The recipient
9
+ # may or may not be the cardholder. Read more on how to set it up under our
10
+ # [__Financial
11
+ # Services__](/products/payments/enable-features/financial-services-mcc6012-mc
12
+ # c6051) guide.
13
+ class PaymentsRecipient < BaseModel
14
+ SKIP = Object.new
15
+ private_constant :SKIP
16
+
17
+ # The account number of the recipient. Either a bank account number or a
18
+ # partial card number.
19
+ # @return [String]
20
+ attr_accessor :account_reference
21
+
22
+ # The last name of the recipient.
23
+ # @return [String]
24
+ attr_accessor :last_name
25
+
26
+ # The last name of the recipient.
27
+ # @return [PaymentsRecipientAddress]
28
+ attr_accessor :address
29
+
30
+ # Recipient's date of birth.
31
+ # @return [Date]
32
+ attr_accessor :date_of_birth
33
+
34
+ # A mapping from model property names to API property names.
35
+ def self.names
36
+ @_hash = {} if @_hash.nil?
37
+ @_hash['account_reference'] = 'accountReference'
38
+ @_hash['last_name'] = 'lastName'
39
+ @_hash['address'] = 'address'
40
+ @_hash['date_of_birth'] = 'dateOfBirth'
41
+ @_hash
42
+ end
43
+
44
+ # An array for optional fields
45
+ def self.optionals
46
+ %w[
47
+ account_reference
48
+ last_name
49
+ address
50
+ date_of_birth
51
+ ]
52
+ end
53
+
54
+ # An array for nullable fields
55
+ def self.nullables
56
+ []
57
+ end
58
+
59
+ def initialize(account_reference = SKIP, last_name = SKIP, address = SKIP,
60
+ date_of_birth = SKIP)
61
+ @account_reference = account_reference unless account_reference == SKIP
62
+ @last_name = last_name unless last_name == SKIP
63
+ @address = address unless address == SKIP
64
+ @date_of_birth = date_of_birth unless date_of_birth == SKIP
65
+ end
66
+
67
+ # Creates an instance of the object from a hash.
68
+ def self.from_hash(hash)
69
+ return nil unless hash
70
+
71
+ # Extract variables from the hash.
72
+ account_reference =
73
+ hash.key?('accountReference') ? hash['accountReference'] : SKIP
74
+ last_name = hash.key?('lastName') ? hash['lastName'] : SKIP
75
+ address = PaymentsRecipientAddress.from_hash(hash['address']) if hash['address']
76
+ date_of_birth = hash.key?('dateOfBirth') ? hash['dateOfBirth'] : SKIP
77
+
78
+ # Create object from extracted values.
79
+ PaymentsRecipient.new(account_reference,
80
+ last_name,
81
+ address,
82
+ date_of_birth)
83
+ end
84
+
85
+ # Validates an instance of the object from a given value.
86
+ # @param [PaymentsRecipient | Hash] The value against the validation is performed.
87
+ def self.validate(value)
88
+ return true if value.instance_of? self
89
+
90
+ return false unless value.instance_of? Hash
91
+
92
+ true
93
+ end
94
+
95
+ # Provides a human-readable string representation of the object.
96
+ def to_s
97
+ class_name = self.class.name.split('::').last
98
+ "<#{class_name} account_reference: #{@account_reference}, last_name: #{@last_name},"\
99
+ " address: #{@address}, date_of_birth: #{@date_of_birth}>"
100
+ end
101
+
102
+ # Provides a debugging-friendly string with detailed object information.
103
+ def inspect
104
+ class_name = self.class.name.split('::').last
105
+ "<#{class_name} account_reference: #{@account_reference.inspect}, last_name:"\
106
+ " #{@last_name.inspect}, address: #{@address.inspect}, date_of_birth:"\
107
+ " #{@date_of_birth.inspect}>"
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,81 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # An object for the account details of the recipient.
8
+ class PaymentsRecipientAccount < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :type
15
+
16
+ # Discriminators mapping.
17
+ def self.discriminators
18
+ if @_discriminators.nil?
19
+ @_discriminators = {}
20
+ @_discriminators['bankAccount'] = PaymentsBankAccount
21
+ @_discriminators['card'] = PaymentsCardAccount
22
+ @_discriminators['email'] = PaymentsEmailAccount
23
+ @_discriminators['phone'] = PaymentsPhoneAccount
24
+ @_discriminators['socialNetwork'] = PaymentsSocialNetworkAccount
25
+ @_discriminators['merchantWallet'] = PaymentsWalletAccount
26
+ end
27
+ @_discriminators
28
+ end
29
+
30
+ # A mapping from model property names to API property names.
31
+ def self.names
32
+ @_hash = {} if @_hash.nil?
33
+ @_hash['type'] = 'type'
34
+ @_hash
35
+ end
36
+
37
+ # An array for optional fields
38
+ def self.optionals
39
+ %w[
40
+ type
41
+ ]
42
+ end
43
+
44
+ # An array for nullable fields
45
+ def self.nullables
46
+ []
47
+ end
48
+
49
+ def initialize(type = 'PaymentsRecipientAccount')
50
+ @type = type unless type == SKIP
51
+ end
52
+
53
+ # Creates an instance of the object from a hash.
54
+ def self.from_hash(hash)
55
+ return nil unless hash
56
+
57
+ # Delegate unboxing to another function if a discriminator
58
+ # value for a child class is present.
59
+ unboxer = discriminators[hash['type']]
60
+ return unboxer.send(:from_hash, hash) if unboxer
61
+
62
+ # Extract variables from the hash.
63
+ type = hash['type'] ||= 'PaymentsRecipientAccount'
64
+
65
+ # Create object from extracted values.
66
+ PaymentsRecipientAccount.new(type)
67
+ end
68
+
69
+ # Provides a human-readable string representation of the object.
70
+ def to_s
71
+ class_name = self.class.name.split('::').last
72
+ "<#{class_name} type: #{@type}>"
73
+ end
74
+
75
+ # Provides a debugging-friendly string with detailed object information.
76
+ def inspect
77
+ class_name = self.class.name.split('::').last
78
+ "<#{class_name} type: #{@type.inspect}>"
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,72 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # PaymentsRecipientAddress Model.
8
+ class PaymentsRecipientAddress < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The postal code of the recipient. Relevant only in the UK.
13
+ # @return [String]
14
+ attr_accessor :postal_code
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['postal_code'] = 'postalCode'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ %w[
26
+ postal_code
27
+ ]
28
+ end
29
+
30
+ # An array for nullable fields
31
+ def self.nullables
32
+ []
33
+ end
34
+
35
+ def initialize(postal_code = SKIP)
36
+ @postal_code = postal_code unless postal_code == SKIP
37
+ end
38
+
39
+ # Creates an instance of the object from a hash.
40
+ def self.from_hash(hash)
41
+ return nil unless hash
42
+
43
+ # Extract variables from the hash.
44
+ postal_code = hash.key?('postalCode') ? hash['postalCode'] : SKIP
45
+
46
+ # Create object from extracted values.
47
+ PaymentsRecipientAddress.new(postal_code)
48
+ end
49
+
50
+ # Validates an instance of the object from a given value.
51
+ # @param [PaymentsRecipientAddress | Hash] The value against the validation is performed.
52
+ def self.validate(value)
53
+ return true if value.instance_of? self
54
+
55
+ return false unless value.instance_of? Hash
56
+
57
+ true
58
+ end
59
+
60
+ # Provides a human-readable string representation of the object.
61
+ def to_s
62
+ class_name = self.class.name.split('::').last
63
+ "<#{class_name} postal_code: #{@postal_code}>"
64
+ end
65
+
66
+ # Provides a debugging-friendly string with detailed object information.
67
+ def inspect
68
+ class_name = self.class.name.split('::').last
69
+ "<#{class_name} postal_code: #{@postal_code.inspect}>"
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,69 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require_relative 'device_data_response201'
7
+
8
+ module Payments
9
+ # PaymentsResponse Model.
10
+ class PaymentsResponse < DeviceDataResponse201
11
+
12
+
13
+ # A mapping from model property names to API property names.
14
+ def self.names
15
+ @_hash = {} if @_hash.nil?
16
+
17
+ @_hash = super().merge(@_hash)
18
+ @_hash
19
+ end
20
+
21
+ # An array for optional fields
22
+ def self.optionals
23
+ _arr = []
24
+ (_arr << super()).flatten!
25
+ end
26
+
27
+ # An array for nullable fields
28
+ def self.nullables
29
+ _arr = []
30
+ (_arr << super()).flatten!
31
+ end
32
+
33
+ def initialize(outcome = '3dsUnavailable', transaction_reference = SKIP)
34
+
35
+
36
+ # Call the constructor of the base class
37
+ super(outcome,
38
+ transaction_reference)
39
+ end
40
+
41
+ # Creates an instance of the object from a hash.
42
+ def self.from_hash(hash)
43
+ return nil unless hash
44
+
45
+ # Extract variables from the hash.
46
+ outcome = hash['outcome'] ||= '3dsUnavailable'
47
+ transaction_reference =
48
+ hash.key?('transactionReference') ? hash['transactionReference'] : SKIP
49
+
50
+ # Create object from extracted values.
51
+ PaymentsResponse.new(outcome,
52
+ transaction_reference)
53
+ end
54
+
55
+ # Provides a human-readable string representation of the object.
56
+ def to_s
57
+ class_name = self.class.name.split('::').last
58
+ super_string = super().sub(/^<[^ ]+ /, '').sub(/>$/, '')
59
+ "<#{class_name} #{super_string}>"
60
+ end
61
+
62
+ # Provides a debugging-friendly string with detailed object information.
63
+ def inspect
64
+ class_name = self.class.name.split('::').last
65
+ super_string = super().inspect.sub(/^<[^ ]+ /, '').sub(/>$/, '')
66
+ "<#{class_name} #{super_string}>"
67
+ end
68
+ end
69
+ end