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,171 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # PaymentInstrument7 Model.
8
+ class PaymentInstrument7 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The type of instrument.
13
+ # @return [Type3Enum]
14
+ attr_accessor :type
15
+
16
+ # Customer's card number.
17
+ # @return [String]
18
+ attr_accessor :card_number
19
+
20
+ # The name on your customer's card. Required if instruction.tokenCreation
21
+ # is present. However we recommend that you supply this to improve
22
+ # authentication rates.
23
+ # @return [String]
24
+ attr_accessor :card_holder_name
25
+
26
+ # Contains your customer's card or token expiry date.
27
+ # @return [ExpiryDate]
28
+ attr_accessor :expiry_date
29
+
30
+ # CVC is a unique set of 3 or 4 numbers on the back of the card. Our API
31
+ # checks to see if the CVC supplied matches the CVC held by the issuing
32
+ # bank.
33
+ # @return [String]
34
+ attr_accessor :cvc
35
+
36
+ # Contains the billing address information.
37
+ # @return [BillingAddress]
38
+ attr_accessor :billing_address
39
+
40
+ # An object containing specific routing preferences.
41
+ # @return [Routing]
42
+ attr_accessor :routing
43
+
44
+ # An http address that contains your Checkout session providing the card
45
+ # details.
46
+ # @return [String]
47
+ attr_accessor :session_href
48
+
49
+ # An http address that contains your link to an Access Token.
50
+ # @return [String]
51
+ attr_accessor :href
52
+
53
+ # Href to the Checkout session providing the Card Verification Code
54
+ # (CVC).__Note:__ Provide a value in `cvcSessionHref` or `cvc`, never both.
55
+ # @return [String]
56
+ attr_accessor :cvc_session_href
57
+
58
+ # Href to the Checkout session providing the Card Verification Code
59
+ # (CVC).__Note:__ Provide a value in `cvcSessionHref` or `cvc`, never both.
60
+ # @return [String]
61
+ attr_accessor :wallet_token
62
+
63
+ # A mapping from model property names to API property names.
64
+ def self.names
65
+ @_hash = {} if @_hash.nil?
66
+ @_hash['type'] = 'type'
67
+ @_hash['card_number'] = 'cardNumber'
68
+ @_hash['card_holder_name'] = 'cardHolderName'
69
+ @_hash['expiry_date'] = 'expiryDate'
70
+ @_hash['cvc'] = 'cvc'
71
+ @_hash['billing_address'] = 'billingAddress'
72
+ @_hash['routing'] = 'routing'
73
+ @_hash['session_href'] = 'sessionHref'
74
+ @_hash['href'] = 'href'
75
+ @_hash['cvc_session_href'] = 'cvcSessionHref'
76
+ @_hash['wallet_token'] = 'walletToken'
77
+ @_hash
78
+ end
79
+
80
+ # An array for optional fields
81
+ def self.optionals
82
+ %w[
83
+ type
84
+ card_number
85
+ card_holder_name
86
+ expiry_date
87
+ cvc
88
+ billing_address
89
+ routing
90
+ session_href
91
+ href
92
+ cvc_session_href
93
+ wallet_token
94
+ ]
95
+ end
96
+
97
+ # An array for nullable fields
98
+ def self.nullables
99
+ []
100
+ end
101
+
102
+ def initialize(type = SKIP, card_number = SKIP, card_holder_name = SKIP,
103
+ expiry_date = SKIP, cvc = SKIP, billing_address = SKIP,
104
+ routing = SKIP, session_href = SKIP, href = SKIP,
105
+ cvc_session_href = SKIP, wallet_token = SKIP)
106
+ @type = type unless type == SKIP
107
+ @card_number = card_number unless card_number == SKIP
108
+ @card_holder_name = card_holder_name unless card_holder_name == SKIP
109
+ @expiry_date = expiry_date unless expiry_date == SKIP
110
+ @cvc = cvc unless cvc == SKIP
111
+ @billing_address = billing_address unless billing_address == SKIP
112
+ @routing = routing unless routing == SKIP
113
+ @session_href = session_href unless session_href == SKIP
114
+ @href = href unless href == SKIP
115
+ @cvc_session_href = cvc_session_href unless cvc_session_href == SKIP
116
+ @wallet_token = wallet_token unless wallet_token == SKIP
117
+ end
118
+
119
+ # Creates an instance of the object from a hash.
120
+ def self.from_hash(hash)
121
+ return nil unless hash
122
+
123
+ # Extract variables from the hash.
124
+ type = hash.key?('type') ? hash['type'] : SKIP
125
+ card_number = hash.key?('cardNumber') ? hash['cardNumber'] : SKIP
126
+ card_holder_name =
127
+ hash.key?('cardHolderName') ? hash['cardHolderName'] : SKIP
128
+ expiry_date = ExpiryDate.from_hash(hash['expiryDate']) if hash['expiryDate']
129
+ cvc = hash.key?('cvc') ? hash['cvc'] : SKIP
130
+ billing_address = BillingAddress.from_hash(hash['billingAddress']) if hash['billingAddress']
131
+ routing = Routing.from_hash(hash['routing']) if hash['routing']
132
+ session_href = hash.key?('sessionHref') ? hash['sessionHref'] : SKIP
133
+ href = hash.key?('href') ? hash['href'] : SKIP
134
+ cvc_session_href =
135
+ hash.key?('cvcSessionHref') ? hash['cvcSessionHref'] : SKIP
136
+ wallet_token = hash.key?('walletToken') ? hash['walletToken'] : SKIP
137
+
138
+ # Create object from extracted values.
139
+ PaymentInstrument7.new(type,
140
+ card_number,
141
+ card_holder_name,
142
+ expiry_date,
143
+ cvc,
144
+ billing_address,
145
+ routing,
146
+ session_href,
147
+ href,
148
+ cvc_session_href,
149
+ wallet_token)
150
+ end
151
+
152
+ # Provides a human-readable string representation of the object.
153
+ def to_s
154
+ class_name = self.class.name.split('::').last
155
+ "<#{class_name} type: #{@type}, card_number: #{@card_number}, card_holder_name:"\
156
+ " #{@card_holder_name}, expiry_date: #{@expiry_date}, cvc: #{@cvc}, billing_address:"\
157
+ " #{@billing_address}, routing: #{@routing}, session_href: #{@session_href}, href: #{@href},"\
158
+ " cvc_session_href: #{@cvc_session_href}, wallet_token: #{@wallet_token}>"
159
+ end
160
+
161
+ # Provides a debugging-friendly string with detailed object information.
162
+ def inspect
163
+ class_name = self.class.name.split('::').last
164
+ "<#{class_name} type: #{@type.inspect}, card_number: #{@card_number.inspect},"\
165
+ " card_holder_name: #{@card_holder_name.inspect}, expiry_date: #{@expiry_date.inspect}, cvc:"\
166
+ " #{@cvc.inspect}, billing_address: #{@billing_address.inspect}, routing:"\
167
+ " #{@routing.inspect}, session_href: #{@session_href.inspect}, href: #{@href.inspect},"\
168
+ " cvc_session_href: #{@cvc_session_href.inspect}, wallet_token: #{@wallet_token.inspect}>"
169
+ end
170
+ end
171
+ end
@@ -0,0 +1,187 @@
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
+ # PaymentRefusedResponse Model.
10
+ class PaymentRefusedResponse < DeviceDataResponse201
11
+ # Additional context on the refusal.
12
+ # @return [String]
13
+ attr_accessor :refusal_description
14
+
15
+ # Response code for the request.
16
+ # @return [String]
17
+ attr_accessor :refusal_code
18
+
19
+ # Contains suggested next actions for this request.
20
+ # @return [Advice]
21
+ attr_accessor :advice
22
+
23
+ # Contains suggested next actions for this request.
24
+ # @return [PaymentsResponsePaymentInstrument]
25
+ attr_accessor :payment_instrument
26
+
27
+ # Details of the updated payment instrument.
28
+ # @return [UpdatedPaymentInstrument]
29
+ attr_accessor :updated_payment_instrument
30
+
31
+ # Any risk factors which have been identified for the authorization. This
32
+ # section will not appear if no risks are identified.
33
+ # @return [Array[RiskFactor]]
34
+ attr_accessor :risk_factors
35
+
36
+ # Details of the outcome of the Fraud assessment
37
+ # @return [Fraud]
38
+ attr_accessor :fraud
39
+
40
+ # Details of the outcome of the 3DS authentication
41
+ # @return [Verification]
42
+ attr_accessor :three_ds
43
+
44
+ # An object containing information about the exemption.
45
+ # @return [PaymentsExemption]
46
+ attr_accessor :exemption
47
+
48
+ # Details of the token created
49
+ # @return [Token]
50
+ attr_accessor :token
51
+
52
+ # A mapping from model property names to API property names.
53
+ def self.names
54
+ @_hash = {} if @_hash.nil?
55
+ @_hash['refusal_description'] = 'refusalDescription'
56
+ @_hash['refusal_code'] = 'refusalCode'
57
+ @_hash['advice'] = 'advice'
58
+ @_hash['payment_instrument'] = 'paymentInstrument'
59
+ @_hash['updated_payment_instrument'] = 'updatedPaymentInstrument'
60
+ @_hash['risk_factors'] = 'riskFactors'
61
+ @_hash['fraud'] = 'fraud'
62
+ @_hash['three_ds'] = 'threeDS'
63
+ @_hash['exemption'] = 'exemption'
64
+ @_hash['token'] = 'token'
65
+ @_hash = super().merge(@_hash)
66
+ @_hash
67
+ end
68
+
69
+ # An array for optional fields
70
+ def self.optionals
71
+ _arr = %w[
72
+ refusal_description
73
+ refusal_code
74
+ advice
75
+ payment_instrument
76
+ updated_payment_instrument
77
+ risk_factors
78
+ fraud
79
+ three_ds
80
+ exemption
81
+ token
82
+ ]
83
+ (_arr << super()).flatten!
84
+ end
85
+
86
+ # An array for nullable fields
87
+ def self.nullables
88
+ _arr = []
89
+ (_arr << super()).flatten!
90
+ end
91
+
92
+ def initialize(refusal_description = SKIP, refusal_code = SKIP,
93
+ advice = SKIP, payment_instrument = SKIP,
94
+ updated_payment_instrument = SKIP, risk_factors = SKIP,
95
+ fraud = SKIP, three_ds = SKIP, exemption = SKIP,
96
+ token = SKIP, outcome = 'refused',
97
+ transaction_reference = SKIP)
98
+ @refusal_description = refusal_description unless refusal_description == SKIP
99
+ @refusal_code = refusal_code unless refusal_code == SKIP
100
+ @advice = advice unless advice == SKIP
101
+ @payment_instrument = payment_instrument unless payment_instrument == SKIP
102
+ unless updated_payment_instrument == SKIP
103
+ @updated_payment_instrument =
104
+ updated_payment_instrument
105
+ end
106
+ @risk_factors = risk_factors unless risk_factors == SKIP
107
+ @fraud = fraud unless fraud == SKIP
108
+ @three_ds = three_ds unless three_ds == SKIP
109
+ @exemption = exemption unless exemption == SKIP
110
+ @token = token unless token == SKIP
111
+
112
+ # Call the constructor of the base class
113
+ super(outcome,
114
+ transaction_reference)
115
+ end
116
+
117
+ # Creates an instance of the object from a hash.
118
+ def self.from_hash(hash)
119
+ return nil unless hash
120
+
121
+ # Extract variables from the hash.
122
+ refusal_description =
123
+ hash.key?('refusalDescription') ? hash['refusalDescription'] : SKIP
124
+ refusal_code = hash.key?('refusalCode') ? hash['refusalCode'] : SKIP
125
+ advice = Advice.from_hash(hash['advice']) if hash['advice']
126
+ payment_instrument = PaymentsResponsePaymentInstrument.from_hash(hash['paymentInstrument']) if
127
+ hash['paymentInstrument']
128
+ if hash['updatedPaymentInstrument']
129
+ updated_payment_instrument = UpdatedPaymentInstrument.from_hash(hash['updatedPaymentInstrument'])
130
+ end
131
+ # Parameter is an array, so we need to iterate through it
132
+ risk_factors = nil
133
+ unless hash['riskFactors'].nil?
134
+ risk_factors = []
135
+ hash['riskFactors'].each do |structure|
136
+ risk_factors << (RiskFactor.from_hash(structure) if structure)
137
+ end
138
+ end
139
+
140
+ risk_factors = SKIP unless hash.key?('riskFactors')
141
+ fraud = Fraud.from_hash(hash['fraud']) if hash['fraud']
142
+ three_ds = Verification.from_hash(hash['threeDS']) if hash['threeDS']
143
+ exemption = PaymentsExemption.from_hash(hash['exemption']) if hash['exemption']
144
+ token = Token.from_hash(hash['token']) if hash['token']
145
+ outcome = hash['outcome'] ||= 'refused'
146
+ transaction_reference =
147
+ hash.key?('transactionReference') ? hash['transactionReference'] : SKIP
148
+
149
+ # Create object from extracted values.
150
+ PaymentRefusedResponse.new(refusal_description,
151
+ refusal_code,
152
+ advice,
153
+ payment_instrument,
154
+ updated_payment_instrument,
155
+ risk_factors,
156
+ fraud,
157
+ three_ds,
158
+ exemption,
159
+ token,
160
+ outcome,
161
+ transaction_reference)
162
+ end
163
+
164
+ # Provides a human-readable string representation of the object.
165
+ def to_s
166
+ class_name = self.class.name.split('::').last
167
+ super_string = super().sub(/^<[^ ]+ /, '').sub(/>$/, '')
168
+ "<#{class_name} #{super_string}, refusal_description: #{@refusal_description},"\
169
+ " refusal_code: #{@refusal_code}, advice: #{@advice}, payment_instrument:"\
170
+ " #{@payment_instrument}, updated_payment_instrument: #{@updated_payment_instrument},"\
171
+ " risk_factors: #{@risk_factors}, fraud: #{@fraud}, three_ds: #{@three_ds}, exemption:"\
172
+ " #{@exemption}, token: #{@token}>"
173
+ end
174
+
175
+ # Provides a debugging-friendly string with detailed object information.
176
+ def inspect
177
+ class_name = self.class.name.split('::').last
178
+ super_string = super().inspect.sub(/^<[^ ]+ /, '').sub(/>$/, '')
179
+ "<#{class_name} #{super_string}, refusal_description: #{@refusal_description.inspect},"\
180
+ " refusal_code: #{@refusal_code.inspect}, advice: #{@advice.inspect}, payment_instrument:"\
181
+ " #{@payment_instrument.inspect}, updated_payment_instrument:"\
182
+ " #{@updated_payment_instrument.inspect}, risk_factors: #{@risk_factors.inspect}, fraud:"\
183
+ " #{@fraud.inspect}, three_ds: #{@three_ds.inspect}, exemption: #{@exemption.inspect},"\
184
+ " token: #{@token.inspect}>"
185
+ end
186
+ end
187
+ end
@@ -0,0 +1,96 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # PaymentRequest Model.
8
+ class PaymentRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # A unique reference generated by you that is used to identify a payment
13
+ # throughout its lifecycle.
14
+ # @return [String]
15
+ attr_accessor :transaction_reference
16
+
17
+ # An object that contains information about the merchant.
18
+ # @return [Merchant]
19
+ attr_accessor :merchant
20
+
21
+ # An object that contains all information related to the payment and API
22
+ # configurations.
23
+ # @return [PaymentsInstruction]
24
+ attr_accessor :instruction
25
+
26
+ # Interaction between the cardholder and you. Supply a value of `ecom` to
27
+ # process an eCommerce authorization. Supply a value of `moto` to process an
28
+ # authorization as a [__Mail Order or Telephone
29
+ # Order__](/products/payments/enable-features/moto) transaction.
30
+ # __Note: 3DS authentication cannot be supplied for MOTO payments__.
31
+ # @return [Channel1Enum]
32
+ attr_accessor :channel
33
+
34
+ # A mapping from model property names to API property names.
35
+ def self.names
36
+ @_hash = {} if @_hash.nil?
37
+ @_hash['transaction_reference'] = 'transactionReference'
38
+ @_hash['merchant'] = 'merchant'
39
+ @_hash['instruction'] = 'instruction'
40
+ @_hash['channel'] = 'channel'
41
+ @_hash
42
+ end
43
+
44
+ # An array for optional fields
45
+ def self.optionals
46
+ %w[
47
+ channel
48
+ ]
49
+ end
50
+
51
+ # An array for nullable fields
52
+ def self.nullables
53
+ []
54
+ end
55
+
56
+ def initialize(transaction_reference = nil, merchant = nil,
57
+ instruction = nil, channel = SKIP)
58
+ @transaction_reference = transaction_reference
59
+ @merchant = merchant
60
+ @instruction = instruction
61
+ @channel = channel unless channel == SKIP
62
+ end
63
+
64
+ # Creates an instance of the object from a hash.
65
+ def self.from_hash(hash)
66
+ return nil unless hash
67
+
68
+ # Extract variables from the hash.
69
+ transaction_reference =
70
+ hash.key?('transactionReference') ? hash['transactionReference'] : nil
71
+ merchant = Merchant.from_hash(hash['merchant']) if hash['merchant']
72
+ instruction = PaymentsInstruction.from_hash(hash['instruction']) if hash['instruction']
73
+ channel = hash.key?('channel') ? hash['channel'] : SKIP
74
+
75
+ # Create object from extracted values.
76
+ PaymentRequest.new(transaction_reference,
77
+ merchant,
78
+ instruction,
79
+ channel)
80
+ end
81
+
82
+ # Provides a human-readable string representation of the object.
83
+ def to_s
84
+ class_name = self.class.name.split('::').last
85
+ "<#{class_name} transaction_reference: #{@transaction_reference}, merchant: #{@merchant},"\
86
+ " instruction: #{@instruction}, channel: #{@channel}>"
87
+ end
88
+
89
+ # Provides a debugging-friendly string with detailed object information.
90
+ def inspect
91
+ class_name = self.class.name.split('::').last
92
+ "<#{class_name} transaction_reference: #{@transaction_reference.inspect}, merchant:"\
93
+ " #{@merchant.inspect}, instruction: #{@instruction.inspect}, channel: #{@channel.inspect}>"
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,71 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Cancel the payment. See [details](../payments-lifecycle/cancel)
8
+ class PaymentsActionCancel < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :href
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :method
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['href'] = 'href'
24
+ @_hash['method'] = 'method'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ %w[
31
+ href
32
+ method
33
+ ]
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ []
39
+ end
40
+
41
+ def initialize(href = SKIP, method = 'POST')
42
+ @href = href unless href == SKIP
43
+ @method = method unless method == SKIP
44
+ end
45
+
46
+ # Creates an instance of the object from a hash.
47
+ def self.from_hash(hash)
48
+ return nil unless hash
49
+
50
+ # Extract variables from the hash.
51
+ href = hash.key?('href') ? hash['href'] : SKIP
52
+ method = hash['method'] ||= 'POST'
53
+
54
+ # Create object from extracted values.
55
+ PaymentsActionCancel.new(href,
56
+ method)
57
+ end
58
+
59
+ # Provides a human-readable string representation of the object.
60
+ def to_s
61
+ class_name = self.class.name.split('::').last
62
+ "<#{class_name} href: #{@href}, method: #{@method}>"
63
+ end
64
+
65
+ # Provides a debugging-friendly string with detailed object information.
66
+ def inspect
67
+ class_name = self.class.name.split('::').last
68
+ "<#{class_name} href: #{@href.inspect}, method: #{@method.inspect}>"
69
+ end
70
+ end
71
+ 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
+ # Resume the payment following the 3DS challenge being completed by the
8
+ # customer. See [details](../3ds-actions/complete3dschallenge)
9
+ class PaymentsActionComplete3dsChallenge < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # TODO: Write general description for this method
14
+ # @return [String]
15
+ attr_accessor :href
16
+
17
+ # TODO: Write general description for this method
18
+ # @return [String]
19
+ attr_accessor :method
20
+
21
+ # A mapping from model property names to API property names.
22
+ def self.names
23
+ @_hash = {} if @_hash.nil?
24
+ @_hash['href'] = 'href'
25
+ @_hash['method'] = 'method'
26
+ @_hash
27
+ end
28
+
29
+ # An array for optional fields
30
+ def self.optionals
31
+ %w[
32
+ href
33
+ method
34
+ ]
35
+ end
36
+
37
+ # An array for nullable fields
38
+ def self.nullables
39
+ []
40
+ end
41
+
42
+ def initialize(href = SKIP, method = 'POST')
43
+ @href = href unless href == SKIP
44
+ @method = method unless method == 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
+ href = hash.key?('href') ? hash['href'] : SKIP
53
+ method = hash['method'] ||= 'POST'
54
+
55
+ # Create object from extracted values.
56
+ PaymentsActionComplete3dsChallenge.new(href,
57
+ method)
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} href: #{@href}, method: #{@method}>"
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} href: #{@href.inspect}, method: #{@method.inspect}>"
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,71 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Partially refund the payment.
8
+ class PaymentsActionPartialRefund < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :href
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :method
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['href'] = 'href'
24
+ @_hash['method'] = 'method'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ %w[
31
+ href
32
+ method
33
+ ]
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ []
39
+ end
40
+
41
+ def initialize(href = SKIP, method = 'POST')
42
+ @href = href unless href == SKIP
43
+ @method = method unless method == SKIP
44
+ end
45
+
46
+ # Creates an instance of the object from a hash.
47
+ def self.from_hash(hash)
48
+ return nil unless hash
49
+
50
+ # Extract variables from the hash.
51
+ href = hash.key?('href') ? hash['href'] : SKIP
52
+ method = hash['method'] ||= 'POST'
53
+
54
+ # Create object from extracted values.
55
+ PaymentsActionPartialRefund.new(href,
56
+ method)
57
+ end
58
+
59
+ # Provides a human-readable string representation of the object.
60
+ def to_s
61
+ class_name = self.class.name.split('::').last
62
+ "<#{class_name} href: #{@href}, method: #{@method}>"
63
+ end
64
+
65
+ # Provides a debugging-friendly string with detailed object information.
66
+ def inspect
67
+ class_name = self.class.name.split('::').last
68
+ "<#{class_name} href: #{@href.inspect}, method: #{@method.inspect}>"
69
+ end
70
+ end
71
+ end