genesis_ruby 0.2.6 → 0.2.8

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 (384) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -0
  3. data/Gemfile.lock +19 -19
  4. data/README.md +23 -0
  5. data/VERSION +1 -1
  6. data/lib/genesis_ruby/api/constants/currencies/iso4217.rb +4 -3
  7. data/lib/genesis_ruby/api/constants/date_time_formats.rb +9 -7
  8. data/lib/genesis_ruby/api/constants/endpoints.rb +4 -2
  9. data/lib/genesis_ruby/api/constants/environments.rb +4 -2
  10. data/lib/genesis_ruby/api/constants/i18n.rb +28 -26
  11. data/lib/genesis_ruby/api/constants/non_financial/kyc/address_supported_types.rb +51 -0
  12. data/lib/genesis_ruby/api/constants/non_financial/kyc/aml_filters.rb +49 -0
  13. data/lib/genesis_ruby/api/constants/non_financial/kyc/create_transaction_payment_methods.rb +23 -0
  14. data/lib/genesis_ruby/api/constants/non_financial/kyc/document_supported_types.rb +6 -4
  15. data/lib/genesis_ruby/api/constants/non_financial/kyc/document_types.rb +2 -0
  16. data/lib/genesis_ruby/api/constants/non_financial/kyc/genders.rb +4 -2
  17. data/lib/genesis_ruby/api/constants/non_financial/kyc/identity_document_methods.rb +27 -0
  18. data/lib/genesis_ruby/api/constants/non_financial/kyc/industry_types.rb +29 -0
  19. data/lib/genesis_ruby/api/constants/non_financial/kyc/languages.rb +318 -0
  20. data/lib/genesis_ruby/api/constants/non_financial/kyc/order_sources.rb +22 -0
  21. data/lib/genesis_ruby/api/constants/non_financial/kyc/profile_current_statuses.rb +2 -0
  22. data/lib/genesis_ruby/api/constants/non_financial/kyc/service_languages.rb +69 -0
  23. data/lib/genesis_ruby/api/constants/non_financial/kyc/transaction_statuses.rb +35 -0
  24. data/lib/genesis_ruby/api/constants/non_financial/kyc/verification_modes.rb +27 -0
  25. data/lib/genesis_ruby/api/constants/non_financial/kyc/verification_statuses.rb +29 -0
  26. data/lib/genesis_ruby/api/constants/states/state.rb +2 -0
  27. data/lib/genesis_ruby/api/constants/states.rb +24 -22
  28. data/lib/genesis_ruby/api/constants/transactions/parameters/african_mobile_operators.rb +8 -6
  29. data/lib/genesis_ruby/api/constants/transactions/parameters/business/payment_types.rb +4 -2
  30. data/lib/genesis_ruby/api/constants/transactions/parameters/cash_payments/cash_payment_types.rb +8 -6
  31. data/lib/genesis_ruby/api/constants/transactions/parameters/cash_payments/company_types.rb +2 -0
  32. data/lib/genesis_ruby/api/constants/transactions/parameters/cash_payments/genders.rb +2 -0
  33. data/lib/genesis_ruby/api/constants/transactions/parameters/cash_payments/marital_statuses.rb +2 -0
  34. data/lib/genesis_ruby/api/constants/transactions/parameters/credential_on_files.rb +5 -3
  35. data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_owner.rb +4 -2
  36. data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_subtype.rb +4 -2
  37. data/lib/genesis_ruby/api/constants/transactions/parameters/customer_identification/customer_identification_type.rb +17 -15
  38. data/lib/genesis_ruby/api/constants/transactions/parameters/digital_asset_types.rb +7 -5
  39. data/lib/genesis_ruby/api/constants/transactions/parameters/funding/business_application_identifier_types.rb +11 -9
  40. data/lib/genesis_ruby/api/constants/transactions/parameters/funding/identifier_types.rb +12 -10
  41. data/lib/genesis_ruby/api/constants/transactions/parameters/funding/receiver_account_types.rb +11 -9
  42. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/amount_types.rb +4 -2
  43. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/frequencies.rb +14 -12
  44. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/intervals.rb +4 -2
  45. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/modes.rb +4 -2
  46. data/lib/genesis_ruby/api/constants/transactions/parameters/managed_recurring/payment_types.rb +6 -4
  47. data/lib/genesis_ruby/api/constants/transactions/parameters/mobile/apple_pay/payment_subtypes.rb +5 -3
  48. data/lib/genesis_ruby/api/constants/transactions/parameters/mobile/google_pay/payment_subtypes.rb +5 -3
  49. data/lib/genesis_ruby/api/constants/transactions/parameters/mpi_protocol_sub_versions.rb +2 -0
  50. data/lib/genesis_ruby/api/constants/transactions/parameters/mpi_protocol_versions.rb +2 -0
  51. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/billing_api/order_by_fields.rb +14 -12
  52. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/billing_api/response_fields.rb +48 -46
  53. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/billing_api/transaction_types.rb +29 -27
  54. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/externally_processed.rb +5 -3
  55. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/processing_type.rb +5 -3
  56. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/sca_exemptions.rb +8 -6
  57. data/lib/genesis_ruby/api/constants/transactions/parameters/non_financial/sort_directions.rb +4 -2
  58. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/bank_account_types.rb +6 -4
  59. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/bank_code_currencies.rb +2 -0
  60. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/bank_codes.rb +203 -201
  61. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/iframe_targets.rb +5 -3
  62. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/payment_types.rb +9 -7
  63. data/lib/genesis_ruby/api/constants/transactions/parameters/online_banking/payout_payment_types.rb +10 -8
  64. data/lib/genesis_ruby/api/constants/transactions/parameters/purpose_of_payment.rb +42 -40
  65. data/lib/genesis_ruby/api/constants/transactions/parameters/recurring/categories.rb +4 -2
  66. data/lib/genesis_ruby/api/constants/transactions/parameters/recurring/types.rb +5 -3
  67. data/lib/genesis_ruby/api/constants/transactions/parameters/refund/bank_account_types.rb +5 -3
  68. data/lib/genesis_ruby/api/constants/transactions/parameters/refund/credit_reason_indicators.rb +6 -4
  69. data/lib/genesis_ruby/api/constants/transactions/parameters/refund/ticket_change_indicators.rb +4 -2
  70. data/lib/genesis_ruby/api/constants/transactions/parameters/sca_exemptions.rb +8 -6
  71. data/lib/genesis_ruby/api/constants/transactions/parameters/source_of_funds.rb +8 -6
  72. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/browser/color_depths.rb +2 -0
  73. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/password_change_indicators.rb +7 -5
  74. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/registration_indicators.rb +7 -5
  75. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/shipping_address_usage_indicators.rb +6 -4
  76. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/suspicious_activity_indicators.rb +4 -2
  77. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/card_holder_account/update_indicators.rb +6 -4
  78. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/challenge_indicators.rb +6 -4
  79. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/challenge_window_sizes.rb +7 -5
  80. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/control/device_types.rb +4 -2
  81. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/delivery_timeframes.rb +6 -4
  82. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/pre_order_purchase_indicators.rb +4 -2
  83. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/reorder_item_indicators.rb +4 -2
  84. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/merchant_risk/shipping_indicators.rb +10 -8
  85. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/purchase/categories.rb +9 -7
  86. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/interfaces.rb +5 -3
  87. data/lib/genesis_ruby/api/constants/transactions/parameters/threeds/version2/sdk/ui_types.rb +7 -5
  88. data/lib/genesis_ruby/api/constants/transactions/parameters/travel_data/ancillary_charges_types.rb +25 -23
  89. data/lib/genesis_ruby/api/constants/transactions/parameters/wallets/pay_pal/payment_types.rb +5 -3
  90. data/lib/genesis_ruby/api/constants/transactions/parameters/wpf/reminder_channels.rb +4 -2
  91. data/lib/genesis_ruby/api/constants/transactions.rb +98 -93
  92. data/lib/genesis_ruby/api/mixins/constants/common.rb +2 -0
  93. data/lib/genesis_ruby/api/mixins/requests/address_info_attributes.rb +2 -0
  94. data/lib/genesis_ruby/api/mixins/requests/attribute_validation.rb +2 -0
  95. data/lib/genesis_ruby/api/mixins/requests/birth_date_attributes.rb +2 -0
  96. data/lib/genesis_ruby/api/mixins/requests/customer_address/billing_info_attributes.rb +2 -0
  97. data/lib/genesis_ruby/api/mixins/requests/customer_address/customer_info_attributes.rb +3 -3
  98. data/lib/genesis_ruby/api/mixins/requests/customer_address/shipping_info_attributes.rb +2 -0
  99. data/lib/genesis_ruby/api/mixins/requests/digital_asset_type_attributes.rb +2 -0
  100. data/lib/genesis_ruby/api/mixins/requests/document_attributes.rb +2 -0
  101. data/lib/genesis_ruby/api/mixins/requests/financial/african_mobile_attributes.rb +2 -0
  102. data/lib/genesis_ruby/api/mixins/requests/financial/async_attributes.rb +2 -0
  103. data/lib/genesis_ruby/api/mixins/requests/financial/bank_attributes.rb +2 -0
  104. data/lib/genesis_ruby/api/mixins/requests/financial/base_attributes.rb +2 -0
  105. data/lib/genesis_ruby/api/mixins/requests/financial/beneficiary_attributes.rb +2 -0
  106. data/lib/genesis_ruby/api/mixins/requests/financial/business/airlines_air_carriers_attributes.rb +2 -0
  107. data/lib/genesis_ruby/api/mixins/requests/financial/business/business_attributes.rb +2 -0
  108. data/lib/genesis_ruby/api/mixins/requests/financial/business/car_plane_and_boat_rentals_attributes.rb +2 -0
  109. data/lib/genesis_ruby/api/mixins/requests/financial/business/cruise_lines_attributes.rb +2 -0
  110. data/lib/genesis_ruby/api/mixins/requests/financial/business/event_management_attributes.rb +2 -0
  111. data/lib/genesis_ruby/api/mixins/requests/financial/business/furniture_attributes.rb +2 -0
  112. data/lib/genesis_ruby/api/mixins/requests/financial/business/hotels_and_real_estate_rentals_attributes.rb +2 -0
  113. data/lib/genesis_ruby/api/mixins/requests/financial/business/travel_agencies_attributes.rb +2 -0
  114. data/lib/genesis_ruby/api/mixins/requests/financial/cards/account_owner_attributes.rb +2 -0
  115. data/lib/genesis_ruby/api/mixins/requests/financial/cards/credential_on_file_attributes.rb +2 -0
  116. data/lib/genesis_ruby/api/mixins/requests/financial/cards/credit_card_attributes.rb +2 -0
  117. data/lib/genesis_ruby/api/mixins/requests/financial/cards/fx_rate_attributes.rb +2 -0
  118. data/lib/genesis_ruby/api/mixins/requests/financial/cards/installment_attributes.rb +2 -0
  119. data/lib/genesis_ruby/api/mixins/requests/financial/cards/mpi_attributes.rb +2 -0
  120. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/managed_recurring_attributes.rb +2 -0
  121. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/managed_recurring_indian_card_attributes.rb +2 -0
  122. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_category_attributes.rb +2 -0
  123. data/lib/genesis_ruby/api/mixins/requests/financial/cards/recurring/recurring_type_attributes.rb +2 -0
  124. data/lib/genesis_ruby/api/mixins/requests/financial/cards/tokenization_attributes.rb +2 -0
  125. data/lib/genesis_ruby/api/mixins/requests/financial/cards/tokenization_params_attributes.rb +2 -0
  126. data/lib/genesis_ruby/api/mixins/requests/financial/cards/ucof_attributes.rb +2 -0
  127. data/lib/genesis_ruby/api/mixins/requests/financial/consumer_identifier_attributes.rb +2 -0
  128. data/lib/genesis_ruby/api/mixins/requests/financial/crypto_attributes.rb +2 -0
  129. data/lib/genesis_ruby/api/mixins/requests/financial/customer_account_attributes.rb +2 -0
  130. data/lib/genesis_ruby/api/mixins/requests/financial/customer_identification_attributes.rb +2 -0
  131. data/lib/genesis_ruby/api/mixins/requests/financial/dynamic_descriptor_attributes.rb +2 -0
  132. data/lib/genesis_ruby/api/mixins/requests/financial/funding_attributes.rb +2 -0
  133. data/lib/genesis_ruby/api/mixins/requests/financial/gaming_attributes.rb +2 -0
  134. data/lib/genesis_ruby/api/mixins/requests/financial/gift_cards_attributes.rb +2 -0
  135. data/lib/genesis_ruby/api/mixins/requests/financial/mobile/apple_pay_token_attributes.rb +2 -0
  136. data/lib/genesis_ruby/api/mixins/requests/financial/mobile/google_pay_token_attributes.rb +2 -0
  137. data/lib/genesis_ruby/api/mixins/requests/financial/moto_attributes.rb +2 -0
  138. data/lib/genesis_ruby/api/mixins/requests/financial/notification_attributes.rb +2 -0
  139. data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/payer_attributes.rb +2 -0
  140. data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/pix_attributes.rb +2 -0
  141. data/lib/genesis_ruby/api/mixins/requests/financial/online_banking_payments/virtual_payment_address_attributes.rb +2 -0
  142. data/lib/genesis_ruby/api/mixins/requests/financial/payment_attributes.rb +2 -0
  143. data/lib/genesis_ruby/api/mixins/requests/financial/pending_payment_attributes.rb +2 -0
  144. data/lib/genesis_ruby/api/mixins/requests/financial/preauthorization_attributes.rb +2 -0
  145. data/lib/genesis_ruby/api/mixins/requests/financial/purpose_of_payment_attributes.rb +2 -0
  146. data/lib/genesis_ruby/api/mixins/requests/financial/reference_attributes.rb +2 -0
  147. data/lib/genesis_ruby/api/mixins/requests/financial/risk_attributes.rb +2 -0
  148. data/lib/genesis_ruby/api/mixins/requests/financial/sca_attributes.rb +2 -0
  149. data/lib/genesis_ruby/api/mixins/requests/financial/source_of_funds_attributes.rb +2 -0
  150. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/browser.rb +2 -0
  151. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/card_holder_account.rb +2 -0
  152. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/common_attributes.rb +2 -0
  153. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/control.rb +2 -0
  154. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/merchant_risk.rb +2 -0
  155. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/method.rb +2 -0
  156. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/purchase.rb +2 -0
  157. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/recurring.rb +2 -0
  158. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/sdk.rb +2 -0
  159. data/lib/genesis_ruby/api/mixins/requests/financial/threeds/version2/wpf_attributes.rb +2 -0
  160. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/airline_itinerary_attributes.rb +2 -0
  161. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/car_rental_attributes.rb +2 -0
  162. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/hotel_rental_attributes.rb +2 -0
  163. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/reference_ticket_attributes.rb +2 -0
  164. data/lib/genesis_ruby/api/mixins/requests/financial/travel_data/travel_attributes.rb +2 -0
  165. data/lib/genesis_ruby/api/mixins/requests/non_financial/billing_api/sort_attributes.rb +2 -0
  166. data/lib/genesis_ruby/api/mixins/requests/non_financial/date_attributes.rb +2 -0
  167. data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/id_attributes.rb +2 -0
  168. data/lib/genesis_ruby/api/mixins/requests/non_financial/fx/tier_id_attributes.rb +2 -0
  169. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/background_checks_attributes.rb +75 -0
  170. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/customer_information_attributes.rb +2 -0
  171. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/deposit_limits_attributes.rb +40 -0
  172. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/document_attributes.rb +2 -0
  173. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/face_attributes.rb +61 -0
  174. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/identity_document_attributes.rb +51 -0
  175. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/kyc_billing_info_attributes.rb +87 -0
  176. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/kyc_shipping_info_attributes.rb +85 -0
  177. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/payment_details_attributes.rb +33 -0
  178. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/verification_attributes.rb +72 -0
  179. data/lib/genesis_ruby/api/mixins/requests/non_financial/kyc/verification_document_attributes.rb +65 -0
  180. data/lib/genesis_ruby/api/mixins/requests/non_financial/mode_attributes.rb +2 -0
  181. data/lib/genesis_ruby/api/mixins/requests/non_financial/paging_attributes.rb +2 -0
  182. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/card_data_attributes.rb +2 -0
  183. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/token_attributes.rb +2 -0
  184. data/lib/genesis_ruby/api/mixins/requests/non_financial/tokenization/tokenization_attributes.rb +3 -8
  185. data/lib/genesis_ruby/api/mixins/requests/restricted_setter.rb +12 -0
  186. data/lib/genesis_ruby/api/mixins/requests/smart_router_attributes.rb +37 -0
  187. data/lib/genesis_ruby/api/mixins/requests/wpf_reminders_attributes.rb +2 -0
  188. data/lib/genesis_ruby/api/notification.rb +8 -6
  189. data/lib/genesis_ruby/api/request.rb +14 -6
  190. data/lib/genesis_ruby/api/requests/base/consumer.rb +2 -0
  191. data/lib/genesis_ruby/api/requests/base/financial.rb +3 -21
  192. data/lib/genesis_ruby/api/requests/base/financials/credit_card.rb +2 -0
  193. data/lib/genesis_ruby/api/requests/base/financials/south_american_payments.rb +2 -0
  194. data/lib/genesis_ruby/api/requests/base/graphql.rb +2 -0
  195. data/lib/genesis_ruby/api/requests/base/non_financial/kyc/base.rb +2 -0
  196. data/lib/genesis_ruby/api/requests/base/reference.rb +2 -0
  197. data/lib/genesis_ruby/api/requests/base/versioned.rb +3 -1
  198. data/lib/genesis_ruby/api/requests/financial/capture.rb +2 -0
  199. data/lib/genesis_ruby/api/requests/financial/cards/argencard.rb +2 -0
  200. data/lib/genesis_ruby/api/requests/financial/cards/aura.rb +2 -0
  201. data/lib/genesis_ruby/api/requests/financial/cards/authorize.rb +2 -0
  202. data/lib/genesis_ruby/api/requests/financial/cards/authorize3d.rb +2 -0
  203. data/lib/genesis_ruby/api/requests/financial/cards/bancontact.rb +2 -0
  204. data/lib/genesis_ruby/api/requests/financial/cards/cabal.rb +2 -0
  205. data/lib/genesis_ruby/api/requests/financial/cards/cencosud.rb +2 -0
  206. data/lib/genesis_ruby/api/requests/financial/cards/credit.rb +2 -0
  207. data/lib/genesis_ruby/api/requests/financial/cards/elo.rb +2 -0
  208. data/lib/genesis_ruby/api/requests/financial/cards/naranja.rb +2 -0
  209. data/lib/genesis_ruby/api/requests/financial/cards/nativa.rb +2 -0
  210. data/lib/genesis_ruby/api/requests/financial/cards/payout.rb +2 -0
  211. data/lib/genesis_ruby/api/requests/financial/cards/sale.rb +2 -0
  212. data/lib/genesis_ruby/api/requests/financial/cards/sale3d.rb +2 -0
  213. data/lib/genesis_ruby/api/requests/financial/cards/tarjeta_shopping.rb +2 -0
  214. data/lib/genesis_ruby/api/requests/financial/cards/threeds/v2/method_continue.rb +2 -0
  215. data/lib/genesis_ruby/api/requests/financial/cash_payments/baloto.rb +2 -0
  216. data/lib/genesis_ruby/api/requests/financial/cash_payments/banco_de_occidente.rb +2 -0
  217. data/lib/genesis_ruby/api/requests/financial/cash_payments/boleto.rb +2 -0
  218. data/lib/genesis_ruby/api/requests/financial/cash_payments/cash.rb +2 -0
  219. data/lib/genesis_ruby/api/requests/financial/cash_payments/efecty.rb +2 -0
  220. data/lib/genesis_ruby/api/requests/financial/cash_payments/oxxo.rb +2 -0
  221. data/lib/genesis_ruby/api/requests/financial/cash_payments/pago_facil.rb +2 -0
  222. data/lib/genesis_ruby/api/requests/financial/cash_payments/pix.rb +2 -0
  223. data/lib/genesis_ruby/api/requests/financial/cash_payments/redpagos.rb +2 -0
  224. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/payout.rb +2 -0
  225. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/refund.rb +2 -0
  226. data/lib/genesis_ruby/api/requests/financial/crypto/bit_pay/sale.rb +2 -0
  227. data/lib/genesis_ruby/api/requests/financial/gift_cards/fashioncheque.rb +2 -0
  228. data/lib/genesis_ruby/api/requests/financial/gift_cards/intersolve.rb +2 -0
  229. data/lib/genesis_ruby/api/requests/financial/gift_cards/tcs.rb +2 -0
  230. data/lib/genesis_ruby/api/requests/financial/mobile/african_mobile_sale.rb +2 -0
  231. data/lib/genesis_ruby/api/requests/financial/mobile/apple_pay.rb +2 -0
  232. data/lib/genesis_ruby/api/requests/financial/mobile/google_pay.rb +2 -0
  233. data/lib/genesis_ruby/api/requests/financial/mobile/russian_mobile_sale.rb +2 -0
  234. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/banco_do_brasil.rb +2 -0
  235. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/bancomer.rb +2 -0
  236. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/bradesco.rb +2 -0
  237. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/davivienda.rb +2 -0
  238. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/eps.rb +2 -0
  239. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/idebit/pay_in.rb +2 -0
  240. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/idebit/pay_out.rb +2 -0
  241. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_in.rb +2 -0
  242. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/insta_debit/pay_out.rb +2 -0
  243. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/itau.rb +2 -0
  244. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/multibanco.rb +2 -0
  245. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/my_bank.rb +2 -0
  246. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_in.rb +2 -0
  247. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/online_banking/pay_out.rb +2 -0
  248. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/pay_u.rb +2 -0
  249. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/post_finance.rb +2 -0
  250. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/pse.rb +2 -0
  251. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/rapi_pago.rb +2 -0
  252. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/safety_pay.rb +2 -0
  253. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/santander.rb +2 -0
  254. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/sofort.rb +2 -0
  255. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/trustly_sale.rb +2 -0
  256. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/upi.rb +2 -0
  257. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/webpay.rb +2 -0
  258. data/lib/genesis_ruby/api/requests/financial/online_banking_payments/wechat.rb +2 -0
  259. data/lib/genesis_ruby/api/requests/financial/payout/global_payout.rb +42 -0
  260. data/lib/genesis_ruby/api/requests/financial/preauthorizations/incremental_authorize.rb +2 -0
  261. data/lib/genesis_ruby/api/requests/financial/preauthorizations/partial_reversal.rb +2 -0
  262. data/lib/genesis_ruby/api/requests/financial/refund.rb +2 -0
  263. data/lib/genesis_ruby/api/requests/financial/sdd/recurring/init_recurring_sale.rb +2 -0
  264. data/lib/genesis_ruby/api/requests/financial/sdd/recurring/recurring_sale.rb +2 -0
  265. data/lib/genesis_ruby/api/requests/financial/sdd/refund.rb +2 -0
  266. data/lib/genesis_ruby/api/requests/financial/sdd/sale.rb +2 -0
  267. data/lib/genesis_ruby/api/requests/financial/void.rb +2 -0
  268. data/lib/genesis_ruby/api/requests/financial/vouchers/neosurf.rb +2 -0
  269. data/lib/genesis_ruby/api/requests/financial/wallets/alipay.rb +2 -0
  270. data/lib/genesis_ruby/api/requests/financial/wallets/pay_pal.rb +2 -0
  271. data/lib/genesis_ruby/api/requests/non_financial/billing_api/transactions.rb +2 -0
  272. data/lib/genesis_ruby/api/requests/non_financial/consumers/create.rb +2 -0
  273. data/lib/genesis_ruby/api/requests/non_financial/consumers/disable.rb +2 -0
  274. data/lib/genesis_ruby/api/requests/non_financial/consumers/enable.rb +2 -0
  275. data/lib/genesis_ruby/api/requests/non_financial/consumers/get_cards.rb +2 -0
  276. data/lib/genesis_ruby/api/requests/non_financial/consumers/retrieve.rb +2 -0
  277. data/lib/genesis_ruby/api/requests/non_financial/consumers/update.rb +2 -0
  278. data/lib/genesis_ruby/api/requests/non_financial/fraud/chargeback/date_range.rb +2 -0
  279. data/lib/genesis_ruby/api/requests/non_financial/fraud/chargeback/transaction.rb +2 -0
  280. data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/date_range.rb +2 -0
  281. data/lib/genesis_ruby/api/requests/non_financial/fraud/reports/transaction.rb +2 -0
  282. data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/date_range.rb +2 -0
  283. data/lib/genesis_ruby/api/requests/non_financial/fraud/retrieval/transaction.rb +2 -0
  284. data/lib/genesis_ruby/api/requests/non_financial/fx/get_rate.rb +6 -3
  285. data/lib/genesis_ruby/api/requests/non_financial/fx/get_rates.rb +7 -2
  286. data/lib/genesis_ruby/api/requests/non_financial/fx/get_tier.rb +7 -2
  287. data/lib/genesis_ruby/api/requests/non_financial/fx/get_tiers.rb +2 -0
  288. data/lib/genesis_ruby/api/requests/non_financial/fx/search_rate.rb +7 -2
  289. data/lib/genesis_ruby/api/requests/non_financial/installments/fetch.rb +2 -0
  290. data/lib/genesis_ruby/api/requests/non_financial/installments/show.rb +7 -2
  291. data/lib/genesis_ruby/api/requests/non_financial/kyc/call/create.rb +90 -0
  292. data/lib/genesis_ruby/api/requests/non_financial/kyc/call/update.rb +60 -0
  293. data/lib/genesis_ruby/api/requests/non_financial/kyc/cnpj/check.rb +52 -0
  294. data/lib/genesis_ruby/api/requests/non_financial/kyc/consumer_registration/create.rb +2 -0
  295. data/lib/genesis_ruby/api/requests/non_financial/kyc/consumer_registration/update.rb +2 -0
  296. data/lib/genesis_ruby/api/requests/non_financial/kyc/cpf/check.rb +52 -0
  297. data/lib/genesis_ruby/api/requests/non_financial/kyc/identity_document/download.rb +43 -0
  298. data/lib/genesis_ruby/api/requests/non_financial/kyc/identity_document/upload.rb +67 -0
  299. data/lib/genesis_ruby/api/requests/non_financial/kyc/transaction/create.rb +190 -0
  300. data/lib/genesis_ruby/api/requests/non_financial/kyc/transaction/update.rb +63 -0
  301. data/lib/genesis_ruby/api/requests/non_financial/kyc/verifications/create.rb +90 -0
  302. data/lib/genesis_ruby/api/requests/non_financial/kyc/verifications/register.rb +44 -0
  303. data/lib/genesis_ruby/api/requests/non_financial/kyc/verifications/remote_identity.rb +2 -43
  304. data/lib/genesis_ruby/api/requests/non_financial/kyc/verifications/status.rb +44 -0
  305. data/lib/genesis_ruby/api/requests/non_financial/payee/account/create.rb +73 -0
  306. data/lib/genesis_ruby/api/requests/non_financial/payee/account/list.rb +74 -0
  307. data/lib/genesis_ruby/api/requests/non_financial/payee/account/retrieve.rb +61 -0
  308. data/lib/genesis_ruby/api/requests/non_financial/payee/account/update.rb +59 -0
  309. data/lib/genesis_ruby/api/requests/non_financial/payee/create.rb +60 -0
  310. data/lib/genesis_ruby/api/requests/non_financial/payee/retrieve.rb +57 -0
  311. data/lib/genesis_ruby/api/requests/non_financial/payee/update.rb +58 -0
  312. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/date_range.rb +2 -0
  313. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/post_date_range.rb +2 -0
  314. data/lib/genesis_ruby/api/requests/non_financial/processed_transactions/transaction.rb +2 -0
  315. data/lib/genesis_ruby/api/requests/non_financial/reconcile/date_range.rb +2 -0
  316. data/lib/genesis_ruby/api/requests/non_financial/reconcile/transaction.rb +10 -0
  317. data/lib/genesis_ruby/api/requests/non_financial/sca/checker.rb +2 -0
  318. data/lib/genesis_ruby/api/requests/non_financial/tokenization/cryptogram.rb +2 -0
  319. data/lib/genesis_ruby/api/requests/non_financial/tokenization/delete_token.rb +2 -0
  320. data/lib/genesis_ruby/api/requests/non_financial/tokenization/detokenize.rb +2 -0
  321. data/lib/genesis_ruby/api/requests/non_financial/tokenization/get_card.rb +2 -0
  322. data/lib/genesis_ruby/api/requests/non_financial/tokenization/tokenize.rb +2 -0
  323. data/lib/genesis_ruby/api/requests/non_financial/tokenization/update_token.rb +2 -0
  324. data/lib/genesis_ruby/api/requests/non_financial/tokenization/validate_token.rb +2 -0
  325. data/lib/genesis_ruby/api/requests/wpf/create.rb +2 -0
  326. data/lib/genesis_ruby/api/requests/wpf/reconcile.rb +2 -0
  327. data/lib/genesis_ruby/api/response.rb +2 -0
  328. data/lib/genesis_ruby/builder.rb +11 -4
  329. data/lib/genesis_ruby/builders/base.rb +2 -0
  330. data/lib/genesis_ruby/builders/form.rb +2 -0
  331. data/lib/genesis_ruby/builders/graphql.rb +2 -0
  332. data/lib/genesis_ruby/builders/json.rb +2 -0
  333. data/lib/genesis_ruby/builders/patch.rb +32 -0
  334. data/lib/genesis_ruby/builders/xml.rb +2 -0
  335. data/lib/genesis_ruby/configuration.rb +3 -1
  336. data/lib/genesis_ruby/connection.rb +2 -0
  337. data/lib/genesis_ruby/dependencies.rb +2 -0
  338. data/lib/genesis_ruby/errors/builder_error.rb +2 -0
  339. data/lib/genesis_ruby/errors/endpoint_not_set_error.rb +2 -0
  340. data/lib/genesis_ruby/errors/error.rb +2 -0
  341. data/lib/genesis_ruby/errors/invalid_argument_error.rb +2 -0
  342. data/lib/genesis_ruby/errors/network_error.rb +2 -0
  343. data/lib/genesis_ruby/errors/object_formatter_error.rb +2 -0
  344. data/lib/genesis_ruby/errors/parameter_error.rb +2 -0
  345. data/lib/genesis_ruby/errors/parser_error.rb +2 -0
  346. data/lib/genesis_ruby/errors/request_error.rb +2 -0
  347. data/lib/genesis_ruby/errors/response_error.rb +2 -0
  348. data/lib/genesis_ruby/network/adapter/base_adapter.rb +2 -0
  349. data/lib/genesis_ruby/network/adapter/net_http_adapter.rb +5 -0
  350. data/lib/genesis_ruby/network/base_network.rb +5 -3
  351. data/lib/genesis_ruby/network/net_http.rb +2 -0
  352. data/lib/genesis_ruby/parser.rb +4 -2
  353. data/lib/genesis_ruby/parsers/base.rb +2 -0
  354. data/lib/genesis_ruby/parsers/json.rb +2 -0
  355. data/lib/genesis_ruby/parsers/xml.rb +2 -0
  356. data/lib/genesis_ruby/utils/common.rb +2 -0
  357. data/lib/genesis_ruby/utils/country.rb +2 -0
  358. data/lib/genesis_ruby/utils/formatters/base.rb +2 -0
  359. data/lib/genesis_ruby/utils/formatters/response/definitions.rb +2 -0
  360. data/lib/genesis_ruby/utils/formatters/response/formats/amount.rb +2 -0
  361. data/lib/genesis_ruby/utils/formatters/response/formats/timestamp.rb +2 -0
  362. data/lib/genesis_ruby/utils/formatters/response/loader.rb +2 -0
  363. data/lib/genesis_ruby/utils/money/base/strategy.rb +2 -0
  364. data/lib/genesis_ruby/utils/money/conversions/amount_to_exponent.rb +2 -0
  365. data/lib/genesis_ruby/utils/money/conversions/exponent_to_amount.rb +2 -0
  366. data/lib/genesis_ruby/utils/money/format.rb +2 -0
  367. data/lib/genesis_ruby/utils/money_format.rb +2 -0
  368. data/lib/genesis_ruby/utils/object_formatter.rb +2 -0
  369. data/lib/genesis_ruby/utils/options/api_config.rb +13 -0
  370. data/lib/genesis_ruby/utils/options/base.rb +2 -0
  371. data/lib/genesis_ruby/utils/options/network_adapter_config.rb +4 -1
  372. data/lib/genesis_ruby/utils/options/reminder.rb +2 -0
  373. data/lib/genesis_ruby/utils/threeds/v2.rb +2 -0
  374. data/lib/genesis_ruby/utils/transactions/financial_types.rb +2 -0
  375. data/lib/genesis_ruby/utils/transactions/references/capturable_types.rb +2 -0
  376. data/lib/genesis_ruby/utils/transactions/references/refundable_types.rb +2 -0
  377. data/lib/genesis_ruby/utils/transactions/references/voidable_types.rb +2 -0
  378. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/base.rb +2 -0
  379. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/leg.rb +2 -0
  380. data/lib/genesis_ruby/utils/transactions/travel_data/airline_itinerary/tax.rb +2 -0
  381. data/lib/genesis_ruby/utils/transactions/wpf_types.rb +2 -0
  382. data/lib/genesis_ruby/version.rb +3 -1
  383. data/lib/genesis_ruby.rb +2 -0
  384. metadata +43 -2
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Mixins
6
+ module Requests
7
+ module NonFinancial
8
+ module Kyc
9
+ # Mixin KycBillingInfoAttributes for KYC Non-Financial API services
10
+ module KycBillingInfoAttributes
11
+
12
+ attr_accessor :billing_first_name, :billing_last_name, :billing_address1, :billing_address2,
13
+ :billing_city, :billing_province, :billing_zip_code, :billing_birth_date
14
+ attr_reader :billing_customer_email, :billing_country, :billing_gender, :billing_phone1
15
+
16
+ # Sets the billing_customer_email attribute
17
+ def billing_customer_email=(value)
18
+ error_message = format(
19
+ 'Invalid value given for %{attribute}',
20
+ attribute: __method__
21
+ )
22
+
23
+ raise GenesisRuby::InvalidArgumentError, error_message unless value.nil? || value =~ /\A.+@.+\..+\Z/
24
+
25
+ @billing_customer_email = value
26
+ end
27
+
28
+ # Sets the billing_country attribute
29
+ def billing_country=(value)
30
+ allowed_options(
31
+ attribute: __method__,
32
+ allowed: GenesisRuby::Utils::Country::COUNTRIES.keys,
33
+ value: value,
34
+ error_message: 'Invalid country code for Create Transaction billing country',
35
+ allow_empty: true
36
+ )
37
+ end
38
+
39
+ # Sets the billing_gender attribute
40
+ def billing_gender=(value)
41
+ allowed_options(
42
+ attribute: __method__,
43
+ allowed: Api::Constants::NonFinancial::Kyc::Genders.all,
44
+ value: value,
45
+ error_message: 'Invalid gender for Create Transaction billing gender',
46
+ allow_empty: true
47
+ )
48
+ end
49
+
50
+ # Sets the billing_phone1 attribute
51
+ def billing_phone1=(value)
52
+ error_message = format(
53
+ 'Invalid value given for %{attribute}',
54
+ attribute: __method__
55
+ )
56
+ raise GenesisRuby::InvalidArgumentError, error_message unless value.nil? || value =~ /^\d+$/
57
+
58
+ @billing_phone1 = value
59
+ end
60
+
61
+ protected
62
+
63
+ # Returns KYC billing information structure
64
+ def kyc_billing_info_structure # rubocop:disable Metrics/MethodLength
65
+ {
66
+ first_name: billing_first_name,
67
+ last_name: billing_last_name,
68
+ customer_email: billing_customer_email,
69
+ address1: billing_address1,
70
+ address2: billing_address2,
71
+ city: billing_city,
72
+ province: billing_province,
73
+ zip_code: billing_zip_code,
74
+ country: billing_country,
75
+ phone1: billing_phone1,
76
+ birth_date: billing_birth_date,
77
+ gender: billing_gender
78
+ }
79
+ end
80
+
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Mixins
6
+ module Requests
7
+ module NonFinancial
8
+ module Kyc
9
+ # Mixin KycShippingInfoAttributes for KYC Non-Financial API services
10
+ module KycShippingInfoAttributes
11
+
12
+ attr_accessor :shipping_first_name, :shipping_last_name, :shipping_address1, :shipping_address2,
13
+ :shipping_city, :shipping_province, :shipping_zip_code
14
+ attr_reader :shipping_customer_email, :shipping_country, :shipping_phone1
15
+
16
+ # Sets the shipping customer email
17
+ def shipping_customer_email=(value)
18
+ error_message = format(
19
+ 'Invalid value given for %{attribute}',
20
+ attribute: __method__
21
+ )
22
+
23
+ raise GenesisRuby::InvalidArgumentError, error_message unless value.nil? || value =~ /\A.+@.+\..+\Z/
24
+
25
+ @shipping_customer_email = value
26
+ end
27
+
28
+ # Sets the shipping country attribute
29
+ def shipping_country=(value)
30
+ allowed_options(
31
+ attribute: __method__,
32
+ allowed: GenesisRuby::Utils::Country::COUNTRIES.keys,
33
+ value: value,
34
+ error_message: 'Invalid country code for Create Transaction shipping country',
35
+ allow_empty: true
36
+ )
37
+ end
38
+
39
+ # Sets the shipping_gender attribute
40
+ def shipping_gender=(value)
41
+ allowed_options(
42
+ attribute: __method__,
43
+ allowed: Api::Constants::NonFinancial::Kyc::Genders.all,
44
+ value: value,
45
+ error_message: 'Invalid gender for Create Transaction shipping gender',
46
+ allow_empty: true
47
+ )
48
+ end
49
+
50
+ # Sets the shipping_phone1 attribute
51
+ def shipping_phone1=(value)
52
+ error_message = format(
53
+ 'Invalid value given for %{attribute}',
54
+ attribute: __method__
55
+ )
56
+ raise GenesisRuby::InvalidArgumentError, error_message unless value.nil? || value =~ /^\d+$/
57
+
58
+ @shipping_phone1 = value
59
+ end
60
+
61
+ protected
62
+
63
+ # Returns KYC Shipping Information structure
64
+ def kyc_shipping_info_structure # rubocop:disable Metrics/MethodLength
65
+ {
66
+ first_name: shipping_first_name,
67
+ last_name: shipping_last_name,
68
+ customer_email: shipping_customer_email,
69
+ address1: shipping_address1,
70
+ address2: shipping_address2,
71
+ city: shipping_city,
72
+ province: shipping_province,
73
+ zip_code: shipping_zip_code,
74
+ country: shipping_country,
75
+ phone1: shipping_phone1
76
+ }
77
+ end
78
+
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Mixins
6
+ module Requests
7
+ module NonFinancial
8
+ module Kyc
9
+ # Payment Details Attributes mixin for KYC Non-Financial API services
10
+ module PaymentDetailsAttributes
11
+
12
+ attr_accessor :bin, :tail, :cvv_present, :hashed_pan, :routing, :account, :ewallet_id
13
+
14
+ # Returns the payment details structure
15
+ def payment_details_structure
16
+ {
17
+ bin: bin,
18
+ tail: tail,
19
+ cvv_present: cvv_present,
20
+ hashed_pan: hashed_pan,
21
+ routing: routing,
22
+ account: account,
23
+ ewallet_id: ewallet_id
24
+ }
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'genesis_ruby/api/constants/non_financial/kyc/document_supported_types'
4
+ require 'genesis_ruby/utils/country'
5
+
6
+ module GenesisRuby
7
+ module Api
8
+ module Mixins
9
+ module Requests
10
+ module NonFinancial
11
+ module Kyc
12
+ # Common Verification Attributes mixin
13
+ module VerificationAttributes
14
+
15
+ attr_accessor :reference_id
16
+ attr_reader :email, :backside_proof_required, :country
17
+
18
+ # User's email
19
+ def email=(value)
20
+ parse_email attribute: __method__, value: value
21
+ end
22
+
23
+ # Signifies that both sides of the document are required to verify the identity
24
+ def backside_proof_required=(value)
25
+ allowed_options attribute: __method__,
26
+ allowed: [true, false],
27
+ value: value,
28
+ allow_empty: true,
29
+ error_message: 'Accepts only boolean values'
30
+ end
31
+
32
+ # Document's expiry date
33
+ def expiry_date
34
+ @expiry_date&.strftime(
35
+ Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
36
+ )
37
+ end
38
+
39
+ # Document's expiry date
40
+ def expiry_date=(value)
41
+ parse_date attribute: __method__, value: value, allow_empty: true
42
+ end
43
+
44
+ # Supported types of document that can be verified
45
+ def document_supported_types=(value)
46
+ parse_array_of_strings attribute: __method__,
47
+ value: value,
48
+ allowed: Api::Constants::NonFinancial::Kyc::DocumentSupportedTypes.all,
49
+ allow_empty: true
50
+ end
51
+
52
+ # Supported types of document that can be verified
53
+ def document_supported_types
54
+ @document_supported_types || []
55
+ end
56
+
57
+ # Country code
58
+ def country=(value)
59
+ allowed_options attribute: __method__,
60
+ allowed: GenesisRuby::Utils::Country::COUNTRIES.keys,
61
+ value: value,
62
+ error_message: 'Invalid country code',
63
+ allow_empty: true
64
+ end
65
+
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Mixins
6
+ module Requests
7
+ module NonFinancial
8
+ module Kyc
9
+ # Data used by the document verification service to check
10
+ # the authenticity of identity documents submitted by customers
11
+ module VerificationDocumentAttributes
12
+
13
+ attr_accessor :document_first_name, :document_last_name
14
+ attr_reader :document_allow_offline, :document_allow_online
15
+
16
+ # Customer's date of birth
17
+ def document_date_of_birth
18
+ @document_date_of_birth&.strftime(
19
+ GenesisRuby::Api::Constants::DateTimeFormats::YYYY_MM_DD_ISO_8601
20
+ )
21
+ end
22
+
23
+ # Customer's date of birth
24
+ def document_date_of_birth=(value)
25
+ parse_date attribute: __method__, value: value, allow_empty: true
26
+ end
27
+
28
+ # Whether uploading of previously taken picture is allowed for verification of document
29
+ def document_allow_offline=(value)
30
+ allowed_options attribute: __method__,
31
+ allowed: [true, false],
32
+ value: value,
33
+ allow_empty: true,
34
+ error_message: 'Accepts only boolean values'
35
+ end
36
+
37
+ # Whether the realtime usage of device camera is allowed for verification of document
38
+ def document_allow_online=(value)
39
+ allowed_options attribute: __method__,
40
+ allowed: [true, false],
41
+ value: value,
42
+ allow_empty: true,
43
+ error_message: 'Accepts only boolean values'
44
+ end
45
+
46
+ protected
47
+
48
+ # Defines the structure of the document attributes
49
+ def verification_document_attributes_structure
50
+ {
51
+ first_name: document_first_name,
52
+ last_name: document_last_name,
53
+ date_of_birth: document_date_of_birth,
54
+ allow_offline: document_allow_offline,
55
+ allow_online: document_allow_online
56
+ }
57
+ end
58
+
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Mixins
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Mixins
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Mixins
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Mixins
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Mixins
@@ -17,14 +19,7 @@ module GenesisRuby
17
19
 
