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,115 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # LedgerTransactionUpdateRequest Model.
8
+ class LedgerTransactionUpdateRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # An optional description for internal use.
13
+ # @return [String]
14
+ attr_accessor :description
15
+
16
+ # To post a ledger transaction at creation, use `posted`.
17
+ # @return [Status11Enum]
18
+ attr_accessor :status
19
+
20
+ # Additional data represented as key-value pairs. Both the key and value
21
+ # must be strings.
22
+ # @return [Hash[String, String]]
23
+ attr_accessor :metadata
24
+
25
+ # The timestamp (ISO8601 format) at which the ledger transaction happened
26
+ # for reporting purposes.
27
+ # @return [Date]
28
+ attr_accessor :effective_at
29
+
30
+ # An array of ledger entry objects.
31
+ # @return [Array[LedgerEntryCreateRequest]]
32
+ attr_accessor :ledger_entries
33
+
34
+ # A mapping from model property names to API property names.
35
+ def self.names
36
+ @_hash = {} if @_hash.nil?
37
+ @_hash['description'] = 'description'
38
+ @_hash['status'] = 'status'
39
+ @_hash['metadata'] = 'metadata'
40
+ @_hash['effective_at'] = 'effective_at'
41
+ @_hash['ledger_entries'] = 'ledger_entries'
42
+ @_hash
43
+ end
44
+
45
+ # An array for optional fields
46
+ def self.optionals
47
+ %w[
48
+ description
49
+ status
50
+ metadata
51
+ effective_at
52
+ ledger_entries
53
+ ]
54
+ end
55
+
56
+ # An array for nullable fields
57
+ def self.nullables
58
+ %w[
59
+ description
60
+ ]
61
+ end
62
+
63
+ def initialize(description = SKIP, status = SKIP, metadata = SKIP,
64
+ effective_at = SKIP, ledger_entries = SKIP)
65
+ @description = description unless description == SKIP
66
+ @status = status unless status == SKIP
67
+ @metadata = metadata unless metadata == SKIP
68
+ @effective_at = effective_at unless effective_at == SKIP
69
+ @ledger_entries = ledger_entries unless ledger_entries == SKIP
70
+ end
71
+
72
+ # Creates an instance of the object from a hash.
73
+ def self.from_hash(hash)
74
+ return nil unless hash
75
+
76
+ # Extract variables from the hash.
77
+ description = hash.key?('description') ? hash['description'] : SKIP
78
+ status = hash.key?('status') ? hash['status'] : SKIP
79
+ metadata = hash.key?('metadata') ? hash['metadata'] : SKIP
80
+ effective_at = hash.key?('effective_at') ? hash['effective_at'] : SKIP
81
+ # Parameter is an array, so we need to iterate through it
82
+ ledger_entries = nil
83
+ unless hash['ledger_entries'].nil?
84
+ ledger_entries = []
85
+ hash['ledger_entries'].each do |structure|
86
+ ledger_entries << (LedgerEntryCreateRequest.from_hash(structure) if structure)
87
+ end
88
+ end
89
+
90
+ ledger_entries = SKIP unless hash.key?('ledger_entries')
91
+
92
+ # Create object from extracted values.
93
+ LedgerTransactionUpdateRequest.new(description,
94
+ status,
95
+ metadata,
96
+ effective_at,
97
+ ledger_entries)
98
+ end
99
+
100
+ # Provides a human-readable string representation of the object.
101
+ def to_s
102
+ class_name = self.class.name.split('::').last
103
+ "<#{class_name} description: #{@description}, status: #{@status}, metadata: #{@metadata},"\
104
+ " effective_at: #{@effective_at}, ledger_entries: #{@ledger_entries}>"
105
+ end
106
+
107
+ # Provides a debugging-friendly string with detailed object information.
108
+ def inspect
109
+ class_name = self.class.name.split('::').last
110
+ "<#{class_name} description: #{@description.inspect}, status: #{@status.inspect}, metadata:"\
111
+ " #{@metadata.inspect}, effective_at: #{@effective_at.inspect}, ledger_entries:"\
112
+ " #{@ledger_entries.inspect}>"
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,254 @@
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
+ # LedgerTransactionVersion Model.
9
+ class LedgerTransactionVersion < 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
+ # The ID of the ledger transaction
32
+ # @return [UUID | String]
33
+ attr_accessor :ledger_transaction_id
34
+
35
+ # An optional description for internal use.
36
+ # @return [String]
37
+ attr_accessor :description
38
+
39
+ # One of `pending`, `posted`, or `archived`
40
+ # @return [Status12Enum]
41
+ attr_accessor :status
42
+
43
+ # Additional data represented as key-value pairs. Both the key and value
44
+ # must be strings.
45
+ # @return [Hash[String, String]]
46
+ attr_accessor :metadata
47
+
48
+ # The timestamp (ISO8601 format) at which the ledger transaction happened
49
+ # for reporting purposes.
50
+ # @return [DateTime]
51
+ attr_accessor :effective_at
52
+
53
+ # The date (YYYY-MM-DD) on which the ledger transaction happened for
54
+ # reporting purposes.
55
+ # @return [Date]
56
+ attr_accessor :effective_date
57
+
58
+ # An array of ledger entry objects.
59
+ # @return [Array[LedgerEntryOfTransactionVersion]]
60
+ attr_accessor :ledger_entries
61
+
62
+ # The time on which the ledger transaction posted. This is null if the
63
+ # ledger transaction is pending.
64
+ # @return [DateTime]
65
+ attr_accessor :posted_at
66
+
67
+ # The ID of the ledger this ledger transaction belongs to.
68
+ # @return [UUID | String]
69
+ attr_accessor :ledger_id
70
+
71
+ # If the ledger transaction can be reconciled to another object in Modern
72
+ # Treasury, the type will be populated here, otherwise null. This can be one
73
+ # of payment_order, incoming_payment_detail, expected_payment, return, or
74
+ # reversal.
75
+ # @return [LedgerableType2Enum]
76
+ attr_accessor :ledgerable_type
77
+
78
+ # If the ledger transaction can be reconciled to another object in Modern
79
+ # Treasury, the id will be populated here, otherwise null.
80
+ # @return [UUID | String]
81
+ attr_accessor :ledgerable_id
82
+
83
+ # A unique string to represent the ledger transaction. Only one pending or
84
+ # posted ledger transaction may have this ID in the ledger.
85
+ # @return [String]
86
+ attr_accessor :external_id
87
+
88
+ # Version number of the ledger transaction.
89
+ # @return [Integer]
90
+ attr_accessor :version
91
+
92
+ # A mapping from model property names to API property names.
93
+ def self.names
94
+ @_hash = {} if @_hash.nil?
95
+ @_hash['id'] = 'id'
96
+ @_hash['object'] = 'object'
97
+ @_hash['live_mode'] = 'live_mode'
98
+ @_hash['created_at'] = 'created_at'
99
+ @_hash['ledger_transaction_id'] = 'ledger_transaction_id'
100
+ @_hash['description'] = 'description'
101
+ @_hash['status'] = 'status'
102
+ @_hash['metadata'] = 'metadata'
103
+ @_hash['effective_at'] = 'effective_at'
104
+ @_hash['effective_date'] = 'effective_date'
105
+ @_hash['ledger_entries'] = 'ledger_entries'
106
+ @_hash['posted_at'] = 'posted_at'
107
+ @_hash['ledger_id'] = 'ledger_id'
108
+ @_hash['ledgerable_type'] = 'ledgerable_type'
109
+ @_hash['ledgerable_id'] = 'ledgerable_id'
110
+ @_hash['external_id'] = 'external_id'
111
+ @_hash['version'] = 'version'
112
+ @_hash
113
+ end
114
+
115
+ # An array for optional fields
116
+ def self.optionals
117
+ []
118
+ end
119
+
120
+ # An array for nullable fields
121
+ def self.nullables
122
+ %w[
123
+ description
124
+ posted_at
125
+ ledgerable_type
126
+ ledgerable_id
127
+ external_id
128
+ ]
129
+ end
130
+
131
+ def initialize(id = nil, object = nil, live_mode = nil, created_at = nil,
132
+ ledger_transaction_id = nil, description = nil, status = nil,
133
+ metadata = nil, effective_at = nil, effective_date = nil,
134
+ ledger_entries = nil, posted_at = nil, ledger_id = nil,
135
+ ledgerable_type = nil, ledgerable_id = nil,
136
+ external_id = nil, version = nil)
137
+ @id = id
138
+ @object = object
139
+ @live_mode = live_mode
140
+ @created_at = created_at
141
+ @ledger_transaction_id = ledger_transaction_id
142
+ @description = description
143
+ @status = status
144
+ @metadata = metadata
145
+ @effective_at = effective_at
146
+ @effective_date = effective_date
147
+ @ledger_entries = ledger_entries
148
+ @posted_at = posted_at
149
+ @ledger_id = ledger_id
150
+ @ledgerable_type = ledgerable_type
151
+ @ledgerable_id = ledgerable_id
152
+ @external_id = external_id
153
+ @version = version
154
+ end
155
+
156
+ # Creates an instance of the object from a hash.
157
+ def self.from_hash(hash)
158
+ return nil unless hash
159
+
160
+ # Extract variables from the hash.
161
+ id = hash.key?('id') ? hash['id'] : nil
162
+ object = hash.key?('object') ? hash['object'] : nil
163
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : nil
164
+ created_at = if hash.key?('created_at')
165
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
166
+ end
167
+ ledger_transaction_id =
168
+ hash.key?('ledger_transaction_id') ? hash['ledger_transaction_id'] : nil
169
+ description = hash.key?('description') ? hash['description'] : nil
170
+ status = hash.key?('status') ? hash['status'] : nil
171
+ metadata = hash.key?('metadata') ? hash['metadata'] : nil
172
+ effective_at = if hash.key?('effective_at')
173
+ (DateTimeHelper.from_rfc3339(hash['effective_at']) if hash['effective_at'])
174
+ end
175
+ effective_date =
176
+ hash.key?('effective_date') ? hash['effective_date'] : nil
177
+ # Parameter is an array, so we need to iterate through it
178
+ ledger_entries = nil
179
+ unless hash['ledger_entries'].nil?
180
+ ledger_entries = []
181
+ hash['ledger_entries'].each do |structure|
182
+ ledger_entries << (LedgerEntryOfTransactionVersion.from_hash(structure) if structure)
183
+ end
184
+ end
185
+
186
+ ledger_entries = nil unless hash.key?('ledger_entries')
187
+ posted_at = if hash.key?('posted_at')
188
+ (DateTimeHelper.from_rfc3339(hash['posted_at']) if hash['posted_at'])
189
+ end
190
+ ledger_id = hash.key?('ledger_id') ? hash['ledger_id'] : nil
191
+ ledgerable_type =
192
+ hash.key?('ledgerable_type') ? hash['ledgerable_type'] : nil
193
+ ledgerable_id = hash.key?('ledgerable_id') ? hash['ledgerable_id'] : nil
194
+ external_id = hash.key?('external_id') ? hash['external_id'] : nil
195
+ version = hash.key?('version') ? hash['version'] : nil
196
+
197
+ # Create object from extracted values.
198
+ LedgerTransactionVersion.new(id,
199
+ object,
200
+ live_mode,
201
+ created_at,
202
+ ledger_transaction_id,
203
+ description,
204
+ status,
205
+ metadata,
206
+ effective_at,
207
+ effective_date,
208
+ ledger_entries,
209
+ posted_at,
210
+ ledger_id,
211
+ ledgerable_type,
212
+ ledgerable_id,
213
+ external_id,
214
+ version)
215
+ end
216
+
217
+ def to_custom_created_at
218
+ DateTimeHelper.to_rfc3339(created_at)
219
+ end
220
+
221
+ def to_custom_effective_at
222
+ DateTimeHelper.to_rfc3339(effective_at)
223
+ end
224
+
225
+ def to_custom_posted_at
226
+ DateTimeHelper.to_rfc3339(posted_at)
227
+ end
228
+
229
+ # Provides a human-readable string representation of the object.
230
+ def to_s
231
+ class_name = self.class.name.split('::').last
232
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
233
+ " #{@created_at}, ledger_transaction_id: #{@ledger_transaction_id}, description:"\
234
+ " #{@description}, status: #{@status}, metadata: #{@metadata}, effective_at:"\
235
+ " #{@effective_at}, effective_date: #{@effective_date}, ledger_entries: #{@ledger_entries},"\
236
+ " posted_at: #{@posted_at}, ledger_id: #{@ledger_id}, ledgerable_type: #{@ledgerable_type},"\
237
+ " ledgerable_id: #{@ledgerable_id}, external_id: #{@external_id}, version: #{@version}>"
238
+ end
239
+
240
+ # Provides a debugging-friendly string with detailed object information.
241
+ def inspect
242
+ class_name = self.class.name.split('::').last
243
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
244
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, ledger_transaction_id:"\
245
+ " #{@ledger_transaction_id.inspect}, description: #{@description.inspect}, status:"\
246
+ " #{@status.inspect}, metadata: #{@metadata.inspect}, effective_at:"\
247
+ " #{@effective_at.inspect}, effective_date: #{@effective_date.inspect}, ledger_entries:"\
248
+ " #{@ledger_entries.inspect}, posted_at: #{@posted_at.inspect}, ledger_id:"\
249
+ " #{@ledger_id.inspect}, ledgerable_type: #{@ledgerable_type.inspect}, ledgerable_id:"\
250
+ " #{@ledgerable_id.inspect}, external_id: #{@external_id.inspect}, version:"\
251
+ " #{@version.inspect}>"
252
+ end
253
+ end
254
+ end
@@ -0,0 +1,37 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # An optional type to auto-sync the counterparty to your ledger. Either
8
+ # `customer` or `vendor`.
9
+ class LedgerTypeEnum
10
+ LEDGER_TYPE_ENUM = [
11
+ # TODO: Write general description for CUSTOMER
12
+ CUSTOMER = 'customer'.freeze,
13
+
14
+ # TODO: Write general description for VENDOR
15
+ VENDOR = 'vendor'.freeze
16
+ ].freeze
17
+
18
+ def self.validate(value)
19
+ return false if value.nil?
20
+
21
+ LEDGER_TYPE_ENUM.include?(value)
22
+ end
23
+
24
+ def self.from_value(value, default_value = CUSTOMER)
25
+ return default_value if value.nil?
26
+
27
+ str = value.to_s.strip
28
+
29
+ case str.downcase
30
+ when 'customer' then CUSTOMER
31
+ when 'vendor' then VENDOR
32
+ else
33
+ default_value
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,84 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # LedgerUpdateRequest Model.
8
+ class LedgerUpdateRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The name of the ledger.
13
+ # @return [String]
14
+ attr_accessor :name
15
+
16
+ # An optional free-form description for internal use.
17
+ # @return [String]
18
+ attr_accessor :description
19
+
20
+ # Additional data represented as key-value pairs. Both the key and value
21
+ # must be strings.
22
+ # @return [Hash[String, String]]
23
+ attr_accessor :metadata
24
+
25
+ # A mapping from model property names to API property names.
26
+ def self.names
27
+ @_hash = {} if @_hash.nil?
28
+ @_hash['name'] = 'name'
29
+ @_hash['description'] = 'description'
30
+ @_hash['metadata'] = 'metadata'
31
+ @_hash
32
+ end
33
+
34
+ # An array for optional fields
35
+ def self.optionals
36
+ %w[
37
+ name
38
+ description
39
+ metadata
40
+ ]
41
+ end
42
+
43
+ # An array for nullable fields
44
+ def self.nullables
45
+ %w[
46
+ description
47
+ ]
48
+ end
49
+
50
+ def initialize(name = SKIP, description = SKIP, metadata = SKIP)
51
+ @name = name unless name == SKIP
52
+ @description = description unless description == SKIP
53
+ @metadata = metadata unless metadata == SKIP
54
+ end
55
+
56
+ # Creates an instance of the object from a hash.
57
+ def self.from_hash(hash)
58
+ return nil unless hash
59
+
60
+ # Extract variables from the hash.
61
+ name = hash.key?('name') ? hash['name'] : SKIP
62
+ description = hash.key?('description') ? hash['description'] : SKIP
63
+ metadata = hash.key?('metadata') ? hash['metadata'] : SKIP
64
+
65
+ # Create object from extracted values.
66
+ LedgerUpdateRequest.new(name,
67
+ description,
68
+ metadata)
69
+ end
70
+
71
+ # Provides a human-readable string representation of the object.
72
+ def to_s
73
+ class_name = self.class.name.split('::').last
74
+ "<#{class_name} name: #{@name}, description: #{@description}, metadata: #{@metadata}>"
75
+ end
76
+
77
+ # Provides a debugging-friendly string with detailed object information.
78
+ def inspect
79
+ class_name = self.class.name.split('::').last
80
+ "<#{class_name} name: #{@name.inspect}, description: #{@description.inspect}, metadata:"\
81
+ " #{@metadata.inspect}>"
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,206 @@
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
+ # LedgerableEvent Model.
9
+ class LedgerableEvent < 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
+ # Name of the ledgerable event.
37
+ # @return [String]
38
+ attr_accessor :name
39
+
40
+ # Description of the ledgerable event.
41
+ # @return [String]
42
+ attr_accessor :description
43
+
44
+ # One of `credit`, `debit`.
45
+ # @return [String]
46
+ attr_accessor :direction
47
+
48
+ # Value in specified currency's smallest unit. e.g. $10 would be represented
49
+ # as 1000.
50
+ # @return [Integer]
51
+ attr_accessor :amount
52
+
53
+ # An ISO 4217 conformed currency or a custom currency.
54
+ # @return [String]
55
+ attr_accessor :currency
56
+
57
+ # Must be included if currency is a custom currency. The currency_exponent
58
+ # cannot exceed 30.
59
+ # @return [Integer]
60
+ attr_accessor :currency_exponent
61
+
62
+ # Additionally data to be used by the Ledger Event Handler.
63
+ # @return [Object]
64
+ attr_accessor :custom_data
65
+
66
+ # Id of the ledger event handler that is used to create a ledger
67
+ # transaction.
68
+ # @return [UUID | String]
69
+ attr_accessor :ledger_event_handler_id
70
+
71
+ # Additional data represented as key-value pairs. Both the key and value
72
+ # must be strings.
73
+ # @return [Hash[String, String]]
74
+ attr_accessor :metadata
75
+
76
+ # A mapping from model property names to API property names.
77
+ def self.names
78
+ @_hash = {} if @_hash.nil?
79
+ @_hash['id'] = 'id'
80
+ @_hash['object'] = 'object'
81
+ @_hash['live_mode'] = 'live_mode'
82
+ @_hash['created_at'] = 'created_at'
83
+ @_hash['updated_at'] = 'updated_at'
84
+ @_hash['name'] = 'name'
85
+ @_hash['description'] = 'description'
86
+ @_hash['direction'] = 'direction'
87
+ @_hash['amount'] = 'amount'
88
+ @_hash['currency'] = 'currency'
89
+ @_hash['currency_exponent'] = 'currency_exponent'
90
+ @_hash['custom_data'] = 'custom_data'
91
+ @_hash['ledger_event_handler_id'] = 'ledger_event_handler_id'
92
+ @_hash['metadata'] = 'metadata'
93
+ @_hash
94
+ end
95
+
96
+ # An array for optional fields
97
+ def self.optionals
98
+ []
99
+ end
100
+
101
+ # An array for nullable fields
102
+ def self.nullables
103
+ %w[
104
+ description
105
+ direction
106
+ currency_exponent
107
+ custom_data
108
+ metadata
109
+ ]
110
+ end
111
+
112
+ def initialize(id = nil, object = nil, live_mode = nil, created_at = nil,
113
+ updated_at = nil, name = nil, description = nil,
114
+ direction = nil, amount = nil, currency = nil,
115
+ currency_exponent = nil, custom_data = nil,
116
+ ledger_event_handler_id = nil, metadata = nil)
117
+ @id = id
118
+ @object = object
119
+ @live_mode = live_mode
120
+ @created_at = created_at
121
+ @updated_at = updated_at
122
+ @name = name
123
+ @description = description
124
+ @direction = direction
125
+ @amount = amount
126
+ @currency = currency
127
+ @currency_exponent = currency_exponent
128
+ @custom_data = custom_data
129
+ @ledger_event_handler_id = ledger_event_handler_id
130
+ @metadata = metadata
131
+ end
132
+
133
+ # Creates an instance of the object from a hash.
134
+ def self.from_hash(hash)
135
+ return nil unless hash
136
+
137
+ # Extract variables from the hash.
138
+ id = hash.key?('id') ? hash['id'] : nil
139
+ object = hash.key?('object') ? hash['object'] : nil
140
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : nil
141
+ created_at = if hash.key?('created_at')
142
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
143
+ end
144
+ updated_at = if hash.key?('updated_at')
145
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
146
+ end
147
+ name = hash.key?('name') ? hash['name'] : nil
148
+ description = hash.key?('description') ? hash['description'] : nil
149
+ direction = hash.key?('direction') ? hash['direction'] : nil
150
+ amount = hash.key?('amount') ? hash['amount'] : nil
151
+ currency = hash.key?('currency') ? hash['currency'] : nil
152
+ currency_exponent =
153
+ hash.key?('currency_exponent') ? hash['currency_exponent'] : nil
154
+ custom_data = hash.key?('custom_data') ? hash['custom_data'] : nil
155
+ ledger_event_handler_id =
156
+ hash.key?('ledger_event_handler_id') ? hash['ledger_event_handler_id'] : nil
157
+ metadata = hash.key?('metadata') ? hash['metadata'] : nil
158
+
159
+ # Create object from extracted values.
160
+ LedgerableEvent.new(id,
161
+ object,
162
+ live_mode,
163
+ created_at,
164
+ updated_at,
165
+ name,
166
+ description,
167
+ direction,
168
+ amount,
169
+ currency,
170
+ currency_exponent,
171
+ custom_data,
172
+ ledger_event_handler_id,
173
+ metadata)
174
+ end
175
+
176
+ def to_custom_created_at
177
+ DateTimeHelper.to_rfc3339(created_at)
178
+ end
179
+
180
+ def to_custom_updated_at
181
+ DateTimeHelper.to_rfc3339(updated_at)
182
+ end
183
+
184
+ # Provides a human-readable string representation of the object.
185
+ def to_s
186
+ class_name = self.class.name.split('::').last
187
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
188
+ " #{@created_at}, updated_at: #{@updated_at}, name: #{@name}, description: #{@description},"\
189
+ " direction: #{@direction}, amount: #{@amount}, currency: #{@currency}, currency_exponent:"\
190
+ " #{@currency_exponent}, custom_data: #{@custom_data}, ledger_event_handler_id:"\
191
+ " #{@ledger_event_handler_id}, metadata: #{@metadata}>"
192
+ end
193
+
194
+ # Provides a debugging-friendly string with detailed object information.
195
+ def inspect
196
+ class_name = self.class.name.split('::').last
197
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
198
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
199
+ " #{@updated_at.inspect}, name: #{@name.inspect}, description: #{@description.inspect},"\
200
+ " direction: #{@direction.inspect}, amount: #{@amount.inspect}, currency:"\
201
+ " #{@currency.inspect}, currency_exponent: #{@currency_exponent.inspect}, custom_data:"\
202
+ " #{@custom_data.inspect}, ledger_event_handler_id: #{@ledger_event_handler_id.inspect},"\
203
+ " metadata: #{@metadata.inspect}>"
204
+ end
205
+ end
206
+ end