mt-sdk 0.0.1

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 (318) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +188 -0
  4. data/bin/console +15 -0
  5. data/lib/modern_treasury/api_helper.rb +10 -0
  6. data/lib/modern_treasury/client.rb +275 -0
  7. data/lib/modern_treasury/configuration.rb +206 -0
  8. data/lib/modern_treasury/controllers/account_collection_flow_controller.rb +130 -0
  9. data/lib/modern_treasury/controllers/account_detail_controller.rb +131 -0
  10. data/lib/modern_treasury/controllers/balance_report_controller.rb +76 -0
  11. data/lib/modern_treasury/controllers/base_controller.rb +60 -0
  12. data/lib/modern_treasury/controllers/connection_controller.rb +40 -0
  13. data/lib/modern_treasury/controllers/counterparty_controller.rb +188 -0
  14. data/lib/modern_treasury/controllers/document_controller.rb +285 -0
  15. data/lib/modern_treasury/controllers/event_controller.rb +72 -0
  16. data/lib/modern_treasury/controllers/expected_payment_controller.rb +162 -0
  17. data/lib/modern_treasury/controllers/external_account_controller.rb +202 -0
  18. data/lib/modern_treasury/controllers/incoming_payment_detail_controller.rb +150 -0
  19. data/lib/modern_treasury/controllers/internal_account_controller.rb +134 -0
  20. data/lib/modern_treasury/controllers/invoice_controller.rb +98 -0
  21. data/lib/modern_treasury/controllers/invoice_line_item_controller.rb +136 -0
  22. data/lib/modern_treasury/controllers/ledger_account_category_controller.rb +292 -0
  23. data/lib/modern_treasury/controllers/ledger_account_controller.rb +202 -0
  24. data/lib/modern_treasury/controllers/ledger_account_payout_controller.rb +126 -0
  25. data/lib/modern_treasury/controllers/ledger_account_statement_controller.rb +60 -0
  26. data/lib/modern_treasury/controllers/ledger_controller.rb +152 -0
  27. data/lib/modern_treasury/controllers/ledger_entry_controller.rb +148 -0
  28. data/lib/modern_treasury/controllers/ledger_event_handler_controller.rb +119 -0
  29. data/lib/modern_treasury/controllers/ledger_transaction_controller.rb +328 -0
  30. data/lib/modern_treasury/controllers/ledgerable_event_controller.rb +61 -0
  31. data/lib/modern_treasury/controllers/line_item_controller.rb +107 -0
  32. data/lib/modern_treasury/controllers/paper_item_controller.rb +69 -0
  33. data/lib/modern_treasury/controllers/payment_flow_controller.rb +138 -0
  34. data/lib/modern_treasury/controllers/payment_order_controller.rb +368 -0
  35. data/lib/modern_treasury/controllers/payment_reference_controller.rb +64 -0
  36. data/lib/modern_treasury/controllers/ping_controller.rb +34 -0
  37. data/lib/modern_treasury/controllers/return_controller.rb +105 -0
  38. data/lib/modern_treasury/controllers/reversal_controller.rb +99 -0
  39. data/lib/modern_treasury/controllers/routing_detail_controller.rb +131 -0
  40. data/lib/modern_treasury/controllers/transaction_controller.rb +133 -0
  41. data/lib/modern_treasury/controllers/transaction_line_item_controller.rb +39 -0
  42. data/lib/modern_treasury/controllers/validation_controller.rb +41 -0
  43. data/lib/modern_treasury/controllers/virtual_account_controller.rb +142 -0
  44. data/lib/modern_treasury/exceptions/api_exception.rb +21 -0
  45. data/lib/modern_treasury/exceptions/error_message_exception.rb +46 -0
  46. data/lib/modern_treasury/http/auth/basic_auth.rb +62 -0
  47. data/lib/modern_treasury/http/http_call_back.rb +10 -0
  48. data/lib/modern_treasury/http/http_method_enum.rb +10 -0
  49. data/lib/modern_treasury/http/http_request.rb +10 -0
  50. data/lib/modern_treasury/http/http_response.rb +10 -0
  51. data/lib/modern_treasury/http/proxy_settings.rb +22 -0
  52. data/lib/modern_treasury/models/account.rb +304 -0
  53. data/lib/modern_treasury/models/account1.rb +217 -0
  54. data/lib/modern_treasury/models/account_collection_flow.rb +178 -0
  55. data/lib/modern_treasury/models/account_collection_flow_create_request.rb +70 -0
  56. data/lib/modern_treasury/models/account_collection_flow_update_request.rb +61 -0
  57. data/lib/modern_treasury/models/account_detail.rb +211 -0
  58. data/lib/modern_treasury/models/account_detail1.rb +74 -0
  59. data/lib/modern_treasury/models/account_detail_create_request.rb +75 -0
  60. data/lib/modern_treasury/models/account_number_type2_enum.rb +48 -0
  61. data/lib/modern_treasury/models/account_number_type_enum.rb +49 -0
  62. data/lib/modern_treasury/models/account_type5_enum.rb +56 -0
  63. data/lib/modern_treasury/models/account_type_enum.rb +56 -0
  64. data/lib/modern_treasury/models/accounting.rb +88 -0
  65. data/lib/modern_treasury/models/accounting1.rb +63 -0
  66. data/lib/modern_treasury/models/accounts_type1_enum.rb +26 -0
  67. data/lib/modern_treasury/models/accounts_type_enum.rb +36 -0
  68. data/lib/modern_treasury/models/address.rb +231 -0
  69. data/lib/modern_treasury/models/address_request.rb +118 -0
  70. data/lib/modern_treasury/models/async_response.rb +68 -0
  71. data/lib/modern_treasury/models/balance.rb +164 -0
  72. data/lib/modern_treasury/models/balance_report.rb +178 -0
  73. data/lib/modern_treasury/models/balance_report_type1_enum.rb +44 -0
  74. data/lib/modern_treasury/models/balance_report_type_enum.rb +45 -0
  75. data/lib/modern_treasury/models/balance_type_enum.rb +63 -0
  76. data/lib/modern_treasury/models/balances.rb +71 -0
  77. data/lib/modern_treasury/models/balances1.rb +81 -0
  78. data/lib/modern_treasury/models/balances2.rb +120 -0
  79. data/lib/modern_treasury/models/balances3.rb +130 -0
  80. data/lib/modern_treasury/models/base_model.rb +110 -0
  81. data/lib/modern_treasury/models/charge_bearer_enum.rb +42 -0
  82. data/lib/modern_treasury/models/code1_enum.rb +200 -0
  83. data/lib/modern_treasury/models/code_enum.rb +68 -0
  84. data/lib/modern_treasury/models/connection.rb +209 -0
  85. data/lib/modern_treasury/models/contact_detail.rb +200 -0
  86. data/lib/modern_treasury/models/contact_detail_create_request.rb +75 -0
  87. data/lib/modern_treasury/models/contact_identifier_type_enum.rb +40 -0
  88. data/lib/modern_treasury/models/content_type_enum.rb +36 -0
  89. data/lib/modern_treasury/models/counterparty.rb +200 -0
  90. data/lib/modern_treasury/models/counterparty_billing_address.rb +106 -0
  91. data/lib/modern_treasury/models/counterparty_collect_account_request.rb +104 -0
  92. data/lib/modern_treasury/models/counterparty_collect_account_response.rb +82 -0
  93. data/lib/modern_treasury/models/counterparty_create_request.rb +161 -0
  94. data/lib/modern_treasury/models/counterparty_shipping_address.rb +107 -0
  95. data/lib/modern_treasury/models/counterparty_update_request.rb +107 -0
  96. data/lib/modern_treasury/models/created_at_enum.rb +36 -0
  97. data/lib/modern_treasury/models/currency1_enum.rb +37 -0
  98. data/lib/modern_treasury/models/currency_enum.rb +784 -0
  99. data/lib/modern_treasury/models/direction10_enum.rb +38 -0
  100. data/lib/modern_treasury/models/direction14_enum.rb +36 -0
  101. data/lib/modern_treasury/models/direction15_enum.rb +36 -0
  102. data/lib/modern_treasury/models/direction1_enum.rb +37 -0
  103. data/lib/modern_treasury/models/direction4_enum.rb +36 -0
  104. data/lib/modern_treasury/models/direction5_enum.rb +39 -0
  105. data/lib/modern_treasury/models/direction9_enum.rb +37 -0
  106. data/lib/modern_treasury/models/direction_enum.rb +38 -0
  107. data/lib/modern_treasury/models/document.rb +207 -0
  108. data/lib/modern_treasury/models/document_create_request.rb +92 -0
  109. data/lib/modern_treasury/models/document_detail.rb +154 -0
  110. data/lib/modern_treasury/models/documentable_type1_enum.rb +72 -0
  111. data/lib/modern_treasury/models/documentable_type2_enum.rb +72 -0
  112. data/lib/modern_treasury/models/documentable_type_enum.rb +75 -0
  113. data/lib/modern_treasury/models/effective_at_enum.rb +36 -0
  114. data/lib/modern_treasury/models/errors.rb +81 -0
  115. data/lib/modern_treasury/models/event.rb +162 -0
  116. data/lib/modern_treasury/models/expected_payment.rb +343 -0
  117. data/lib/modern_treasury/models/expected_payment_create_request.rb +254 -0
  118. data/lib/modern_treasury/models/expected_payment_update_request.rb +239 -0
  119. data/lib/modern_treasury/models/external_account.rb +283 -0
  120. data/lib/modern_treasury/models/external_account_complete_verification_request.rb +62 -0
  121. data/lib/modern_treasury/models/external_account_create_request.rb +230 -0
  122. data/lib/modern_treasury/models/external_account_update_request.rb +132 -0
  123. data/lib/modern_treasury/models/external_account_verify_request.rb +83 -0
  124. data/lib/modern_treasury/models/fallback_type_enum.rb +28 -0
  125. data/lib/modern_treasury/models/field_enum.rb +112 -0
  126. data/lib/modern_treasury/models/file.rb +81 -0
  127. data/lib/modern_treasury/models/foreign_exchange_indicator_enum.rb +38 -0
  128. data/lib/modern_treasury/models/incoming_payment_detail.rb +348 -0
  129. data/lib/modern_treasury/models/incoming_payment_detail_create_request.rb +141 -0
  130. data/lib/modern_treasury/models/incoming_payment_detail_update_request.rb +63 -0
  131. data/lib/modern_treasury/models/internal_account.rb +361 -0
  132. data/lib/modern_treasury/models/internal_account_create_request.rb +135 -0
  133. data/lib/modern_treasury/models/internal_account_update_request.rb +95 -0
  134. data/lib/modern_treasury/models/invoice.rb +342 -0
  135. data/lib/modern_treasury/models/invoice_create_request.rb +235 -0
  136. data/lib/modern_treasury/models/invoice_line_item.rb +171 -0
  137. data/lib/modern_treasury/models/invoice_line_item_create_request.rb +104 -0
  138. data/lib/modern_treasury/models/invoice_line_item_update_request.rb +240 -0
  139. data/lib/modern_treasury/models/invoice_update_request.rb +251 -0
  140. data/lib/modern_treasury/models/invoicer_address.rb +106 -0
  141. data/lib/modern_treasury/models/itemizable_type1_enum.rb +36 -0
  142. data/lib/modern_treasury/models/itemizable_type_enum.rb +36 -0
  143. data/lib/modern_treasury/models/ledger.rb +158 -0
  144. data/lib/modern_treasury/models/ledger_account.rb +220 -0
  145. data/lib/modern_treasury/models/ledger_account_category.rb +187 -0
  146. data/lib/modern_treasury/models/ledger_account_category_create_request.rb +125 -0
  147. data/lib/modern_treasury/models/ledger_account_category_update_request.rb +84 -0
  148. data/lib/modern_treasury/models/ledger_account_create_request.rb +150 -0
  149. data/lib/modern_treasury/models/ledger_account_normal_balance_enum.rb +36 -0
  150. data/lib/modern_treasury/models/ledger_account_payout.rb +238 -0
  151. data/lib/modern_treasury/models/ledger_account_payout_create_request.rb +152 -0
  152. data/lib/modern_treasury/models/ledger_account_payout_update_request.rb +85 -0
  153. data/lib/modern_treasury/models/ledger_account_statement.rb +233 -0
  154. data/lib/modern_treasury/models/ledger_account_statement_create_request.rb +122 -0
  155. data/lib/modern_treasury/models/ledger_account_update_request.rb +84 -0
  156. data/lib/modern_treasury/models/ledger_balance.rb +97 -0
  157. data/lib/modern_treasury/models/ledger_balances.rb +81 -0
  158. data/lib/modern_treasury/models/ledger_balances_with_effective_at.rb +123 -0
  159. data/lib/modern_treasury/models/ledger_create_request.rb +83 -0
  160. data/lib/modern_treasury/models/ledger_entry.rb +247 -0
  161. data/lib/modern_treasury/models/ledger_entry_create_request.rb +177 -0
  162. data/lib/modern_treasury/models/ledger_entry_of_transaction_version.rb +214 -0
  163. data/lib/modern_treasury/models/ledger_event_handler.rb +182 -0
  164. data/lib/modern_treasury/models/ledger_event_handler_conditions.rb +78 -0
  165. data/lib/modern_treasury/models/ledger_event_handler_create_request.rb +119 -0
  166. data/lib/modern_treasury/models/ledger_event_handler_ledger_entries.rb +80 -0
  167. data/lib/modern_treasury/models/ledger_event_handler_ledger_transaction_template.rb +103 -0
  168. data/lib/modern_treasury/models/ledger_transaction.rb +259 -0
  169. data/lib/modern_treasury/models/ledger_transaction_create_request.rb +164 -0
  170. data/lib/modern_treasury/models/ledger_transaction_reversal_create_request.rb +142 -0
  171. data/lib/modern_treasury/models/ledger_transaction_update_request.rb +115 -0
  172. data/lib/modern_treasury/models/ledger_transaction_version.rb +254 -0
  173. data/lib/modern_treasury/models/ledger_type_enum.rb +37 -0
  174. data/lib/modern_treasury/models/ledger_update_request.rb +84 -0
  175. data/lib/modern_treasury/models/ledgerable_event.rb +206 -0
  176. data/lib/modern_treasury/models/ledgerable_event_create_request.rb +140 -0
  177. data/lib/modern_treasury/models/ledgerable_type2_enum.rb +71 -0
  178. data/lib/modern_treasury/models/ledgerable_type5_enum.rb +69 -0
  179. data/lib/modern_treasury/models/ledgerable_type6_enum.rb +68 -0
  180. data/lib/modern_treasury/models/ledgerable_type_enum.rb +38 -0
  181. data/lib/modern_treasury/models/legacy_document_create_request.rb +70 -0
  182. data/lib/modern_treasury/models/line_item.rb +200 -0
  183. data/lib/modern_treasury/models/line_item_request.rb +98 -0
  184. data/lib/modern_treasury/models/line_item_update_request.rb +63 -0
  185. data/lib/modern_treasury/models/mreturn.rb +425 -0
  186. data/lib/modern_treasury/models/normal_balance2_enum.rb +36 -0
  187. data/lib/modern_treasury/models/normal_balance_enum.rb +36 -0
  188. data/lib/modern_treasury/models/order_by.rb +72 -0
  189. data/lib/modern_treasury/models/originating_account_number_type_enum.rb +48 -0
  190. data/lib/modern_treasury/models/originating_routing_number_type_enum.rb +68 -0
  191. data/lib/modern_treasury/models/paper_item.rb +249 -0
  192. data/lib/modern_treasury/models/party_address.rb +106 -0
  193. data/lib/modern_treasury/models/party_type5_enum.rb +36 -0
  194. data/lib/modern_treasury/models/party_type_enum.rb +36 -0
  195. data/lib/modern_treasury/models/payment_direction_enum.rb +36 -0
  196. data/lib/modern_treasury/models/payment_flow.rb +230 -0
  197. data/lib/modern_treasury/models/payment_flow_create_request.rb +103 -0
  198. data/lib/modern_treasury/models/payment_flow_update_request.rb +61 -0
  199. data/lib/modern_treasury/models/payment_method1_enum.rb +46 -0
  200. data/lib/modern_treasury/models/payment_method_enum.rb +42 -0
  201. data/lib/modern_treasury/models/payment_order.rb +820 -0
  202. data/lib/modern_treasury/models/payment_order_async_create_request.rb +536 -0
  203. data/lib/modern_treasury/models/payment_order_create_request.rb +556 -0
  204. data/lib/modern_treasury/models/payment_order_update_request.rb +543 -0
  205. data/lib/modern_treasury/models/payment_reference.rb +175 -0
  206. data/lib/modern_treasury/models/payment_reference_object.rb +156 -0
  207. data/lib/modern_treasury/models/payment_type13_enum.rb +96 -0
  208. data/lib/modern_treasury/models/payment_type1_enum.rb +97 -0
  209. data/lib/modern_treasury/models/payment_type2_enum.rb +96 -0
  210. data/lib/modern_treasury/models/payment_type4_enum.rb +96 -0
  211. data/lib/modern_treasury/models/payment_type5_enum.rb +36 -0
  212. data/lib/modern_treasury/models/payment_type6_enum.rb +97 -0
  213. data/lib/modern_treasury/models/payment_type_enum.rb +37 -0
  214. data/lib/modern_treasury/models/ping_response.rb +60 -0
  215. data/lib/modern_treasury/models/priority4_enum.rb +36 -0
  216. data/lib/modern_treasury/models/priority_enum.rb +38 -0
  217. data/lib/modern_treasury/models/reason1_enum.rb +50 -0
  218. data/lib/modern_treasury/models/reason_enum.rb +48 -0
  219. data/lib/modern_treasury/models/receiving_account.rb +304 -0
  220. data/lib/modern_treasury/models/receiving_account1.rb +219 -0
  221. data/lib/modern_treasury/models/receiving_account_type_enum.rb +36 -0
  222. data/lib/modern_treasury/models/reconciliation_method_enum.rb +38 -0
  223. data/lib/modern_treasury/models/reference_number_type1_enum.rb +248 -0
  224. data/lib/modern_treasury/models/reference_number_type_enum.rb +248 -0
  225. data/lib/modern_treasury/models/referenceable_type1_enum.rb +40 -0
  226. data/lib/modern_treasury/models/referenceable_type_enum.rb +41 -0
  227. data/lib/modern_treasury/models/return_create_request.rb +119 -0
  228. data/lib/modern_treasury/models/returnable_type1_enum.rb +48 -0
  229. data/lib/modern_treasury/models/returnable_type_enum.rb +48 -0
  230. data/lib/modern_treasury/models/reversal.rb +151 -0
  231. data/lib/modern_treasury/models/reversal_create_request.rb +86 -0
  232. data/lib/modern_treasury/models/role_enum.rb +36 -0
  233. data/lib/modern_treasury/models/routing_detail.rb +242 -0
  234. data/lib/modern_treasury/models/routing_detail1.rb +83 -0
  235. data/lib/modern_treasury/models/routing_detail_create_request.rb +87 -0
  236. data/lib/modern_treasury/models/routing_number_lookup_request.rb +124 -0
  237. data/lib/modern_treasury/models/routing_number_type1_enum.rb +68 -0
  238. data/lib/modern_treasury/models/routing_number_type7_enum.rb +55 -0
  239. data/lib/modern_treasury/models/routing_number_type8_enum.rb +68 -0
  240. data/lib/modern_treasury/models/routing_number_type_enum.rb +69 -0
  241. data/lib/modern_treasury/models/status11_enum.rb +40 -0
  242. data/lib/modern_treasury/models/status12_enum.rb +40 -0
  243. data/lib/modern_treasury/models/status15_enum.rb +41 -0
  244. data/lib/modern_treasury/models/status16_enum.rb +41 -0
  245. data/lib/modern_treasury/models/status17_enum.rb +45 -0
  246. data/lib/modern_treasury/models/status18_enum.rb +74 -0
  247. data/lib/modern_treasury/models/status19_enum.rb +52 -0
  248. data/lib/modern_treasury/models/status1_enum.rb +40 -0
  249. data/lib/modern_treasury/models/status20_enum.rb +40 -0
  250. data/lib/modern_treasury/models/status21_enum.rb +40 -0
  251. data/lib/modern_treasury/models/status22_enum.rb +40 -0
  252. data/lib/modern_treasury/models/status24_enum.rb +72 -0
  253. data/lib/modern_treasury/models/status2_enum.rb +41 -0
  254. data/lib/modern_treasury/models/status3_enum.rb +72 -0
  255. data/lib/modern_treasury/models/status4_enum.rb +52 -0
  256. data/lib/modern_treasury/models/status5_enum.rb +48 -0
  257. data/lib/modern_treasury/models/status6_enum.rb +49 -0
  258. data/lib/modern_treasury/models/status7_enum.rb +37 -0
  259. data/lib/modern_treasury/models/status8_enum.rb +37 -0
  260. data/lib/modern_treasury/models/status9_enum.rb +41 -0
  261. data/lib/modern_treasury/models/status_enum.rb +45 -0
  262. data/lib/modern_treasury/models/subtype_enum.rb +71 -0
  263. data/lib/modern_treasury/models/supported_payment_type_enum.rb +96 -0
  264. data/lib/modern_treasury/models/transactable_type_enum.rb +53 -0
  265. data/lib/modern_treasury/models/transaction.rb +311 -0
  266. data/lib/modern_treasury/models/transaction_line_item.rb +211 -0
  267. data/lib/modern_treasury/models/type10_enum.rb +64 -0
  268. data/lib/modern_treasury/models/type11_enum.rb +97 -0
  269. data/lib/modern_treasury/models/type12_enum.rb +37 -0
  270. data/lib/modern_treasury/models/type13_enum.rb +96 -0
  271. data/lib/modern_treasury/models/type14_enum.rb +64 -0
  272. data/lib/modern_treasury/models/type16_enum.rb +36 -0
  273. data/lib/modern_treasury/models/type1_enum.rb +97 -0
  274. data/lib/modern_treasury/models/type4_enum.rb +65 -0
  275. data/lib/modern_treasury/models/type5_enum.rb +97 -0
  276. data/lib/modern_treasury/models/type6_enum.rb +77 -0
  277. data/lib/modern_treasury/models/type_enum.rb +37 -0
  278. data/lib/modern_treasury/models/vendor_code_type1_enum.rb +111 -0
  279. data/lib/modern_treasury/models/vendor_code_type_enum.rb +108 -0
  280. data/lib/modern_treasury/models/verification_status1_enum.rb +44 -0
  281. data/lib/modern_treasury/models/verification_status_enum.rb +40 -0
  282. data/lib/modern_treasury/models/virtual_account.rb +247 -0
  283. data/lib/modern_treasury/models/virtual_account_create_request.rb +172 -0
  284. data/lib/modern_treasury/models/virtual_account_update_request.rb +85 -0
  285. data/lib/modern_treasury/utilities/date_time_helper.rb +11 -0
  286. data/lib/modern_treasury/utilities/file_wrapper.rb +28 -0
  287. data/lib/modern_treasury/utilities/union_type_lookup.rb +32 -0
  288. data/lib/modern_treasury.rb +316 -0
  289. data/test/controllers/controller_test_base.rb +23 -0
  290. data/test/controllers/test_account_collection_flow_controller.rb +64 -0
  291. data/test/controllers/test_connection_controller.rb +41 -0
  292. data/test/controllers/test_counterparty_controller.rb +65 -0
  293. data/test/controllers/test_document_controller.rb +41 -0
  294. data/test/controllers/test_event_controller.rb +46 -0
  295. data/test/controllers/test_expected_payment_controller.rb +71 -0
  296. data/test/controllers/test_external_account_controller.rb +63 -0
  297. data/test/controllers/test_incoming_payment_detail_controller.rb +68 -0
  298. data/test/controllers/test_internal_account_controller.rb +65 -0
  299. data/test/controllers/test_invoice_controller.rb +56 -0
  300. data/test/controllers/test_ledger_account_category_controller.rb +67 -0
  301. data/test/controllers/test_ledger_account_controller.rb +70 -0
  302. data/test/controllers/test_ledger_account_payout_controller.rb +62 -0
  303. data/test/controllers/test_ledger_account_statement_controller.rb +36 -0
  304. data/test/controllers/test_ledger_controller.rb +59 -0
  305. data/test/controllers/test_ledger_entry_controller.rb +65 -0
  306. data/test/controllers/test_ledger_event_handler_controller.rb +63 -0
  307. data/test/controllers/test_ledger_transaction_controller.rb +112 -0
  308. data/test/controllers/test_ledgerable_event_controller.rb +36 -0
  309. data/test/controllers/test_paper_item_controller.rb +43 -0
  310. data/test/controllers/test_payment_flow_controller.rb +67 -0
  311. data/test/controllers/test_payment_order_controller.rb +76 -0
  312. data/test/controllers/test_payment_reference_controller.rb +43 -0
  313. data/test/controllers/test_ping_controller.rb +31 -0
  314. data/test/controllers/test_return_controller.rb +64 -0
  315. data/test/controllers/test_transaction_controller.rb +56 -0
  316. data/test/controllers/test_virtual_account_controller.rb +63 -0
  317. data/test/http_response_catcher.rb +19 -0
  318. metadata +429 -0