18
20
  # Consumer e-mail address
19
21
  def email=(value)
20
- error_message = format(
21
- 'Invalid value given for %{attribute}',
22
- attribute: __method__
23
- )
24
-
25
- raise GenesisRuby::ParameterError, error_message unless value.nil? || value =~ /\A.+@.+\..+\Z/
26
-
27
- @email = value
22
+ parse_email attribute: __method__, value: value, allow_empty: true
28
23
  end
29
24
 
30
25
  protected
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'genesis_ruby/api/constants/date_time_formats'
2
4
  require 'genesis_ruby/utils/common'
3
5
 
@@ -79,6 +81,16 @@ module GenesisRuby
79
81
  assign_instance_variable attribute, value
80
82
  end
81
83
 
84
+ # Parses given value to a valid email address and assign it to the given attribute
85
+ # If allow_empty is true, it will assign nil if the value is empty
86
+ def parse_email(attribute:, value:, allow_empty: false)
87
+ return assign_instance_variable attribute, nil if allow_empty && value.to_s.empty?
88
+
89
+ raise InvalidArgumentError, "#{attribute} must be a valid email address." unless value =~ /\A.+@.+\..+\Z/
90
+
91
+ assign_instance_variable attribute, value
92
+ end
93
+
82
94
  private
83
95
 
