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,106 @@
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 that contains information about the card used.
8
+ class Card1 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # An object that contains information about the card number.
13
+ # @return [Number]
14
+ attr_accessor :number
15
+
16
+ # The expiry date of the card or network token (where the supplied
17
+ # paymentInstrument was `card/wallet+applepay`, `card/wallet+googlepay`,
18
+ # `card/networkToken`, `card/networkToken+applepay` or
19
+ # `card/networkToken+googlepay`).
20
+ # @return [ExpiryDate1]
21
+ attr_accessor :expiry_date
22
+
23
+ # How the card is funded.
24
+ # @return [FundingTypeEnum]
25
+ attr_accessor :funding_type
26
+
27
+ # The card brand that the transaction was processed with. Sometimes referred
28
+ # to as the network or scheme.
29
+ # @return [String]
30
+ attr_accessor :brand
31
+
32
+ # A mapping from model property names to API property names.
33
+ def self.names
34
+ @_hash = {} if @_hash.nil?
35
+ @_hash['number'] = 'number'
36
+ @_hash['expiry_date'] = 'expiryDate'
37
+ @_hash['funding_type'] = 'fundingType'
38
+ @_hash['brand'] = 'brand'
39
+ @_hash
40
+ end
41
+
42
+ # An array for optional fields
43
+ def self.optionals
44
+ %w[
45
+ number
46
+ expiry_date
47
+ funding_type
48
+ brand
49
+ ]
50
+ end
51
+
52
+ # An array for nullable fields
53
+ def self.nullables
54
+ []
55
+ end
56
+
57
+ def initialize(number = SKIP, expiry_date = SKIP, funding_type = SKIP,
58
+ brand = SKIP)
59
+ @number = number unless number == SKIP
60
+ @expiry_date = expiry_date unless expiry_date == SKIP
61
+ @funding_type = funding_type unless funding_type == SKIP
62
+ @brand = brand unless brand == SKIP
63
+ end
64
+
65
+ # Creates an instance of the object from a hash.
66
+ def self.from_hash(hash)
67
+ return nil unless hash
68
+
69
+ # Extract variables from the hash.
70
+ number = Number.from_hash(hash['number']) if hash['number']
71
+ expiry_date = ExpiryDate1.from_hash(hash['expiryDate']) if hash['expiryDate']
72
+ funding_type = hash.key?('fundingType') ? hash['fundingType'] : SKIP
73
+ brand = hash.key?('brand') ? hash['brand'] : SKIP
74
+
75
+ # Create object from extracted values.
76
+ Card1.new(number,
77
+ expiry_date,
78
+ funding_type,
79
+ brand)
80
+ end
81
+
82
+ # Validates an instance of the object from a given value.
83
+ # @param [Card1 | Hash] The value against the validation is performed.
84
+ def self.validate(value)
85
+ return true if value.instance_of? self
86
+
87
+ return false unless value.instance_of? Hash
88
+
89
+ true
90
+ end
91
+
92
+ # Provides a human-readable string representation of the object.
93
+ def to_s
94
+ class_name = self.class.name.split('::').last
95
+ "<#{class_name} number: #{@number}, expiry_date: #{@expiry_date}, funding_type:"\
96
+ " #{@funding_type}, brand: #{@brand}>"
97
+ end
98
+
99
+ # Provides a debugging-friendly string with detailed object information.
100
+ def inspect
101
+ class_name = self.class.name.split('::').last
102
+ "<#{class_name} number: #{@number.inspect}, expiry_date: #{@expiry_date.inspect},"\
103
+ " funding_type: #{@funding_type.inspect}, brand: #{@brand.inspect}>"
104
+ end
105
+ end
106
+ 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
+ # An object that contains information about the card used.
8
+ class Card3 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # An object that contains information about the card number.
13
+ # @return [Number3]
14
+ attr_accessor :number
15
+
16
+ # An object that contains information about the brand. The brand values can
17
+ # be Visa, Mastercard etc.
18
+ # @return [Object]
19
+ attr_accessor :brand
20
+
21
+ # A mapping from model property names to API property names.
22
+ def self.names
23
+ @_hash = {} if @_hash.nil?
24
+ @_hash['number'] = 'number'
25
+ @_hash['brand'] = 'brand'
26
+ @_hash
27
+ end
28
+
29
+ # An array for optional fields
30
+ def self.optionals
31
+ %w[
32
+ number
33
+ brand
34
+ ]
35
+ end
36
+
37
+ # An array for nullable fields
38
+ def self.nullables
39
+ []
40
+ end
41
+
42
+ def initialize(number = SKIP, brand = SKIP)
43
+ @number = number unless number == SKIP
44
+ @brand = brand unless brand == SKIP
45
+ end
46
+
47
+ # Creates an instance of the object from a hash.
48
+ def self.from_hash(hash)
49
+ return nil unless hash
50
+
51
+ # Extract variables from the hash.
52
+ number = Number3.from_hash(hash['number']) if hash['number']
53
+ brand = hash.key?('brand') ? hash['brand'] : SKIP
54
+
55
+ # Create object from extracted values.
56
+ Card3.new(number,
57
+ brand)
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} number: #{@number}, brand: #{@brand}>"
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} number: #{@number.inspect}, brand: #{@brand.inspect}>"
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,195 @@
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
+ # CardAuthorizedPaymentResponse Model.
10
+ class CardAuthorizedPaymentResponse < DeviceDataResponse201
11
+ # TODO: Write general description for this method
12
+ # @return [PaymentsResponsePaymentInstrument]
13
+ attr_accessor :payment_instrument
14
+
15
+ # Details of the updated payment instrument.
16
+ # @return [UpdatedPaymentInstrument]
17
+ attr_accessor :updated_payment_instrument
18
+
19
+ # An object containing information returned by the issuer.
20
+ # @return [Issuer]
21
+ attr_accessor :issuer
22
+
23
+ # Any risk factors which have been identified for the authorization. This
24
+ # section will not appear if no risks are identified.
25
+ # @return [Array[RiskFactor]]
26
+ attr_accessor :risk_factors
27
+
28
+ # Details of the outcome of the Fraud assessment
29
+ # @return [Fraud]
30
+ attr_accessor :fraud
31
+
32
+ # Details of the outcome of the 3DS authentication
33
+ # @return [Verification]
34
+ attr_accessor :three_ds
35
+
36
+ # An object containing information about the exemption.
37
+ # @return [PaymentsExemption]
38
+ attr_accessor :exemption
39
+
40
+ # An object containing information returned by the scheme.
41
+ # @return [String]
42
+ attr_accessor :scheme_reference
43
+
44
+ # Details of the token created
45
+ # @return [Token]
46
+ attr_accessor :token
47
+
48
+ # Return details about the status of the payment
49
+ # @return [PaymentsLink]
50
+ attr_accessor :links
51
+
52
+ # Return details about the status of the payment
53
+ # @return [AuthorizationActionList]
54
+ attr_accessor :actions
55
+
56
+ # A mapping from model property names to API property names.
57
+ def self.names
58
+ @_hash = {} if @_hash.nil?
59
+ @_hash['payment_instrument'] = 'paymentInstrument'
60
+ @_hash['updated_payment_instrument'] = 'updatedPaymentInstrument'
61
+ @_hash['issuer'] = 'issuer'
62
+ @_hash['risk_factors'] = 'riskFactors'
63
+ @_hash['fraud'] = 'fraud'
64
+ @_hash['three_ds'] = 'threeDS'
65
+ @_hash['exemption'] = 'exemption'
66
+ @_hash['scheme_reference'] = 'schemeReference'
67
+ @_hash['token'] = 'token'
68
+ @_hash['links'] = '_links'
69
+ @_hash['actions'] = '_actions'
70
+ @_hash = super().merge(@_hash)
71
+ @_hash
72
+ end
73
+
74
+ # An array for optional fields
75
+ def self.optionals
76
+ _arr = %w[
77
+ payment_instrument
78
+ updated_payment_instrument
79
+ issuer
80
+ risk_factors
81
+ fraud
82
+ three_ds
83
+ exemption
84
+ scheme_reference
85
+ token
86
+ links
87
+ actions
88
+ ]
89
+ (_arr << super()).flatten!
90
+ end
91
+
92
+ # An array for nullable fields
93
+ def self.nullables
94
+ _arr = []
95
+ (_arr << super()).flatten!
96
+ end
97
+
98
+ def initialize(payment_instrument = SKIP, updated_payment_instrument = SKIP,
99
+ issuer = SKIP, risk_factors = SKIP, fraud = SKIP,
100
+ three_ds = SKIP, exemption = SKIP, scheme_reference = SKIP,
101
+ token = SKIP, links = SKIP, actions = SKIP,
102
+ outcome = 'authorized', transaction_reference = SKIP)
103
+ @payment_instrument = payment_instrument unless payment_instrument == SKIP
104
+ unless updated_payment_instrument == SKIP
105
+ @updated_payment_instrument =
106
+ updated_payment_instrument
107
+ end
108
+ @issuer = issuer unless issuer == SKIP
109
+ @risk_factors = risk_factors unless risk_factors == SKIP
110
+ @fraud = fraud unless fraud == SKIP
111
+ @three_ds = three_ds unless three_ds == SKIP
112
+ @exemption = exemption unless exemption == SKIP
113
+ @scheme_reference = scheme_reference unless scheme_reference == SKIP
114
+ @token = token unless token == SKIP
115
+ @links = links unless links == SKIP
116
+ @actions = actions unless actions == SKIP
117
+
118
+ # Call the constructor of the base class
119
+ super(outcome,
120
+ transaction_reference)
121
+ end
122
+
123
+ # Creates an instance of the object from a hash.
124
+ def self.from_hash(hash)
125
+ return nil unless hash
126
+
127
+ # Extract variables from the hash.
128
+ payment_instrument = PaymentsResponsePaymentInstrument.from_hash(hash['paymentInstrument']) if
129
+ hash['paymentInstrument']
130
+ if hash['updatedPaymentInstrument']
131
+ updated_payment_instrument = UpdatedPaymentInstrument.from_hash(hash['updatedPaymentInstrument'])
132
+ end
133
+ issuer = Issuer.from_hash(hash['issuer']) if hash['issuer']
134
+ # Parameter is an array, so we need to iterate through it
135
+ risk_factors = nil
136
+ unless hash['riskFactors'].nil?
137
+ risk_factors = []
138
+ hash['riskFactors'].each do |structure|
139
+ risk_factors << (RiskFactor.from_hash(structure) if structure)
140
+ end
141
+ end
142
+
143
+ risk_factors = SKIP unless hash.key?('riskFactors')
144
+ fraud = Fraud.from_hash(hash['fraud']) if hash['fraud']
145
+ three_ds = Verification.from_hash(hash['threeDS']) if hash['threeDS']
146
+ exemption = PaymentsExemption.from_hash(hash['exemption']) if hash['exemption']
147
+ scheme_reference =
148
+ hash.key?('schemeReference') ? hash['schemeReference'] : SKIP
149
+ token = Token.from_hash(hash['token']) if hash['token']
150
+ links = PaymentsLink.from_hash(hash['_links']) if hash['_links']
151
+ actions = AuthorizationActionList.from_hash(hash['_actions']) if hash['_actions']
152
+ outcome = hash['outcome'] ||= 'authorized'
153
+ transaction_reference =
154
+ hash.key?('transactionReference') ? hash['transactionReference'] : SKIP
155
+
156
+ # Create object from extracted values.
157
+ CardAuthorizedPaymentResponse.new(payment_instrument,
158
+ updated_payment_instrument,
159
+ issuer,
160
+ risk_factors,
161
+ fraud,
162
+ three_ds,
163
+ exemption,
164
+ scheme_reference,
165
+ token,
166
+ links,
167
+ actions,
168
+ outcome,
169
+ transaction_reference)
170
+ end
171
+
172
+ # Provides a human-readable string representation of the object.
173
+ def to_s
174
+ class_name = self.class.name.split('::').last
175
+ super_string = super().sub(/^<[^ ]+ /, '').sub(/>$/, '')
176
+ "<#{class_name} #{super_string}, payment_instrument: #{@payment_instrument},"\
177
+ " updated_payment_instrument: #{@updated_payment_instrument}, issuer: #{@issuer},"\
178
+ " risk_factors: #{@risk_factors}, fraud: #{@fraud}, three_ds: #{@three_ds}, exemption:"\
179
+ " #{@exemption}, scheme_reference: #{@scheme_reference}, token: #{@token}, links: #{@links},"\
180
+ " actions: #{@actions}>"
181
+ end
182
+
183
+ # Provides a debugging-friendly string with detailed object information.
184
+ def inspect
185
+ class_name = self.class.name.split('::').last
186
+ super_string = super().inspect.sub(/^<[^ ]+ /, '').sub(/>$/, '')
187
+ "<#{class_name} #{super_string}, payment_instrument: #{@payment_instrument.inspect},"\
188
+ " updated_payment_instrument: #{@updated_payment_instrument.inspect}, issuer:"\
189
+ " #{@issuer.inspect}, risk_factors: #{@risk_factors.inspect}, fraud: #{@fraud.inspect},"\
190
+ " three_ds: #{@three_ds.inspect}, exemption: #{@exemption.inspect}, scheme_reference:"\
191
+ " #{@scheme_reference.inspect}, token: #{@token.inspect}, links: #{@links.inspect}, actions:"\
192
+ " #{@actions.inspect}>"
193
+ end
194
+ end
195
+ end
@@ -0,0 +1,76 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # CardPaymentInstrument Model.
8
+ class CardPaymentInstrument < 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['networkToken'] = PaymentsNetworkTokenPaymentInstrument
21
+ end
22
+ @_discriminators
23
+ end
24
+
25
+ # A mapping from model property names to API property names.
26
+ def self.names
27
+ @_hash = {} if @_hash.nil?
28
+ @_hash['type'] = 'type'
29
+ @_hash
30
+ end
31
+
32
+ # An array for optional fields
33
+ def self.optionals
34
+ %w[
35
+ type
36
+ ]
37
+ end
38
+
39
+ # An array for nullable fields
40
+ def self.nullables
41
+ []
42
+ end
43
+
44
+ def initialize(type = 'CardPaymentInstrument')
45
+ @type = type unless type == SKIP
46
+ end
47
+
48
+ # Creates an instance of the object from a hash.
49
+ def self.from_hash(hash)
50
+ return nil unless hash
51
+
52
+ # Delegate unboxing to another function if a discriminator
53
+ # value for a child class is present.
54
+ unboxer = discriminators[hash['type']]
55
+ return unboxer.send(:from_hash, hash) if unboxer
56
+
57
+ # Extract variables from the hash.
58
+ type = hash['type'] ||= 'CardPaymentInstrument'
59
+
60
+ # Create object from extracted values.
61
+ CardPaymentInstrument.new(type)
62
+ end
63
+
64
+ # Provides a human-readable string representation of the object.
65
+ def to_s
66
+ class_name = self.class.name.split('::').last
67
+ "<#{class_name} type: #{@type}>"
68
+ end
69
+
70
+ # Provides a debugging-friendly string with detailed object information.
71
+ def inspect
72
+ class_name = self.class.name.split('::').last
73
+ "<#{class_name} type: #{@type.inspect}>"
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,164 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require_relative 'payments_instruction'
7
+
8
+ module Payments
9
+ # CardPaymentsInstruction Model.
10
+ class CardPaymentsInstruction < PaymentsInstruction
11
+ # Contains details of the funds transfer request, which is a money movement
12
+ # for a reason other than the purchase of goods or services (also known as
13
+ # Account Funding Transaction (AFT)).
14
+ # Read more on how to set it up under our [__Account Funding
15
+ # Transactions__](/products/payments/enable-features/account-funding-transac
16
+ # tions) guide.
17
+ # @return [PaymentsFundsTransfer]
18
+ attr_accessor :funds_transfer
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['funds_transfer'] = 'fundsTransfer'
24
+ @_hash = super().merge(@_hash)
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ _arr = %w[
31
+ funds_transfer
32
+ ]
33
+ (_arr << super()).flatten!
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ _arr = []
39
+ (_arr << super()).flatten!
40
+ end
41
+
42
+ def initialize(payment_instrument = nil, narrative = nil, value = nil,
43
+ funds_transfer = SKIP, method = 'card',
44
+ token_creation = SKIP, debt_repayment = SKIP, fraud = SKIP,
45
+ three_ds = SKIP, exemption = SKIP, settlement = SKIP,
46
+ customer = SKIP, shipping = SKIP, customer_agreement = SKIP,
47
+ recipient = SKIP, consumer_bill_payment = SKIP,
48
+ request_account_updater = SKIP)
49
+ @funds_transfer = funds_transfer unless funds_transfer == SKIP
50
+
51
+ # Call the constructor of the base class
52
+ super(payment_instrument,
53
+ narrative,
54
+ value,
55
+ method,
56
+ token_creation,
57
+ debt_repayment,
58
+ fraud,
59
+ three_ds,
60
+ exemption,
61
+ settlement,
62
+ customer,
63
+ shipping,
64
+ customer_agreement,
65
+ recipient,
66
+ consumer_bill_payment,
67
+ request_account_updater)
68
+ end
69
+
70
+ # Creates an instance of the object from a hash.
71
+ def self.from_hash(hash)
72
+ return nil unless hash
73
+
74
+ # Extract variables from the hash.
75
+ payment_instrument = hash.key?('paymentInstrument') ? APIHelper.deserialize_union_type(
76
+ UnionTypeLookUp.get(:PaymentsInstructionPaymentInstrument), hash['paymentInstrument']
77
+ ) : nil
78
+ narrative = Narrative.from_hash(hash['narrative']) if hash['narrative']
79
+ value = Value.from_hash(hash['value']) if hash['value']
80
+ funds_transfer = PaymentsFundsTransfer.from_hash(hash['fundsTransfer']) if
81
+ hash['fundsTransfer']
82
+ method = hash['method'] ||= 'card'
83
+ token_creation = TokenCreation.from_hash(hash['tokenCreation']) if hash['tokenCreation']
84
+ debt_repayment = hash.key?('debtRepayment') ? hash['debtRepayment'] : SKIP
85
+ fraud = PaymentsFraud.from_hash(hash['fraud']) if hash['fraud']
86
+ three_ds = PaymentsThreeDS.from_hash(hash['threeDS']) if hash['threeDS']
87
+ exemption = Exemption.from_hash(hash['exemption']) if hash['exemption']
88
+ settlement = Settlement.from_hash(hash['settlement']) if hash['settlement']
89
+ customer = Customer.from_hash(hash['customer']) if hash['customer']
90
+ shipping = Shipping.from_hash(hash['shipping']) if hash['shipping']
91
+ customer_agreement = hash.key?('customerAgreement') ? APIHelper.deserialize_union_type(
92
+ UnionTypeLookUp.get(:PaymentsInstructionCustomerAgreement), hash['customerAgreement']
93
+ ) : SKIP
94
+ recipient = PaymentsRecipient.from_hash(hash['recipient']) if hash['recipient']
95
+ consumer_bill_payment =
96
+ hash.key?('consumerBillPayment') ? hash['consumerBillPayment'] : SKIP
97
+ request_account_updater =
98
+ hash.key?('requestAccountUpdater') ? hash['requestAccountUpdater'] : SKIP
99
+
100
+ # Create object from extracted values.
101
+ CardPaymentsInstruction.new(payment_instrument,
102
+ narrative,
103
+ value,
104
+ funds_transfer,
105
+ method,
106
+ token_creation,
107
+ debt_repayment,
108
+ fraud,
109
+ three_ds,
110
+ exemption,
111
+ settlement,
112
+ customer,
113
+ shipping,
114
+ customer_agreement,
115
+ recipient,
116
+ consumer_bill_payment,
117
+ request_account_updater)
118
+ end
119
+
120
+ # Validates an instance of the object from a given value.
121
+ # @param [CardPaymentsInstruction | Hash] The value against the validation is performed.
122
+ def self.validate(value)
123
+ if value.instance_of? self
124
+ return (
125
+ UnionTypeLookUp.get(:PaymentsInstructionPaymentInstrument)
126
+ .validate(value.payment_instrument) and
127
+ APIHelper.valid_type?(value.narrative,
128
+ ->(val) { Narrative.validate(val) },
129
+ is_model_hash: true) and
130
+ APIHelper.valid_type?(value.value,
131
+ ->(val) { Value.validate(val) },
132
+ is_model_hash: true)
133
+ )
134
+ end
135
+
136
+ return false unless value.instance_of? Hash
137
+
138
+ (
139
+ UnionTypeLookUp.get(:PaymentsInstructionPaymentInstrument)
140
+ .validate(value['paymentInstrument']) and
141
+ APIHelper.valid_type?(value['narrative'],
142
+ ->(val) { Narrative.validate(val) },
143
+ is_model_hash: true) and
144
+ APIHelper.valid_type?(value['value'],
145
+ ->(val) { Value.validate(val) },
146
+ is_model_hash: true)
147
+ )
148
+ end
149
+
150
+ # Provides a human-readable string representation of the object.
151
+ def to_s
152
+ class_name = self.class.name.split('::').last
153
+ super_string = super().sub(/^<[^ ]+ /, '').sub(/>$/, '')
154
+ "<#{class_name} #{super_string}, funds_transfer: #{@funds_transfer}>"
155
+ end
156
+
157
+ # Provides a debugging-friendly string with detailed object information.
158
+ def inspect
159
+ class_name = self.class.name.split('::').last
160
+ super_string = super().inspect.sub(/^<[^ ]+ /, '').sub(/>$/, '')
161
+ "<#{class_name} #{super_string}, funds_transfer: #{@funds_transfer.inspect}>"
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,23 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Whether the card is classed as a consumer card or a card for commercial use.
8
+ class CategoryEnum
9
+ CATEGORY_ENUM = [
10
+ # TODO: Write general description for COMMERCIAL
11
+ COMMERCIAL = 'commercial'.freeze,
12
+
13
+ # TODO: Write general description for CONSUMER
14
+ CONSUMER = 'consumer'.freeze
15
+ ].freeze
16
+
17
+ def self.validate(value)
18
+ return false if value.nil?
19
+
20
+ CATEGORY_ENUM.include?(value)
21
+ end
22
+ end
23
+ end