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,149 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require_relative 'payments_payment_instrument'
7
+
8
+ module Payments
9
+ # PaymentsCardPlainPaymentInstrument Model.
10
+ class PaymentsCardPlainPaymentInstrument < PaymentsPaymentInstrument
11
+ # Customer's card number.
12
+ # @return [String]
13
+ attr_accessor :card_number
14
+
15
+ # The name on your customer's card. Required if instruction.tokenCreation
16
+ # is present. However we recommend that you supply this to improve
17
+ # authentication rates.
18
+ # @return [String]
19
+ attr_accessor :card_holder_name
20
+
21
+ # Contains your customer's card or token expiry date.
22
+ # @return [ExpiryDate]
23
+ attr_accessor :expiry_date
24
+
25
+ # CVC is a unique set of 3 or 4 numbers on the back of the card. Our API
26
+ # checks to see if the CVC supplied matches the CVC held by the issuing
27
+ # bank.
28
+ # @return [String]
29
+ attr_accessor :cvc
30
+
31
+ # Contains the billing address information.
32
+ # @return [BillingAddress]
33
+ attr_accessor :billing_address
34
+
35
+ # An object containing specific routing preferences.
36
+ # @return [Routing]
37
+ attr_accessor :routing
38
+
39
+ # A mapping from model property names to API property names.
40
+ def self.names
41
+ @_hash = {} if @_hash.nil?
42
+ @_hash['card_number'] = 'cardNumber'
43
+ @_hash['card_holder_name'] = 'cardHolderName'
44
+ @_hash['expiry_date'] = 'expiryDate'
45
+ @_hash['cvc'] = 'cvc'
46
+ @_hash['billing_address'] = 'billingAddress'
47
+ @_hash['routing'] = 'routing'
48
+ @_hash = super().merge(@_hash)
49
+ @_hash
50
+ end
51
+
52
+ # An array for optional fields
53
+ def self.optionals
54
+ _arr = %w[
55
+ card_holder_name
56
+ cvc
57
+ billing_address
58
+ routing
59
+ ]
60
+ (_arr << super()).flatten!
61
+ end
62
+
63
+ # An array for nullable fields
64
+ def self.nullables
65
+ _arr = []
66
+ (_arr << super()).flatten!
67
+ end
68
+
69
+ def initialize(card_number = nil, expiry_date = nil,
70
+ card_holder_name = SKIP, cvc = SKIP, billing_address = SKIP,
71
+ routing = SKIP, type = 'plain')
72
+ @card_number = card_number
73
+ @card_holder_name = card_holder_name unless card_holder_name == SKIP
74
+ @expiry_date = expiry_date
75
+ @cvc = cvc unless cvc == SKIP
76
+ @billing_address = billing_address unless billing_address == SKIP
77
+ @routing = routing unless routing == SKIP
78
+
79
+ # Call the constructor of the base class
80
+ super(type)
81
+ end
82
+
83
+ # Creates an instance of the object from a hash.
84
+ def self.from_hash(hash)
85
+ return nil unless hash
86
+
87
+ # Extract variables from the hash.
88
+ card_number = hash.key?('cardNumber') ? hash['cardNumber'] : nil
89
+ expiry_date = ExpiryDate.from_hash(hash['expiryDate']) if hash['expiryDate']
90
+ card_holder_name =
91
+ hash.key?('cardHolderName') ? hash['cardHolderName'] : SKIP
92
+ cvc = hash.key?('cvc') ? hash['cvc'] : SKIP
93
+ billing_address = BillingAddress.from_hash(hash['billingAddress']) if hash['billingAddress']
94
+ routing = Routing.from_hash(hash['routing']) if hash['routing']
95
+ type = hash['type'] ||= 'plain'
96
+
97
+ # Create object from extracted values.
98
+ PaymentsCardPlainPaymentInstrument.new(card_number,
99
+ expiry_date,
100
+ card_holder_name,
101
+ cvc,
102
+ billing_address,
103
+ routing,
104
+ type)
105
+ end
106
+
107
+ # Validates an instance of the object from a given value.
108
+ # @param [PaymentsCardPlainPaymentInstrument | Hash] The value against the validation is performed.
109
+ def self.validate(value)
110
+ if value.instance_of? self
111
+ return (
112
+ APIHelper.valid_type?(value.card_number,
113
+ ->(val) { val.instance_of? String }) and
114
+ APIHelper.valid_type?(value.expiry_date,
115
+ ->(val) { ExpiryDate.validate(val) },
116
+ is_model_hash: true)
117
+ )
118
+ end
119
+
120
+ return false unless value.instance_of? Hash
121
+
122
+ (
123
+ APIHelper.valid_type?(value['cardNumber'],
124
+ ->(val) { val.instance_of? String }) and
125
+ APIHelper.valid_type?(value['expiryDate'],
126
+ ->(val) { ExpiryDate.validate(val) },
127
+ is_model_hash: true)
128
+ )
129
+ end
130
+
131
+ # Provides a human-readable string representation of the object.
132
+ def to_s
133
+ class_name = self.class.name.split('::').last
134
+ super_string = super().sub(/^<[^ ]+ /, '').sub(/>$/, '')
135
+ "<#{class_name} #{super_string}, card_number: #{@card_number}, card_holder_name:"\
136
+ " #{@card_holder_name}, expiry_date: #{@expiry_date}, cvc: #{@cvc}, billing_address:"\
137
+ " #{@billing_address}, routing: #{@routing}>"
138
+ end
139
+
140
+ # Provides a debugging-friendly string with detailed object information.
141
+ def inspect
142
+ class_name = self.class.name.split('::').last
143
+ super_string = super().inspect.sub(/^<[^ ]+ /, '').sub(/>$/, '')
144
+ "<#{class_name} #{super_string}, card_number: #{@card_number.inspect}, card_holder_name:"\
145
+ " #{@card_holder_name.inspect}, expiry_date: #{@expiry_date.inspect}, cvc: #{@cvc.inspect},"\
146
+ " billing_address: #{@billing_address.inspect}, routing: #{@routing.inspect}>"
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,79 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Contains specific customer agreements for the transaction.
8
+ class PaymentsCustomerAgreement < 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['cardOnFile'] = PaymentsCardOnFileCustomerAgreement
21
+ @_discriminators['installment'] = PaymentsInstallmentCustomerAgreement
22
+ @_discriminators['subscription'] = PaymentsSubscriptionCustomerAgreement
23
+ @_discriminators['unscheduled'] = PaymentsUnscheduledCustomerAgreement
24
+ end
25
+ @_discriminators
26
+ end
27
+
28
+ # A mapping from model property names to API property names.
29
+ def self.names
30
+ @_hash = {} if @_hash.nil?
31
+ @_hash['type'] = 'type'
32
+ @_hash
33
+ end
34
+
35
+ # An array for optional fields
36
+ def self.optionals
37
+ %w[
38
+ type
39
+ ]
40
+ end
41
+
42
+ # An array for nullable fields
43
+ def self.nullables
44
+ []
45
+ end
46
+
47
+ def initialize(type = 'PaymentsCustomerAgreement')
48
+ @type = type unless type == SKIP
49
+ end
50
+
51
+ # Creates an instance of the object from a hash.
52
+ def self.from_hash(hash)
53
+ return nil unless hash
54
+
55
+ # Delegate unboxing to another function if a discriminator
56
+ # value for a child class is present.
57
+ unboxer = discriminators[hash['type']]
58
+ return unboxer.send(:from_hash, hash) if unboxer
59
+
60
+ # Extract variables from the hash.
61
+ type = hash['type'] ||= 'PaymentsCustomerAgreement'
62
+
63
+ # Create object from extracted values.
64
+ PaymentsCustomerAgreement.new(type)
65
+ end
66
+
67
+ # Provides a human-readable string representation of the object.
68
+ def to_s
69
+ class_name = self.class.name.split('::').last
70
+ "<#{class_name} type: #{@type}>"
71
+ end
72
+
73
+ # Provides a debugging-friendly string with detailed object information.
74
+ def inspect
75
+ class_name = self.class.name.split('::').last
76
+ "<#{class_name} type: #{@type.inspect}>"
77
+ end
78
+ end
79
+ 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
+ # PaymentsEmailAccount Model.
10
+ class PaymentsEmailAccount < PaymentsRecipientAccount
11
+ # Recipient's email address.
12
+ # @return [String]
13
+ attr_accessor :email_address
14
+
15
+ # A mapping from model property names to API property names.
16
+ def self.names
17
+ @_hash = {} if @_hash.nil?
18
+ @_hash['email_address'] = 'emailAddress'
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(email_address = nil, type = 'email')
36
+ @email_address = email_address
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
+ email_address = hash.key?('emailAddress') ? hash['emailAddress'] : nil
48
+ type = hash['type'] ||= 'email'
49
+
50
+ # Create object from extracted values.
51
+ PaymentsEmailAccount.new(email_address,
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}, email_address: #{@email_address}>"
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}, email_address: #{@email_address.inspect}>"
67
+ end
68
+ end
69
+ 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
+ # Next action links.
8
+ class PaymentsEvents < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Next action links.
13
+ # @return [String]
14
+ attr_accessor :href
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['href'] = 'href'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ %w[
26
+ href
27
+ ]
28
+ end
29
+
30
+ # An array for nullable fields
31
+ def self.nullables
32
+ []
33
+ end
34
+
35
+ def initialize(href = SKIP)
36
+ @href = href unless href == 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
+ href = hash.key?('href') ? hash['href'] : SKIP
45
+
46
+ # Create object from extracted values.
47
+ PaymentsEvents.new(href)
48
+ end
49
+
50
+ # Validates an instance of the object from a given value.
51
+ # @param [PaymentsEvents | 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} href: #{@href}>"
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}>"
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,102 @@
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 exemption.
8
+ class PaymentsExemption < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Was an exemption returned by Worldpay's TRA assessment.
13
+ # @return [TrueClass | FalseClass]
14
+ attr_accessor :granted
15
+
16
+ # Indicates whether the exemption has been placed in a payment authorization
17
+ # request or 3DS authentication request.
18
+ # @return [PlacementEnum]
19
+ attr_accessor :placement
20
+
21
+ # The type of applied exemption.
22
+ # @return [Type2Enum]
23
+ attr_accessor :type
24
+
25
+ # The result of the exemption placement request.
26
+ # @return [ResultEnum]
27
+ attr_accessor :result
28
+
29
+ # The reason returned by the card issuer.
30
+ # @return [ReasonEnum]
31
+ attr_accessor :reason
32
+
33
+ # A mapping from model property names to API property names.
34
+ def self.names
35
+ @_hash = {} if @_hash.nil?
36
+ @_hash['granted'] = 'granted'
37
+ @_hash['placement'] = 'placement'
38
+ @_hash['type'] = 'type'
39
+ @_hash['result'] = 'result'
40
+ @_hash['reason'] = 'reason'
41
+ @_hash
42
+ end
43
+
44
+ # An array for optional fields
45
+ def self.optionals
46
+ %w[
47
+ granted
48
+ placement
49
+ type
50
+ result
51
+ reason
52
+ ]
53
+ end
54
+
55
+ # An array for nullable fields
56
+ def self.nullables
57
+ []
58
+ end
59
+
60
+ def initialize(granted = SKIP, placement = SKIP, type = SKIP, result = SKIP,
61
+ reason = SKIP)
62
+ @granted = granted unless granted == SKIP
63
+ @placement = placement unless placement == SKIP
64
+ @type = type unless type == SKIP
65
+ @result = result unless result == SKIP
66
+ @reason = reason unless reason == SKIP
67
+ end
68
+
69
+ # Creates an instance of the object from a hash.
70
+ def self.from_hash(hash)
71
+ return nil unless hash
72
+
73
+ # Extract variables from the hash.
74
+ granted = hash.key?('granted') ? hash['granted'] : SKIP
75
+ placement = hash.key?('placement') ? hash['placement'] : SKIP
76
+ type = hash.key?('type') ? hash['type'] : SKIP
77
+ result = hash.key?('result') ? hash['result'] : SKIP
78
+ reason = hash.key?('reason') ? hash['reason'] : SKIP
79
+
80
+ # Create object from extracted values.
81
+ PaymentsExemption.new(granted,
82
+ placement,
83
+ type,
84
+ result,
85
+ reason)
86
+ end
87
+
88
+ # Provides a human-readable string representation of the object.
89
+ def to_s
90
+ class_name = self.class.name.split('::').last
91
+ "<#{class_name} granted: #{@granted}, placement: #{@placement}, type: #{@type}, result:"\
92
+ " #{@result}, reason: #{@reason}>"
93
+ end
94
+
95
+ # Provides a debugging-friendly string with detailed object information.
96
+ def inspect
97
+ class_name = self.class.name.split('::').last
98
+ "<#{class_name} granted: #{@granted.inspect}, placement: #{@placement.inspect}, type:"\
99
+ " #{@type.inspect}, result: #{@result.inspect}, reason: #{@reason.inspect}>"
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,107 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Fraud assessment to detect potential fraud and prevent the transaction from
8
+ # proceeding. Read more on how to set it up under our [__Fraud
9
+ # Assessment__](/products/payments/enable-features/fraud-assessment) guide.
10
+ class PaymentsFraud < BaseModel
11
+ SKIP = Object.new
12
+ private_constant :SKIP
13
+
14
+ # Enable a FraudSight risk assessment
15
+ # @return [String]
16
+ attr_reader :type
17
+
18
+ # Perform the Fraud assessment but do not act on the outcome.
19
+ # Normally used for the initial launch while the data model is
20
+ # maturing.
21
+ # @return [TrueClass | FalseClass]
22
+ attr_accessor :silent_mode
23
+
24
+ # Device fingerprint provided by Threatmetrix.
25
+ # @return [String]
26
+ attr_accessor :tmx_session_id
27
+
28
+ # Additional values specific to your order that can be used to create manual
29
+ # fraud rules.
30
+ # @return [Custom]
31
+ attr_accessor :custom
32
+
33
+ # A mapping from model property names to API property names.
34
+ def self.names
35
+ @_hash = {} if @_hash.nil?
36
+ @_hash['type'] = 'type'
37
+ @_hash['silent_mode'] = 'silentMode'
38
+ @_hash['tmx_session_id'] = 'tmxSessionId'
39
+ @_hash['custom'] = 'custom'
40
+ @_hash
41
+ end
42
+
43
+ # An array for optional fields
44
+ def self.optionals
45
+ %w[
46
+ silent_mode
47
+ tmx_session_id
48
+ custom
49
+ ]
50
+ end
51
+
52
+ # An array for nullable fields
53
+ def self.nullables
54
+ []
55
+ end
56
+
57
+ def initialize(silent_mode = false, tmx_session_id = SKIP, custom = SKIP)
58
+ @type = 'fraudSight'
59
+ @silent_mode = silent_mode unless silent_mode == SKIP
60
+ @tmx_session_id = tmx_session_id unless tmx_session_id == SKIP
61
+ @custom = custom unless custom == 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
+ silent_mode = hash['silentMode'] ||= false
70
+ tmx_session_id = hash.key?('tmxSessionId') ? hash['tmxSessionId'] : SKIP
71
+ custom = Custom.from_hash(hash['custom']) if hash['custom']
72
+
73
+ # Create object from extracted values.
74
+ PaymentsFraud.new(silent_mode,
75
+ tmx_session_id,
76
+ custom)
77
+ end
78
+
79
+ # Validates an instance of the object from a given value.
80
+ # @param [PaymentsFraud | Hash] The value against the validation is performed.
81
+ def self.validate(value)
82
+ if value.instance_of? self
83
+ return APIHelper.valid_type?(value.type,
84
+ ->(val) { val.instance_of? String })
85
+ end
86
+
87
+ return false unless value.instance_of? Hash
88
+
89
+ APIHelper.valid_type?(value['type'],
90
+ ->(val) { val.instance_of? String })
91
+ end
92
+
93
+ # Provides a human-readable string representation of the object.
94
+ def to_s
95
+ class_name = self.class.name.split('::').last
96
+ "<#{class_name} type: #{@type}, silent_mode: #{@silent_mode}, tmx_session_id:"\
97
+ " #{@tmx_session_id}, custom: #{@custom}>"
98
+ end
99
+
100
+ # Provides a debugging-friendly string with detailed object information.
101
+ def inspect
102
+ class_name = self.class.name.split('::').last
103
+ "<#{class_name} type: #{@type.inspect}, silent_mode: #{@silent_mode.inspect},"\
104
+ " tmx_session_id: #{@tmx_session_id.inspect}, custom: #{@custom.inspect}>"
105
+ end
106
+ end
107
+ end