84
96
  # Helper for assigning a attribute to the class instance
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GenesisRuby
4
+ module Api
5
+ module Mixins
6
+ module Requests
7
+ # Smart Router Attributes Mixin
8
+ module SmartRouterAttributes
9
+
10
+ # Use Smart Router endpoint for the current request
11
+ def use_smart_router
12
+ @use_smart_router ||= false
13
+ end
14
+
15
+ # Use Smart Router endpoint for the current request
16
+ def use_smart_router=(value)
17
+ unless [true, false].include? value
18
+ raise InvalidArgumentError, 'Given invalid Use Smart Routing value! Allowed: true, false'
19
+ end
20
+
21
+ @use_smart_router = value
22
+ end
23
+
24
+ protected
25
+
26
+ # Process the request
27
+ def process_request_parameters
28
+ init_api_smart_router_configuration if use_smart_router
29
+
30
+ super
31
+ end
32
+
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'genesis_ruby/utils/options/reminder'
2
4
 
3
5
  module GenesisRuby
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'cgi'
2
4
  require 'digest'
3
5
 
@@ -9,14 +11,14 @@ module GenesisRuby
9
11
  attr_reader :unique_id, :notification, :reconciliation
10
12
 
11
13
  # Signature algorithms
12
- SHA1_SIGNATURE_TYPE = 'SHA1'.freeze
13
- SHA256_SIGNATURE_TYPE = 'SHA256'.freeze
14
- SHA512_SIGNATURE_TYPE = 'SHA512'.freeze
14
+ SHA1_SIGNATURE_TYPE = 'SHA1'
15
+ SHA256_SIGNATURE_TYPE = 'SHA256'
16
+ SHA512_SIGNATURE_TYPE = 'SHA512'
15
17
 
