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,130 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Shipping Model.
8
+ class Shipping < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The shipping method used.
13
+ # @return [MethodEnum]
14
+ attr_accessor :method
15
+
16
+ # The shipping method used.
17
+ # @return [TimeFrameEnum]
18
+ attr_accessor :time_frame
19
+
20
+ # The email address used for an electronic delivery.
21
+ # @return [String]
22
+ attr_accessor :email
23
+
24
+ # The phone number used for delivery.
25
+ # @return [String]
26
+ attr_accessor :phone
27
+
28
+ # First name used on the shipping address.
29
+ # @return [String]
30
+ attr_accessor :first_name
31
+
32
+ # Last name used on the shipping address.
33
+ # @return [String]
34
+ attr_accessor :last_name
35
+
36
+ # Last name used on the shipping address.
37
+ # @return [PaymentsShippingAddress]
38
+ attr_accessor :address
39
+
40
+ # A mapping from model property names to API property names.
41
+ def self.names
42
+ @_hash = {} if @_hash.nil?
43
+ @_hash['method'] = 'method'
44
+ @_hash['time_frame'] = 'timeFrame'
45
+ @_hash['email'] = 'email'
46
+ @_hash['phone'] = 'phone'
47
+ @_hash['first_name'] = 'firstName'
48
+ @_hash['last_name'] = 'lastName'
49
+ @_hash['address'] = 'address'
50
+ @_hash
51
+ end
52
+
53
+ # An array for optional fields
54
+ def self.optionals
55
+ %w[
56
+ method
57
+ time_frame
58
+ email
59
+ phone
60
+ first_name
61
+ last_name
62
+ address
63
+ ]
64
+ end
65
+
66
+ # An array for nullable fields
67
+ def self.nullables
68
+ []
69
+ end
70
+
71
+ def initialize(method = SKIP, time_frame = SKIP, email = SKIP, phone = SKIP,
72
+ first_name = SKIP, last_name = SKIP, address = SKIP)
73
+ @method = method unless method == SKIP
74
+ @time_frame = time_frame unless time_frame == SKIP
75
+ @email = email unless email == SKIP
76
+ @phone = phone unless phone == SKIP
77
+ @first_name = first_name unless first_name == SKIP
78
+ @last_name = last_name unless last_name == SKIP
79
+ @address = address unless address == SKIP
80
+ end
81
+
82
+ # Creates an instance of the object from a hash.
83
+ def self.from_hash(hash)
84
+ return nil unless hash
85
+
86
+ # Extract variables from the hash.
87
+ method = hash.key?('method') ? hash['method'] : SKIP
88
+ time_frame = hash.key?('timeFrame') ? hash['timeFrame'] : SKIP
89
+ email = hash.key?('email') ? hash['email'] : SKIP
90
+ phone = hash.key?('phone') ? hash['phone'] : SKIP
91
+ first_name = hash.key?('firstName') ? hash['firstName'] : SKIP
92
+ last_name = hash.key?('lastName') ? hash['lastName'] : SKIP
93
+ address = PaymentsShippingAddress.from_hash(hash['address']) if hash['address']
94
+
95
+ # Create object from extracted values.
96
+ Shipping.new(method,
97
+ time_frame,
98
+ email,
99
+ phone,
100
+ first_name,
101
+ last_name,
102
+ address)
103
+ end
104
+
105
+ # Validates an instance of the object from a given value.
106
+ # @param [Shipping | Hash] The value against the validation is performed.
107
+ def self.validate(value)
108
+ return true if value.instance_of? self
109
+
110
+ return false unless value.instance_of? Hash
111
+
112
+ true
113
+ end
114
+
115
+ # Provides a human-readable string representation of the object.
116
+ def to_s
117
+ class_name = self.class.name.split('::').last
118
+ "<#{class_name} method: #{@method}, time_frame: #{@time_frame}, email: #{@email}, phone:"\
119
+ " #{@phone}, first_name: #{@first_name}, last_name: #{@last_name}, address: #{@address}>"
120
+ end
121
+
122
+ # Provides a debugging-friendly string with detailed object information.
123
+ def inspect
124
+ class_name = self.class.name.split('::').last
125
+ "<#{class_name} method: #{@method.inspect}, time_frame: #{@time_frame.inspect}, email:"\
126
+ " #{@email.inspect}, phone: #{@phone.inspect}, first_name: #{@first_name.inspect},"\
127
+ " last_name: #{@last_name.inspect}, address: #{@address.inspect}>"
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,24 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Set to `first` to store a card or `subsequent` to use a previously stored
8
+ # card. Mandatory for `merchant` installment type.
9
+ class StoredCardUsage1Enum
10
+ STORED_CARD_USAGE1_ENUM = [
11
+ # TODO: Write general description for FIRST
12
+ FIRST = 'first'.freeze,
13
+
14
+ # TODO: Write general description for SUBSEQUENT
15
+ SUBSEQUENT = 'subsequent'.freeze
16
+ ].freeze
17
+
18
+ def self.validate(value)
19
+ return false if value.nil?
20
+
21
+ STORED_CARD_USAGE1_ENUM.include?(value)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Set to `first` to store a card or `subsequent` to use a previously stored
8
+ # card.
9
+ class StoredCardUsageEnum
10
+ STORED_CARD_USAGE_ENUM = [
11
+ # TODO: Write general description for FIRST
12
+ FIRST = 'first'.freeze,
13
+
14
+ # TODO: Write general description for SUBSEQUENT
15
+ SUBSEQUENT = 'subsequent'.freeze
16
+ ].freeze
17
+
18
+ def self.validate(value)
19
+ return false if value.nil?
20
+
21
+ STORED_CARD_USAGE_ENUM.include?(value)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,29 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # TimeFrame.
8
+ class TimeFrameEnum
9
+ TIME_FRAME_ENUM = [
10
+ # TODO: Write general description for ELECTRONIC
11
+ ELECTRONIC = 'electronic'.freeze,
12
+
13
+ # TODO: Write general description for SAMEDAY
14
+ SAMEDAY = 'sameDay'.freeze,
15
+
16
+ # TODO: Write general description for NEXTDAY
17
+ NEXTDAY = 'nextDay'.freeze,
18
+
19
+ # TODO: Write general description for TWODAYSPLUS
20
+ TWODAYSPLUS = 'twoDaysPlus'.freeze
21
+ ].freeze
22
+
23
+ def self.validate(value)
24
+ return false if value.nil?
25
+
26
+ TIME_FRAME_ENUM.include?(value)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,168 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Details of the token created
8
+ class Token < 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 :token_id
19
+
20
+ # TODO: Write general description for this method
21
+ # @return [String]
22
+ attr_accessor :token_expiry_date_time
23
+
24
+ # TODO: Write general description for this method
25
+ # @return [String]
26
+ attr_accessor :card_number
27
+
28
+ # TODO: Write general description for this method
29
+ # @return [String]
30
+ attr_accessor :card_holder_name
31
+
32
+ # Contains your customer's card or token expiry date.
33
+ # @return [ExpiryDate]
34
+ attr_accessor :card_expiry
35
+
36
+ # Contains your customer's card or token expiry date.
37
+ # @return [String]
38
+ attr_accessor :bin
39
+
40
+ # Contains your customer's card or token expiry date.
41
+ # @return [String]
42
+ attr_accessor :funding_type
43
+
44
+ # Contains your customer's card or token expiry date.
45
+ # @return [String]
46
+ attr_accessor :country_code
47
+
48
+ # Contains your customer's card or token expiry date.
49
+ # @return [String]
50
+ attr_accessor :scheme_reference
51
+
52
+ # Contains your customer's card or token expiry date.
53
+ # @return [TokenResponseConflicts]
54
+ attr_accessor :conflicts
55
+
56
+ # A mapping from model property names to API property names.
57
+ def self.names
58
+ @_hash = {} if @_hash.nil?
59
+ @_hash['href'] = 'href'
60
+ @_hash['token_id'] = 'tokenId'
61
+ @_hash['token_expiry_date_time'] = 'tokenExpiryDateTime'
62
+ @_hash['card_number'] = 'cardNumber'
63
+ @_hash['card_holder_name'] = 'cardHolderName'
64
+ @_hash['card_expiry'] = 'cardExpiry'
65
+ @_hash['bin'] = 'bin'
66
+ @_hash['funding_type'] = 'fundingType'
67
+ @_hash['country_code'] = 'countryCode'
68
+ @_hash['scheme_reference'] = 'schemeReference'
69
+ @_hash['conflicts'] = 'conflicts'
70
+ @_hash
71
+ end
72
+
73
+ # An array for optional fields
74
+ def self.optionals
75
+ %w[
76
+ href
77
+ token_id
78
+ token_expiry_date_time
79
+ card_number
80
+ card_holder_name
81
+ card_expiry
82
+ bin
83
+ funding_type
84
+ country_code
85
+ scheme_reference
86
+ conflicts
87
+ ]
88
+ end
89
+
90
+ # An array for nullable fields
91
+ def self.nullables
92
+ []
93
+ end
94
+
95
+ def initialize(href = SKIP, token_id = SKIP, token_expiry_date_time = SKIP,
96
+ card_number = SKIP, card_holder_name = SKIP,
97
+ card_expiry = SKIP, bin = SKIP, funding_type = SKIP,
98
+ country_code = SKIP, scheme_reference = SKIP,
99
+ conflicts = SKIP)
100
+ @href = href unless href == SKIP
101
+ @token_id = token_id unless token_id == SKIP
102
+ @token_expiry_date_time = token_expiry_date_time unless token_expiry_date_time == SKIP
103
+ @card_number = card_number unless card_number == SKIP
104
+ @card_holder_name = card_holder_name unless card_holder_name == SKIP
105
+ @card_expiry = card_expiry unless card_expiry == SKIP
106
+ @bin = bin unless bin == SKIP
107
+ @funding_type = funding_type unless funding_type == SKIP
108
+ @country_code = country_code unless country_code == SKIP
109
+ @scheme_reference = scheme_reference unless scheme_reference == SKIP
110
+ @conflicts = conflicts unless conflicts == SKIP
111
+ end
112
+
113
+ # Creates an instance of the object from a hash.
114
+ def self.from_hash(hash)
115
+ return nil unless hash
116
+
117
+ # Extract variables from the hash.
118
+ href = hash.key?('href') ? hash['href'] : SKIP
119
+ token_id = hash.key?('tokenId') ? hash['tokenId'] : SKIP
120
+ token_expiry_date_time =
121
+ hash.key?('tokenExpiryDateTime') ? hash['tokenExpiryDateTime'] : SKIP
122
+ card_number = hash.key?('cardNumber') ? hash['cardNumber'] : SKIP
123
+ card_holder_name =
124
+ hash.key?('cardHolderName') ? hash['cardHolderName'] : SKIP
125
+ card_expiry = ExpiryDate.from_hash(hash['cardExpiry']) if hash['cardExpiry']
126
+ bin = hash.key?('bin') ? hash['bin'] : SKIP
127
+ funding_type = hash.key?('fundingType') ? hash['fundingType'] : SKIP
128
+ country_code = hash.key?('countryCode') ? hash['countryCode'] : SKIP
129
+ scheme_reference =
130
+ hash.key?('schemeReference') ? hash['schemeReference'] : SKIP
131
+ conflicts = TokenResponseConflicts.from_hash(hash['conflicts']) if hash['conflicts']
132
+
133
+ # Create object from extracted values.
134
+ Token.new(href,
135
+ token_id,
136
+ token_expiry_date_time,
137
+ card_number,
138
+ card_holder_name,
139
+ card_expiry,
140
+ bin,
141
+ funding_type,
142
+ country_code,
143
+ scheme_reference,
144
+ conflicts)
145
+ end
146
+
147
+ # Provides a human-readable string representation of the object.
148
+ def to_s
149
+ class_name = self.class.name.split('::').last
150
+ "<#{class_name} href: #{@href}, token_id: #{@token_id}, token_expiry_date_time:"\
151
+ " #{@token_expiry_date_time}, card_number: #{@card_number}, card_holder_name:"\
152
+ " #{@card_holder_name}, card_expiry: #{@card_expiry}, bin: #{@bin}, funding_type:"\
153
+ " #{@funding_type}, country_code: #{@country_code}, scheme_reference: #{@scheme_reference},"\
154
+ " conflicts: #{@conflicts}>"
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
+ "<#{class_name} href: #{@href.inspect}, token_id: #{@token_id.inspect},"\
161
+ " token_expiry_date_time: #{@token_expiry_date_time.inspect}, card_number:"\
162
+ " #{@card_number.inspect}, card_holder_name: #{@card_holder_name.inspect}, card_expiry:"\
163
+ " #{@card_expiry.inspect}, bin: #{@bin.inspect}, funding_type: #{@funding_type.inspect},"\
164
+ " country_code: #{@country_code.inspect}, scheme_reference: #{@scheme_reference.inspect},"\
165
+ " conflicts: #{@conflicts.inspect}>"
166
+ end
167
+ end
168
+ end
@@ -0,0 +1,95 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # Use this object if you want to create a token after the payment. Can only be
8
+ # used with paymentInstrument.type: card/plain & checkout.
9
+ class TokenCreation < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # TODO: Write general description for this method
14
+ # @return [String]
15
+ attr_reader :type
16
+
17
+ # A namespace is used to group up to 16 cards, e.g. for one customer. A card
18
+ # can exist in more than one namespace.
19
+ # @return [String]
20
+ attr_accessor :namespace
21
+
22
+ # A description of your token. If not supplied, a default description is
23
+ # created for you.
24
+ # @return [String]
25
+ attr_accessor :description
26
+
27
+ # A mapping from model property names to API property names.
28
+ def self.names
29
+ @_hash = {} if @_hash.nil?
30
+ @_hash['type'] = 'type'
31
+ @_hash['namespace'] = 'namespace'
32
+ @_hash['description'] = 'description'
33
+ @_hash
34
+ end
35
+
36
+ # An array for optional fields
37
+ def self.optionals
38
+ %w[
39
+ namespace
40
+ description
41
+ ]
42
+ end
43
+
44
+ # An array for nullable fields
45
+ def self.nullables
46
+ []
47
+ end
48
+
49
+ def initialize(namespace = SKIP, description = SKIP)
50
+ @type = 'worldpay'
51
+ @namespace = namespace unless namespace == SKIP
52
+ @description = description unless description == SKIP
53
+ end
54
+
55
+ # Creates an instance of the object from a hash.
56
+ def self.from_hash(hash)
57
+ return nil unless hash
58
+
59
+ # Extract variables from the hash.
60
+ namespace = hash.key?('namespace') ? hash['namespace'] : SKIP
61
+ description = hash.key?('description') ? hash['description'] : SKIP
62
+
63
+ # Create object from extracted values.
64
+ TokenCreation.new(namespace,
65
+ description)
66
+ end
67
+
68
+ # Validates an instance of the object from a given value.
69
+ # @param [TokenCreation | Hash] The value against the validation is performed.
70
+ def self.validate(value)
71
+ if value.instance_of? self
72
+ return APIHelper.valid_type?(value.type,
73
+ ->(val) { val.instance_of? String })
74
+ end
75
+
76
+ return false unless value.instance_of? Hash
77
+
78
+ APIHelper.valid_type?(value['type'],
79
+ ->(val) { val.instance_of? String })
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} type: #{@type}, namespace: #{@namespace}, description: #{@description}>"
86
+ end
87
+
88
+ # Provides a debugging-friendly string with detailed object information.
89
+ def inspect
90
+ class_name = self.class.name.split('::').last
91
+ "<#{class_name} type: #{@type.inspect}, namespace: #{@namespace.inspect}, description:"\
92
+ " #{@description.inspect}>"
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,118 @@
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
+ # TokenPaymentInstrument Model.
10
+ class TokenPaymentInstrument < PaymentsPaymentInstrument
11
+ # An http address that contains your link to an Access Token.
12
+ # @return [String]
13
+ attr_accessor :href
14
+
15
+ # CVC is a unique set of 3 or 4 numbers on the back of the card. Our API
16
+ # checks to see if the CVC supplied matches the CVC held by the issuing
17
+ # bank.
18
+ # @return [String]
19
+ attr_accessor :cvc
20
+
21
+ # Href to the Checkout session providing the Card Verification Code
22
+ # (CVC).__Note:__ Provide a value in `cvcSessionHref` or `cvc`, never both.
23
+ # @return [String]
24
+ attr_accessor :cvc_session_href
25
+
26
+ # An object containing specific routing preferences.
27
+ # @return [Routing]
28
+ attr_accessor :routing
29
+
30
+ # A mapping from model property names to API property names.
31
+ def self.names
32
+ @_hash = {} if @_hash.nil?
33
+ @_hash['href'] = 'href'
34
+ @_hash['cvc'] = 'cvc'
35
+ @_hash['cvc_session_href'] = 'cvcSessionHref'
36
+ @_hash['routing'] = 'routing'
37
+ @_hash = super().merge(@_hash)
38
+ @_hash
39
+ end
40
+
41
+ # An array for optional fields
42
+ def self.optionals
43
+ _arr = %w[
44
+ cvc
45
+ cvc_session_href
46
+ routing
47
+ ]
48
+ (_arr << super()).flatten!
49
+ end
50
+
51
+ # An array for nullable fields
52
+ def self.nullables
53
+ _arr = []
54
+ (_arr << super()).flatten!
55
+ end
56
+
57
+ def initialize(href = nil, cvc = SKIP, cvc_session_href = SKIP,
58
+ routing = SKIP, type = 'token')
59
+ @href = href
60
+ @cvc = cvc unless cvc == SKIP
61
+ @cvc_session_href = cvc_session_href unless cvc_session_href == SKIP
62
+ @routing = routing unless routing == SKIP
63
+
64
+ # Call the constructor of the base class
65
+ super(type)
66
+ end
67
+
68
+ # Creates an instance of the object from a hash.
69
+ def self.from_hash(hash)
70
+ return nil unless hash
71
+
72
+ # Extract variables from the hash.
73
+ href = hash.key?('href') ? hash['href'] : nil
74
+ cvc = hash.key?('cvc') ? hash['cvc'] : SKIP
75
+ cvc_session_href =
76
+ hash.key?('cvcSessionHref') ? hash['cvcSessionHref'] : SKIP
77
+ routing = Routing.from_hash(hash['routing']) if hash['routing']
78
+ type = hash['type'] ||= 'token'
79
+
80
+ # Create object from extracted values.
81
+ TokenPaymentInstrument.new(href,
82
+ cvc,
83
+ cvc_session_href,
84
+ routing,
85
+ type)
86
+ end
87
+
88
+ # Validates an instance of the object from a given value.
89
+ # @param [TokenPaymentInstrument | Hash] The value against the validation is performed.
90
+ def self.validate(value)
91
+ if value.instance_of? self
92
+ return APIHelper.valid_type?(value.href,
93
+ ->(val) { val.instance_of? String })
94
+ end
95
+
96
+ return false unless value.instance_of? Hash
97
+
98
+ APIHelper.valid_type?(value['href'],
99
+ ->(val) { val.instance_of? String })
100
+ end
101
+
102
+ # Provides a human-readable string representation of the object.
103
+ def to_s
104
+ class_name = self.class.name.split('::').last
105
+ super_string = super().sub(/^<[^ ]+ /, '').sub(/>$/, '')
106
+ "<#{class_name} #{super_string}, href: #{@href}, cvc: #{@cvc}, cvc_session_href:"\
107
+ " #{@cvc_session_href}, routing: #{@routing}>"
108
+ end
109
+
110
+ # Provides a debugging-friendly string with detailed object information.
111
+ def inspect
112
+ class_name = self.class.name.split('::').last
113
+ super_string = super().inspect.sub(/^<[^ ]+ /, '').sub(/>$/, '')
114
+ "<#{class_name} #{super_string}, href: #{@href.inspect}, cvc: #{@cvc.inspect},"\
115
+ " cvc_session_href: #{@cvc_session_href.inspect}, routing: #{@routing.inspect}>"
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,90 @@
1
+ # payments
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module Payments
7
+ # TokenResponseConflicts Model.
8
+ class TokenResponseConflicts < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :conflicts_expiry_date_time
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :scheme_reference
19
+
20
+ # TODO: Write general description for this method
21
+ # @return [ConflictPaymentInstrument]
22
+ attr_accessor :payment_instrument
23
+
24
+ # A mapping from model property names to API property names.
25
+ def self.names
26
+ @_hash = {} if @_hash.nil?
27
+ @_hash['conflicts_expiry_date_time'] = 'conflictsExpiryDateTime'
28
+ @_hash['scheme_reference'] = 'schemeReference'
29
+ @_hash['payment_instrument'] = 'paymentInstrument'
30
+ @_hash
31
+ end
32
+
33
+ # An array for optional fields
34
+ def self.optionals
35
+ %w[
36
+ conflicts_expiry_date_time
37
+ scheme_reference
38
+ payment_instrument
39
+ ]
40
+ end
41
+
42
+ # An array for nullable fields
43
+ def self.nullables
44
+ []
45
+ end
46
+
47
+ def initialize(conflicts_expiry_date_time = SKIP, scheme_reference = SKIP,
48
+ payment_instrument = SKIP)
49
+ unless conflicts_expiry_date_time == SKIP
50
+ @conflicts_expiry_date_time =
51
+ conflicts_expiry_date_time
52
+ end
53
+ @scheme_reference = scheme_reference unless scheme_reference == SKIP
54
+ @payment_instrument = payment_instrument unless payment_instrument == SKIP
55
+ end
56
+
57
+ # Creates an instance of the object from a hash.
58
+ def self.from_hash(hash)
59
+ return nil unless hash
60
+
61
+ # Extract variables from the hash.
62
+ conflicts_expiry_date_time =
63
+ hash.key?('conflictsExpiryDateTime') ? hash['conflictsExpiryDateTime'] : SKIP
64
+ scheme_reference =
65
+ hash.key?('schemeReference') ? hash['schemeReference'] : SKIP
66
+ payment_instrument = ConflictPaymentInstrument.from_hash(hash['paymentInstrument']) if
67
+ hash['paymentInstrument']
68
+
69
+ # Create object from extracted values.
70
+ TokenResponseConflicts.new(conflicts_expiry_date_time,
71
+ scheme_reference,
72
+ payment_instrument)
73
+ end
74
+
75
+ # Provides a human-readable string representation of the object.
76
+ def to_s
77
+ class_name = self.class.name.split('::').last
78
+ "<#{class_name} conflicts_expiry_date_time: #{@conflicts_expiry_date_time},"\
79
+ " scheme_reference: #{@scheme_reference}, payment_instrument: #{@payment_instrument}>"
80
+ end
81
+
82
+ # Provides a debugging-friendly string with detailed object information.
83
+ def inspect
84
+ class_name = self.class.name.split('::').last
85
+ "<#{class_name} conflicts_expiry_date_time: #{@conflicts_expiry_date_time.inspect},"\
86
+ " scheme_reference: #{@scheme_reference.inspect}, payment_instrument:"\
87
+ " #{@payment_instrument.inspect}>"
88
+ end
89
+ end
90
+ end