@@ -0,0 +1,118 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # AddressRequest Model.
8
+ class AddressRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [String]
14
+ attr_accessor :line1
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :line2
19
+
20
+ # Locality or City.
21
+ # @return [String]
22
+ attr_accessor :locality
23
+
24
+ # Region or State.
25
+ # @return [String]
26
+ attr_accessor :region
27
+
28
+ # The postal code of the address.
29
+ # @return [String]
30
+ attr_accessor :postal_code
31
+
32
+ # Country code conforms to [ISO 3166-1 alpha-2]
33
+ # @return [String]
34
+ attr_accessor :country
35
+
36
+ # A mapping from model property names to API property names.
37
+ def self.names
38
+ @_hash = {} if @_hash.nil?
39
+ @_hash['line1'] = 'line1'
40
+ @_hash['line2'] = 'line2'
41
+ @_hash['locality'] = 'locality'
42
+ @_hash['region'] = 'region'
43
+ @_hash['postal_code'] = 'postal_code'
44
+ @_hash['country'] = 'country'
45
+ @_hash
46
+ end
47
+
48
+ # An array for optional fields
49
+ def self.optionals
50
+ %w[
51
+ line1
52
+ line2
53
+ locality
54
+ region
55
+ postal_code
56
+ country
57
+ ]
58
+ end
59
+
60
+ # An array for nullable fields
61
+ def self.nullables
62
+ %w[
63
+ line1
64
+ line2
65
+ locality
66
+ region
67
+ postal_code
68
+ country
69
+ ]
70
+ end
71
+
72
+ def initialize(line1 = SKIP, line2 = SKIP, locality = SKIP, region = SKIP,
73
+ postal_code = SKIP, country = SKIP)
74
+ @line1 = line1 unless line1 == SKIP
75
+ @line2 = line2 unless line2 == SKIP
76
+ @locality = locality unless locality == SKIP
77
+ @region = region unless region == SKIP
78
+ @postal_code = postal_code unless postal_code == SKIP
79
+ @country = country unless country == 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
+ line1 = hash.key?('line1') ? hash['line1'] : SKIP
88
+ line2 = hash.key?('line2') ? hash['line2'] : SKIP
89
+ locality = hash.key?('locality') ? hash['locality'] : SKIP
90
+ region = hash.key?('region') ? hash['region'] : SKIP
91
+ postal_code = hash.key?('postal_code') ? hash['postal_code'] : SKIP
92
+ country = hash.key?('country') ? hash['country'] : SKIP
93
+
94
+ # Create object from extracted values.
95
+ AddressRequest.new(line1,
96
+ line2,
97
+ locality,
98
+ region,
99
+ postal_code,
100
+ country)
101
+ end
102
+
103
+ # Provides a human-readable string representation of the object.
104
+ def to_s
105
+ class_name = self.class.name.split('::').last
106
+ "<#{class_name} line1: #{@line1}, line2: #{@line2}, locality: #{@locality}, region:"\
107
+ " #{@region}, postal_code: #{@postal_code}, country: #{@country}>"
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
+ "<#{class_name} line1: #{@line1.inspect}, line2: #{@line2.inspect}, locality:"\
114
+ " #{@locality.inspect}, region: #{@region.inspect}, postal_code: #{@postal_code.inspect},"\
115
+ " country: #{@country.inspect}>"
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,68 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # AsyncResponse Model.
8
+ class AsyncResponse < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [UUID | String]
14
+ attr_accessor :id
15
+
16
+ # TODO: Write general description for this method
17
+ # @return [String]
18
+ attr_accessor :object
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['id'] = 'id'
24
+ @_hash['object'] = 'object'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ []
31
+ end
32
+
33
+ # An array for nullable fields
34
+ def self.nullables
35
+ []
36
+ end
37
+
38
+ def initialize(id = nil, object = nil)
39
+ @id = id
40
+ @object = object
41
+ end
42
+
43
+ # Creates an instance of the object from a hash.
44
+ def self.from_hash(hash)
45
+ return nil unless hash
46
+
47
+ # Extract variables from the hash.
48
+ id = hash.key?('id') ? hash['id'] : nil
49
+ object = hash.key?('object') ? hash['object'] : nil
50
+
51
+ # Create object from extracted values.
52
+ AsyncResponse.new(id,
53
+ object)
54
+ end
55
+
56
+ # Provides a human-readable string representation of the object.
57
+ def to_s
58
+ class_name = self.class.name.split('::').last
59
+ "<#{class_name} id: #{@id}, object: #{@object}>"
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
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}>"
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,164 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module ModernTreasury
8
+ # Balance Model.
9
+ class Balance < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # TODO: Write general description for this method
14
+ # @return [UUID | String]
15
+ attr_accessor :id
16
+
17
+ # TODO: Write general description for this method
18
+ # @return [String]
19
+ attr_accessor :object
20
+
21
+ # This field will be true if this object exists in the live environment or
22
+ # false if it exists in the test environment.
23
+ # @return [TrueClass | FalseClass]
24
+ attr_accessor :live_mode
25
+
26
+ # This field will be true if this object exists in the live environment or
27
+ # false if it exists in the test environment.
28
+ # @return [DateTime]
29
+ attr_accessor :created_at
30
+
31
+ # This field will be true if this object exists in the live environment or
32
+ # false if it exists in the test environment.
33
+ # @return [DateTime]
34
+ attr_accessor :updated_at
35
+
36
+ # The balance amount.
37
+ # @return [Integer]
38
+ attr_accessor :amount
39
+
40
+ # Three-letter ISO currency code.
41
+ # @return [CurrencyEnum]
42
+ attr_accessor :currency
43
+
44
+ # The specific type of balance reported. One of `opening_ledger`,
45
+ # `closing_ledger`, `current_ledger`, `opening_available`,
46
+ # `opening_available_next_business_day`, `closing_available`,
47
+ # `current_available`, or `other`.
48
+ # @return [BalanceTypeEnum]
49
+ attr_accessor :balance_type
50
+
51
+ # The code used by the bank when reporting this specific balance.
52
+ # @return [String]
53
+ attr_accessor :vendor_code
54
+
55
+ # The code used by the bank when reporting this specific balance.
56
+ # @return [VendorCodeTypeEnum]
57
+ attr_accessor :vendor_code_type
58
+
59
+ # A mapping from model property names to API property names.
60
+ def self.names
61
+ @_hash = {} if @_hash.nil?
62
+ @_hash['id'] = 'id'
63
+ @_hash['object'] = 'object'
64
+ @_hash['live_mode'] = 'live_mode'
65
+ @_hash['created_at'] = 'created_at'
66
+ @_hash['updated_at'] = 'updated_at'
67
+ @_hash['amount'] = 'amount'
68
+ @_hash['currency'] = 'currency'
69
+ @_hash['balance_type'] = 'balance_type'
70
+ @_hash['vendor_code'] = 'vendor_code'
71
+ @_hash['vendor_code_type'] = 'vendor_code_type'
72
+ @_hash
73
+ end
74
+
75
+ # An array for optional fields
76
+ def self.optionals
77
+ []
78
+ end
79
+
80
+ # An array for nullable fields
81
+ def self.nullables
82
+ %w[
83
+ vendor_code_type
84
+ ]
85
+ end
86
+
87
+ def initialize(id = nil, object = nil, live_mode = nil, created_at = nil,
88
+ updated_at = nil, amount = nil, currency = nil,
89
+ balance_type = nil, vendor_code = nil,
90
+ vendor_code_type = nil)
91
+ @id = id
92
+ @object = object
93
+ @live_mode = live_mode
94
+ @created_at = created_at
95
+ @updated_at = updated_at
96
+ @amount = amount
97
+ @currency = currency
98
+ @balance_type = balance_type
99
+ @vendor_code = vendor_code
100
+ @vendor_code_type = vendor_code_type
101
+ end
102
+
103
+ # Creates an instance of the object from a hash.
104
+ def self.from_hash(hash)
105
+ return nil unless hash
106
+
107
+ # Extract variables from the hash.
108
+ id = hash.key?('id') ? hash['id'] : nil
109
+ object = hash.key?('object') ? hash['object'] : nil
110
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : nil
111
+ created_at = if hash.key?('created_at')
112
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
113
+ end
114
+ updated_at = if hash.key?('updated_at')
115
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
116
+ end
117
+ amount = hash.key?('amount') ? hash['amount'] : nil
118
+ currency = hash.key?('currency') ? hash['currency'] : nil
119
+ balance_type = hash.key?('balance_type') ? hash['balance_type'] : nil
120
+ vendor_code = hash.key?('vendor_code') ? hash['vendor_code'] : nil
121
+ vendor_code_type =
122
+ hash.key?('vendor_code_type') ? hash['vendor_code_type'] : nil
123
+
124
+ # Create object from extracted values.
125
+ Balance.new(id,
126
+ object,
127
+ live_mode,
128
+ created_at,
129
+ updated_at,
130
+ amount,
131
+ currency,
132
+ balance_type,
133
+ vendor_code,
134
+ vendor_code_type)
135
+ end
136
+
137
+ def to_custom_created_at
138
+ DateTimeHelper.to_rfc3339(created_at)
139
+ end
140
+
141
+ def to_custom_updated_at
142
+ DateTimeHelper.to_rfc3339(updated_at)
143
+ end
144
+
145
+ # Provides a human-readable string representation of the object.
146
+ def to_s
147
+ class_name = self.class.name.split('::').last
148
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
149
+ " #{@created_at}, updated_at: #{@updated_at}, amount: #{@amount}, currency: #{@currency},"\
150
+ " balance_type: #{@balance_type}, vendor_code: #{@vendor_code}, vendor_code_type:"\
151
+ " #{@vendor_code_type}>"
152
+ end
153
+
154
+ # Provides a debugging-friendly string with detailed object information.
155
+ def inspect
156
+ class_name = self.class.name.split('::').last
157
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
158
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
159
+ " #{@updated_at.inspect}, amount: #{@amount.inspect}, currency: #{@currency.inspect},"\
160
+ " balance_type: #{@balance_type.inspect}, vendor_code: #{@vendor_code.inspect},"\
161
+ " vendor_code_type: #{@vendor_code_type.inspect}>"
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,178 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module ModernTreasury
8
+ # BalanceReport Model.
9
+ class BalanceReport < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # TODO: Write general description for this method
14
+ # @return [UUID | String]
15
+ attr_accessor :id
16
+
17
+ # TODO: Write general description for this method
18
+ # @return [String]
19
+ attr_accessor :object
20
+
21
+ # This field will be true if this object exists in the live environment or
22
+ # false if it exists in the test environment.
23
+ # @return [TrueClass | FalseClass]
24
+ attr_accessor :live_mode
25
+
26
+ # This field will be true if this object exists in the live environment or
27
+ # false if it exists in the test environment.
28
+ # @return [DateTime]
29
+ attr_accessor :created_at
30
+
31
+ # This field will be true if this object exists in the live environment or
32
+ # false if it exists in the test environment.
33
+ # @return [DateTime]
34
+ attr_accessor :updated_at
35
+
36
+ # The specific type of balance report. One of `intraday`, `previous_day`,
37
+ # `real_time`, or `other`.
38
+ # @return [BalanceReportTypeEnum]
39
+ attr_accessor :balance_report_type
40
+
41
+ # The date of the balance report in local time.
42
+ # @return [Date]
43
+ attr_accessor :as_of_date
44
+
45
+ # The time (24-hour clock) of the balance report in local time.
46
+ # @return [DateTime]
47
+ attr_accessor :as_of_time
48
+
49
+ # An array of `Balance` objects.
50
+ # @return [Array[Balance]]
51
+ attr_accessor :balances
52
+
53
+ # The ID of one of your organization's Internal Accounts.
54
+ # @return [UUID | String]
55
+ attr_accessor :internal_account_id
56
+
57
+ # A mapping from model property names to API property names.
58
+ def self.names
59
+ @_hash = {} if @_hash.nil?
60
+ @_hash['id'] = 'id'
61
+ @_hash['object'] = 'object'
62
+ @_hash['live_mode'] = 'live_mode'
63
+ @_hash['created_at'] = 'created_at'
64
+ @_hash['updated_at'] = 'updated_at'
65
+ @_hash['balance_report_type'] = 'balance_report_type'
66
+ @_hash['as_of_date'] = 'as_of_date'
67
+ @_hash['as_of_time'] = 'as_of_time'
68
+ @_hash['balances'] = 'balances'
69
+ @_hash['internal_account_id'] = 'internal_account_id'
70
+ @_hash
71
+ end
72
+
73
+ # An array for optional fields
74
+ def self.optionals
75
+ []
76
+ end
77
+
78
+ # An array for nullable fields
79
+ def self.nullables
80
+ %w[
81
+ as_of_time
82
+ ]
83
+ end
84
+
85
+ def initialize(id = nil, object = nil, live_mode = nil, created_at = nil,
86
+ updated_at = nil, balance_report_type = nil,
87
+ as_of_date = nil, as_of_time = nil, balances = nil,
88
+ internal_account_id = nil)
89
+ @id = id
90
+ @object = object
91
+ @live_mode = live_mode
92
+ @created_at = created_at
93
+ @updated_at = updated_at
94
+ @balance_report_type = balance_report_type
95
+ @as_of_date = as_of_date
96
+ @as_of_time = as_of_time
97
+ @balances = balances
98
+ @internal_account_id = internal_account_id
99
+ end
100
+
101
+ # Creates an instance of the object from a hash.
102
+ def self.from_hash(hash)
103
+ return nil unless hash
104
+
105
+ # Extract variables from the hash.
106
+ id = hash.key?('id') ? hash['id'] : nil
107
+ object = hash.key?('object') ? hash['object'] : nil
108
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : nil
109
+ created_at = if hash.key?('created_at')
110
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
111
+ end
112
+ updated_at = if hash.key?('updated_at')
113
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
114
+ end
115
+ balance_report_type =
116
+ hash.key?('balance_report_type') ? hash['balance_report_type'] : nil
117
+ as_of_date = hash.key?('as_of_date') ? hash['as_of_date'] : nil
118
+ as_of_time = if hash.key?('as_of_time')
119
+ (DateTimeHelper.from_rfc3339(hash['as_of_time']) if hash['as_of_time'])
120
+ end
121
+ # Parameter is an array, so we need to iterate through it
122
+ balances = nil
123
+ unless hash['balances'].nil?
124
+ balances = []
125
+ hash['balances'].each do |structure|
126
+ balances << (Balance.from_hash(structure) if structure)
127
+ end
128
+ end
129
+
130
+ balances = nil unless hash.key?('balances')
131
+ internal_account_id =
132
+ hash.key?('internal_account_id') ? hash['internal_account_id'] : nil
133
+
134
+ # Create object from extracted values.
135
+ BalanceReport.new(id,
136
+ object,
137
+ live_mode,
138
+ created_at,
139
+ updated_at,
140
+ balance_report_type,
141
+ as_of_date,
142
+ as_of_time,
143
+ balances,
144
+ internal_account_id)
145
+ end
146
+
147
+ def to_custom_created_at
148
+ DateTimeHelper.to_rfc3339(created_at)
149
+ end
150
+
151
+ def to_custom_updated_at
152
+ DateTimeHelper.to_rfc3339(updated_at)
153
+ end
154
+
155
+ def to_custom_as_of_time
156
+ DateTimeHelper.to_rfc3339(as_of_time)
157
+ end
158
+
159
+ # Provides a human-readable string representation of the object.
160
+ def to_s
161
+ class_name = self.class.name.split('::').last
162
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
163
+ " #{@created_at}, updated_at: #{@updated_at}, balance_report_type: #{@balance_report_type},"\
164
+ " as_of_date: #{@as_of_date}, as_of_time: #{@as_of_time}, balances: #{@balances},"\
165
+ " internal_account_id: #{@internal_account_id}>"
166
+ end
167
+
168
+ # Provides a debugging-friendly string with detailed object information.
169
+ def inspect
170
+ class_name = self.class.name.split('::').last
171
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
172
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
173
+ " #{@updated_at.inspect}, balance_report_type: #{@balance_report_type.inspect}, as_of_date:"\
174
+ " #{@as_of_date.inspect}, as_of_time: #{@as_of_time.inspect}, balances:"\
175
+ " #{@balances.inspect}, internal_account_id: #{@internal_account_id.inspect}>"
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,44 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # balance_report_type1.
8
+ class BalanceReportType1Enum
9
+ BALANCE_REPORT_TYPE1_ENUM = [
10
+ # TODO: Write general description for INTRADAY
11
+ INTRADAY = 'intraday'.freeze,
12
+
13
+ # TODO: Write general description for OTHER
14
+ OTHER = 'other'.freeze,
15
+
16
+ # TODO: Write general description for PREVIOUS_DAY
17
+ PREVIOUS_DAY = 'previous_day'.freeze,
18
+
19
+ # TODO: Write general description for REAL_TIME
20
+ REAL_TIME = 'real_time'.freeze
21
+ ].freeze
22
+
23
+ def self.validate(value)
24
+ return false if value.nil?
25
+
26
+ BALANCE_REPORT_TYPE1_ENUM.include?(value)
27
+ end
28
+
29
+ def self.from_value(value, default_value = INTRADAY)
30
+ return default_value if value.nil?
31
+
32
+ str = value.to_s.strip
33
+
34
+ case str.downcase
35
+ when 'intraday' then INTRADAY
36
+ when 'other' then OTHER
37
+ when 'previous_day' then PREVIOUS_DAY
38
+ when 'real_time' then REAL_TIME
39
+ else
40
+ default_value
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,45 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # The specific type of balance report. One of `intraday`, `previous_day`,
8
+ # `real_time`, or `other`.
9
+ class BalanceReportTypeEnum
10
+ BALANCE_REPORT_TYPE_ENUM = [
11
+ # TODO: Write general description for INTRADAY
12
+ INTRADAY = 'intraday'.freeze,
13
+
14
+ # TODO: Write general description for OTHER
15
+ OTHER = 'other'.freeze,
16
+
17
+ # TODO: Write general description for PREVIOUS_DAY
18
+ PREVIOUS_DAY = 'previous_day'.freeze,
19
+
20
+ # TODO: Write general description for REAL_TIME
21
+ REAL_TIME = 'real_time'.freeze
22
+ ].freeze
23
+
24
+ def self.validate(value)
25
+ return false if value.nil?
26
+
27
+ BALANCE_REPORT_TYPE_ENUM.include?(value)
28
+ end
29
+
30
+ def self.from_value(value, default_value = INTRADAY)
31
+ return default_value if value.nil?
32
+
33
+ str = value.to_s.strip
34
+
35
+ case str.downcase
36
+ when 'intraday' then INTRADAY
37
+ when 'other' then OTHER
38
+ when 'previous_day' then PREVIOUS_DAY
39
+ when 'real_time' then REAL_TIME
40
+ else
41
+ default_value
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,63 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # The specific type of balance reported. One of `opening_ledger`,
8
+ # `closing_ledger`, `current_ledger`, `opening_available`,
9
+ # `opening_available_next_business_day`, `closing_available`,
10
+ # `current_available`, or `other`.
11
+ class BalanceTypeEnum
12
+ BALANCE_TYPE_ENUM = [
13
+ # TODO: Write general description for CLOSING_AVAILABLE
14
+ CLOSING_AVAILABLE = 'closing_available'.freeze,
15
+
16
+ # TODO: Write general description for CLOSING_LEDGER
17
+ CLOSING_LEDGER = 'closing_ledger'.freeze,
18
+
19
+ # TODO: Write general description for CURRENT_AVAILABLE
20
+ CURRENT_AVAILABLE = 'current_available'.freeze,
21
+
22
+ # TODO: Write general description for CURRENT_LEDGER
23
+ CURRENT_LEDGER = 'current_ledger'.freeze,
24
+
25
+ # TODO: Write general description for OPENING_AVAILABLE
26
+ OPENING_AVAILABLE = 'opening_available'.freeze,
27
+
28
+ # TODO: Write general description for OPENING_AVAILABLE_NEXT_BUSINESS_DAY
29
+ OPENING_AVAILABLE_NEXT_BUSINESS_DAY = 'opening_available_next_business_day'.freeze,
30
+
31
+ # TODO: Write general description for OPENING_LEDGER
32
+ OPENING_LEDGER = 'opening_ledger'.freeze,
33
+
34
+ # TODO: Write general description for OTHER
35
+ OTHER = 'other'.freeze
36
+ ].freeze
37
+
38
+ def self.validate(value)
39
+ return false if value.nil?
40
+
41
+ BALANCE_TYPE_ENUM.include?(value)
42
+ end
43
+
44
+ def self.from_value(value, default_value = CLOSING_AVAILABLE)
45
+ return default_value if value.nil?
46
+
47
+ str = value.to_s.strip
48
+
49
+ case str.downcase
50
+ when 'closing_available' then CLOSING_AVAILABLE
51
+ when 'closing_ledger' then CLOSING_LEDGER
52
+ when 'current_available' then CURRENT_AVAILABLE
53
+ when 'current_ledger' then CURRENT_LEDGER
54
+ when 'opening_available' then OPENING_AVAILABLE
55
+ when 'opening_available_next_business_day' then OPENING_AVAILABLE_NEXT_BUSINESS_DAY
56
+ when 'opening_ledger' then OPENING_LEDGER
57
+ when 'other' then OTHER
58
+ else
59
+ default_value
60
+ end
61
+ end
62
+ end
63
+ end