16
18
  # Possible request/response identifier fields
17
- API_UNIQUE_FIELD = 'unique_id'.freeze
18
- WPF_UNIQUE_FIELD = 'wpf_unique_id'.freeze
19
- KYC_UNIQUE_FIELD = 'reference_id'.freeze
19
+ API_UNIQUE_FIELD = 'unique_id'
20
+ WPF_UNIQUE_FIELD = 'wpf_unique_id'
21
+ KYC_UNIQUE_FIELD = 'reference_id'
20
22
 
21
23
  # Class constructor
22
24
  def initialize(configuration, data)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'genesis_ruby/utils/options/api_config'
2
4
  require 'genesis_ruby/errors/endpoint_not_set_error'
3
5
  require 'genesis_ruby/builder'
@@ -12,15 +14,16 @@ module GenesisRuby
12
14
  include Mixins::Requests::RestrictedSetter
13
15
  include Mixins::Requests::AttributeValidation
14
16
 
15
- PROTOCOL_HTTPS = 'https'.freeze
17
+ PROTOCOL_HTTPS = 'https'
16
18
  PORT_HTTPS = 443
17
19
 
18
- METHOD_POST = 'POST'.freeze
19
- METHOD_GET = 'GET'.freeze
20
- METHOD_PUT = 'PUT'.freeze
20
+ METHOD_POST = 'POST'
21
+ METHOD_GET = 'GET'
22
+ METHOD_PUT = 'PUT'
23
+ METHOD_PATCH = 'PATCH'
21
24
 
22
- AUTH_TYPE_BASIC = 'basic'.freeze
23
- AUTH_TYPE_TOKEN = 'bearer'.freeze
25
+ AUTH_TYPE_BASIC = 'basic'
26
+ AUTH_TYPE_TOKEN = 'bearer'
24
27
 
25
28
  attr_reader :api_config
26
29
 
@@ -83,6 +86,11 @@ module GenesisRuby
83
86
  @api_config.load_graphql_config
84
87
  end
85
88
 
89
+ # Pre-defined PATCH Request Configuration
90
+ def init_patch_configuration
91
+ @api_config.load_patch_config
92
+ end
93
+
86
94
  # Initializes Api EndPoint Url with request path & terminal token
87
95
  def init_api_gateway_configuration(options = { request_path: 'process', include_token: true })
88
96
  request_path = options.fetch :request_path, 'process'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -7,20 +9,7 @@ module GenesisRuby
7
9
 
8
10
  include Mixins::Requests::Financial::BaseAttributes
9
11
  include Mixins::Requests::Financial::PaymentAttributes
10
-
11
- # Use Smart Router endpoint for the current request
12
- def use_smart_router
13
- @use_smart_router ||= false
14
- end
15
-
16
- # Use Smart Router endpoint for the current request
17
- def use_smart_router=(value)
18
- unless [true, false].include? value
19
- raise InvalidArgumentError, 'Given invalid Use Smart Routing value! Allowed: true, false'
20
- end
21
-
22
- @use_smart_router = value
23
- end
12
+ include Mixins::Requests::SmartRouterAttributes
24
13
 
25
14
  protected
26
15
 
@@ -42,13 +31,6 @@ module GenesisRuby
42
31
  init_api_smart_router_configuration if @configuration.force_smart_routing
43
32
  end
44
33
 
45
- # Process the request
46
- def process_request_parameters
47
- init_api_smart_router_configuration if use_smart_router
48
-
49
- super
50
- end
51
-
52
34
  # Populate the request structure
53
35
  def populate_structure
54
36
  self.tree_structure = {
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -5,7 +7,7 @@ module GenesisRuby
5
7
  # Base Versioned Request class used for Non Financial JSON API services
6
8
  class Versioned < Request
7
9
 
8
- DEFAULT_VERSION = 'v1'.freeze
10
+ DEFAULT_VERSION = 'v1'
9
11
  private_constant :DEFAULT_VERSION
10
12
 
11
13
  attr_reader :version, :allowed_versions
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'genesis_ruby/api/requests/base/financials/credit_card'
2
4
 
3
5
  module GenesisRuby
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'genesis_ruby/api/requests/base/financials/credit_card'
2
4
 
3
5
  module GenesisRuby
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GenesisRuby
2
4
  module Api
3
5
  module Requests