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,140 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # LedgerableEventCreateRequest Model.
8
+ class LedgerableEventCreateRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Name of the ledgerable event.
13
+ # @return [String]
14
+ attr_accessor :name
15
+
16
+ # Description of the ledgerable event.
17
+ # @return [String]
18
+ attr_accessor :description
19
+
20
+ # One of `credit`, `debit`.
21
+ # @return [String]
22
+ attr_accessor :direction
23
+
24
+ # Value in specified currency's smallest unit. e.g. $10 would be represented
25
+ # as 1000.
26
+ # @return [Integer]
27
+ attr_accessor :amount
28
+
29
+ # An ISO 4217 conformed currency or a custom currency.
30
+ # @return [String]
31
+ attr_accessor :currency
32
+
33
+ # Must be included if currency is a custom currency. The currency_exponent
34
+ # cannot exceed 30.
35
+ # @return [Integer]
36
+ attr_accessor :currency_exponent
37
+
38
+ # Additionally data to be used by the Ledger Event Handler.
39
+ # @return [Object]
40
+ attr_accessor :custom_data
41
+
42
+ # Additional data represented as key-value pairs. Both the key and value
43
+ # must be strings.
44
+ # @return [Hash[String, String]]
45
+ attr_accessor :metadata
46
+
47
+ # A mapping from model property names to API property names.
48
+ def self.names
49
+ @_hash = {} if @_hash.nil?
50
+ @_hash['name'] = 'name'
51
+ @_hash['description'] = 'description'
52
+ @_hash['direction'] = 'direction'
53
+ @_hash['amount'] = 'amount'
54
+ @_hash['currency'] = 'currency'
55
+ @_hash['currency_exponent'] = 'currency_exponent'
56
+ @_hash['custom_data'] = 'custom_data'
57
+ @_hash['metadata'] = 'metadata'
58
+ @_hash
59
+ end
60
+
61
+ # An array for optional fields
62
+ def self.optionals
63
+ %w[
64
+ description
65
+ direction
66
+ currency
67
+ currency_exponent
68
+ custom_data
69
+ metadata
70
+ ]
71
+ end
72
+
73
+ # An array for nullable fields
74
+ def self.nullables
75
+ %w[
76
+ description
77
+ direction
78
+ currency
79
+ currency_exponent
80
+ custom_data
81
+ ]
82
+ end
83
+
84
+ def initialize(name = nil, amount = nil, description = SKIP,
85
+ direction = SKIP, currency = SKIP, currency_exponent = SKIP,
86
+ custom_data = SKIP, metadata = SKIP)
87
+ @name = name
88
+ @description = description unless description == SKIP
89
+ @direction = direction unless direction == SKIP
90
+ @amount = amount
91
+ @currency = currency unless currency == SKIP
92
+ @currency_exponent = currency_exponent unless currency_exponent == SKIP
93
+ @custom_data = custom_data unless custom_data == SKIP
94
+ @metadata = metadata unless metadata == SKIP
95
+ end
96
+
97
+ # Creates an instance of the object from a hash.
98
+ def self.from_hash(hash)
99
+ return nil unless hash
100
+
101
+ # Extract variables from the hash.
102
+ name = hash.key?('name') ? hash['name'] : nil
103
+ amount = hash.key?('amount') ? hash['amount'] : nil
104
+ description = hash.key?('description') ? hash['description'] : SKIP
105
+ direction = hash.key?('direction') ? hash['direction'] : SKIP
106
+ currency = hash.key?('currency') ? hash['currency'] : SKIP
107
+ currency_exponent =
108
+ hash.key?('currency_exponent') ? hash['currency_exponent'] : SKIP
109
+ custom_data = hash.key?('custom_data') ? hash['custom_data'] : SKIP
110
+ metadata = hash.key?('metadata') ? hash['metadata'] : SKIP
111
+
112
+ # Create object from extracted values.
113
+ LedgerableEventCreateRequest.new(name,
114
+ amount,
115
+ description,
116
+ direction,
117
+ currency,
118
+ currency_exponent,
119
+ custom_data,
120
+ metadata)
121
+ end
122
+
123
+ # Provides a human-readable string representation of the object.
124
+ def to_s
125
+ class_name = self.class.name.split('::').last
126
+ "<#{class_name} name: #{@name}, description: #{@description}, direction: #{@direction},"\
127
+ " amount: #{@amount}, currency: #{@currency}, currency_exponent: #{@currency_exponent},"\
128
+ " custom_data: #{@custom_data}, metadata: #{@metadata}>"
129
+ end
130
+
131
+ # Provides a debugging-friendly string with detailed object information.
132
+ def inspect
133
+ class_name = self.class.name.split('::').last
134
+ "<#{class_name} name: #{@name.inspect}, description: #{@description.inspect}, direction:"\
135
+ " #{@direction.inspect}, amount: #{@amount.inspect}, currency: #{@currency.inspect},"\
136
+ " currency_exponent: #{@currency_exponent.inspect}, custom_data: #{@custom_data.inspect},"\
137
+ " metadata: #{@metadata.inspect}>"
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,71 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # If the ledger transaction can be reconciled to another object in Modern
8
+ # Treasury, the type will be populated here, otherwise null. This can be one
9
+ # of payment_order, incoming_payment_detail, expected_payment, return, or
10
+ # reversal.
11
+ class LedgerableType2Enum
12
+ LEDGERABLE_TYPE2_ENUM = [
13
+ # TODO: Write general description for COUNTERPARTY
14
+ COUNTERPARTY = 'counterparty'.freeze,
15
+
16
+ # TODO: Write general description for EXPECTED_PAYMENT
17
+ EXPECTED_PAYMENT = 'expected_payment'.freeze,
18
+
19
+ # TODO: Write general description for INCOMING_PAYMENT_DETAIL
20
+ INCOMING_PAYMENT_DETAIL = 'incoming_payment_detail'.freeze,
21
+
22
+ # TODO: Write general description for INTERNAL_ACCOUNT
23
+ INTERNAL_ACCOUNT = 'internal_account'.freeze,
24
+
25
+ # TODO: Write general description for LINE_ITEM
26
+ LINE_ITEM = 'line_item'.freeze,
27
+
28
+ # TODO: Write general description for PAPER_ITEM
29
+ PAPER_ITEM = 'paper_item'.freeze,
30
+
31
+ # TODO: Write general description for PAYMENT_ORDER
32
+ PAYMENT_ORDER = 'payment_order'.freeze,
33
+
34
+ # TODO: Write general description for PAYMENT_ORDER_ATTEMPT
35
+ PAYMENT_ORDER_ATTEMPT = 'payment_order_attempt'.freeze,
36
+
37
+ # TODO: Write general description for ENUM_RETURN
38
+ ENUM_RETURN = 'return'.freeze,
39
+
40
+ # TODO: Write general description for REVERSAL
41
+ REVERSAL = 'reversal'.freeze
42
+ ].freeze
43
+
44
+ def self.validate(value)
45
+ return false if value.nil?
46
+
47
+ LEDGERABLE_TYPE2_ENUM.include?(value)
48
+ end
49
+
50
+ def self.from_value(value, default_value = COUNTERPARTY)
51
+ return default_value if value.nil?
52
+
53
+ str = value.to_s.strip
54
+
55
+ case str.downcase
56
+ when 'counterparty' then COUNTERPARTY
57
+ when 'expected_payment' then EXPECTED_PAYMENT
58
+ when 'incoming_payment_detail' then INCOMING_PAYMENT_DETAIL
59
+ when 'internal_account' then INTERNAL_ACCOUNT
60
+ when 'line_item' then LINE_ITEM
61
+ when 'paper_item' then PAPER_ITEM
62
+ when 'payment_order' then PAYMENT_ORDER
63
+ when 'payment_order_attempt' then PAYMENT_ORDER_ATTEMPT
64
+ when 'enum_return' then ENUM_RETURN
65
+ when 'reversal' then REVERSAL
66
+ else
67
+ default_value
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,69 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # Specify this if you'd like to link the reversal ledger transaction to a
8
+ # Payment object like Return or Reversal.
9
+ class LedgerableType5Enum
10
+ LEDGERABLE_TYPE5_ENUM = [
11
+ # TODO: Write general description for COUNTERPARTY
12
+ COUNTERPARTY = 'counterparty'.freeze,
13
+
14
+ # TODO: Write general description for EXPECTED_PAYMENT
15
+ EXPECTED_PAYMENT = 'expected_payment'.freeze,
16
+
17
+ # TODO: Write general description for INCOMING_PAYMENT_DETAIL
18
+ INCOMING_PAYMENT_DETAIL = 'incoming_payment_detail'.freeze,
19
+
20
+ # TODO: Write general description for INTERNAL_ACCOUNT
21
+ INTERNAL_ACCOUNT = 'internal_account'.freeze,
22
+
23
+ # TODO: Write general description for LINE_ITEM
24
+ LINE_ITEM = 'line_item'.freeze,
25
+
26
+ # TODO: Write general description for PAPER_ITEM
27
+ PAPER_ITEM = 'paper_item'.freeze,
28
+
29
+ # TODO: Write general description for PAYMENT_ORDER
30
+ PAYMENT_ORDER = 'payment_order'.freeze,
31
+
32
+ # TODO: Write general description for PAYMENT_ORDER_ATTEMPT
33
+ PAYMENT_ORDER_ATTEMPT = 'payment_order_attempt'.freeze,
34
+
35
+ # TODO: Write general description for ENUM_RETURN
36
+ ENUM_RETURN = 'return'.freeze,
37
+
38
+ # TODO: Write general description for REVERSAL
39
+ REVERSAL = 'reversal'.freeze
40
+ ].freeze
41
+
42
+ def self.validate(value)
43
+ return false if value.nil?
44
+
45
+ LEDGERABLE_TYPE5_ENUM.include?(value)
46
+ end
47
+
48
+ def self.from_value(value, default_value = COUNTERPARTY)
49
+ return default_value if value.nil?
50
+
51
+ str = value.to_s.strip
52
+
53
+ case str.downcase
54
+ when 'counterparty' then COUNTERPARTY
55
+ when 'expected_payment' then EXPECTED_PAYMENT
56
+ when 'incoming_payment_detail' then INCOMING_PAYMENT_DETAIL
57
+ when 'internal_account' then INTERNAL_ACCOUNT
58
+ when 'line_item' then LINE_ITEM
59
+ when 'paper_item' then PAPER_ITEM
60
+ when 'payment_order' then PAYMENT_ORDER
61
+ when 'payment_order_attempt' then PAYMENT_ORDER_ATTEMPT
62
+ when 'enum_return' then ENUM_RETURN
63
+ when 'reversal' then REVERSAL
64
+ else
65
+ default_value
66
+ end
67
+ end
68
+ end
69
+ 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
+ # ledgerable_type6.
8
+ class LedgerableType6Enum
9
+ LEDGERABLE_TYPE6_ENUM = [
10
+ # TODO: Write general description for COUNTERPARTY
11
+ COUNTERPARTY = 'counterparty'.freeze,
12
+
13
+ # TODO: Write general description for EXPECTED_PAYMENT
14
+ EXPECTED_PAYMENT = 'expected_payment'.freeze,
15
+
16
+ # TODO: Write general description for INCOMING_PAYMENT_DETAIL
17
+ INCOMING_PAYMENT_DETAIL = 'incoming_payment_detail'.freeze,
18
+
19
+ # TODO: Write general description for INTERNAL_ACCOUNT
20
+ INTERNAL_ACCOUNT = 'internal_account'.freeze,
21
+
22
+ # TODO: Write general description for LINE_ITEM
23
+ LINE_ITEM = 'line_item'.freeze,
24
+
25
+ # TODO: Write general description for PAPER_ITEM
26
+ PAPER_ITEM = 'paper_item'.freeze,
27
+
28
+ # TODO: Write general description for PAYMENT_ORDER
29
+ PAYMENT_ORDER = 'payment_order'.freeze,
30
+
31
+ # TODO: Write general description for PAYMENT_ORDER_ATTEMPT
32
+ PAYMENT_ORDER_ATTEMPT = 'payment_order_attempt'.freeze,
33
+
34
+ # TODO: Write general description for ENUM_RETURN
35
+ ENUM_RETURN = 'return'.freeze,
36
+
37
+ # TODO: Write general description for REVERSAL
38
+ REVERSAL = 'reversal'.freeze
39
+ ].freeze
40
+
41
+ def self.validate(value)
42
+ return false if value.nil?
43
+
44
+ LEDGERABLE_TYPE6_ENUM.include?(value)
45
+ end
46
+
47
+ def self.from_value(value, default_value = COUNTERPARTY)
48
+ return default_value if value.nil?
49
+
50
+ str = value.to_s.strip
51
+
52
+ case str.downcase
53
+ when 'counterparty' then COUNTERPARTY
54
+ when 'expected_payment' then EXPECTED_PAYMENT
55
+ when 'incoming_payment_detail' then INCOMING_PAYMENT_DETAIL
56
+ when 'internal_account' then INTERNAL_ACCOUNT
57
+ when 'line_item' then LINE_ITEM
58
+ when 'paper_item' then PAPER_ITEM
59
+ when 'payment_order' then PAYMENT_ORDER
60
+ when 'payment_order_attempt' then PAYMENT_ORDER_ATTEMPT
61
+ when 'enum_return' then ENUM_RETURN
62
+ when 'reversal' then REVERSAL
63
+ else
64
+ default_value
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,38 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # If the ledger account links to another object in Modern Treasury, the type
8
+ # will be populated here, otherwise null. The value is one of internal_account
9
+ # or external_account.
10
+ class LedgerableTypeEnum
11
+ LEDGERABLE_TYPE_ENUM = [
12
+ # TODO: Write general description for EXTERNAL_ACCOUNT
13
+ EXTERNAL_ACCOUNT = 'external_account'.freeze,
14
+
15
+ # TODO: Write general description for INTERNAL_ACCOUNT
16
+ INTERNAL_ACCOUNT = 'internal_account'.freeze
17
+ ].freeze
18
+
19
+ def self.validate(value)
20
+ return false if value.nil?
21
+
22
+ LEDGERABLE_TYPE_ENUM.include?(value)
23
+ end
24
+
25
+ def self.from_value(value, default_value = EXTERNAL_ACCOUNT)
26
+ return default_value if value.nil?
27
+
28
+ str = value.to_s.strip
29
+
30
+ case str.downcase
31
+ when 'external_account' then EXTERNAL_ACCOUNT
32
+ when 'internal_account' then INTERNAL_ACCOUNT
33
+ else
34
+ default_value
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,70 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # LegacyDocumentCreateRequest Model.
8
+ class LegacyDocumentCreateRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # A category given to the document, can be `null`.
13
+ # @return [String]
14
+ attr_accessor :document_type
15
+
16
+ # A category given to the document, can be `null`.
17
+ # @return [Binary]
18
+ attr_accessor :file
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['document_type'] = 'document_type'
24
+ @_hash['file'] = 'file'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ %w[
31
+ document_type
32
+ ]
33
+ end
34
+
35
+ # An array for nullable fields
36
+ def self.nullables
37
+ []
38
+ end
39
+
40
+ def initialize(file = nil, document_type = SKIP)
41
+ @document_type = document_type unless document_type == SKIP
42
+ @file = file
43
+ end
44
+
45
+ # Creates an instance of the object from a hash.
46
+ def self.from_hash(hash)
47
+ return nil unless hash
48
+
49
+ # Extract variables from the hash.
50
+ file = hash.key?('file') ? hash['file'] : nil
51
+ document_type = hash.key?('document_type') ? hash['document_type'] : SKIP
52
+
53
+ # Create object from extracted values.
54
+ LegacyDocumentCreateRequest.new(file,
55
+ document_type)
56
+ end
57
+
58
+ # Provides a human-readable string representation of the object.
59
+ def to_s
60
+ class_name = self.class.name.split('::').last
61
+ "<#{class_name} document_type: #{@document_type}, file: #{@file}>"
62
+ end
63
+
64
+ # Provides a debugging-friendly string with detailed object information.
65
+ def inspect
66
+ class_name = self.class.name.split('::').last
67
+ "<#{class_name} document_type: #{@document_type.inspect}, file: #{@file.inspect}>"
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,200 @@
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
+ # LineItem Model.
9
+ class LineItem < 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 ID of the payment order or expected payment.
37
+ # @return [UUID | String]
38
+ attr_accessor :itemizable_id
39
+
40
+ # One of `payment_orders` or `expected_payments`.
41
+ # @return [ItemizableTypeEnum]
42
+ attr_accessor :itemizable_type
43
+
44
+ # Value in specified currency's smallest unit. e.g. $10 would be represented
45
+ # as 1000.
46
+ # @return [Integer]
47
+ attr_accessor :amount
48
+
49
+ # A free-form description of the line item.
50
+ # @return [String]
51
+ attr_accessor :description
52
+
53
+ # Additional data represented as key-value pairs. Both the key and value
54
+ # must be strings.
55
+ # @return [Hash[String, String]]
56
+ attr_accessor :metadata
57
+
58
+ # Additional data represented as key-value pairs. Both the key and value
59
+ # must be strings.
60
+ # @return [Accounting]
61
+ attr_accessor :accounting
62
+
63
+ # The ID of one of your accounting categories. Note that these will only be
64
+ # accessible if your accounting system has been connected.
65
+ # @return [UUID | String]
66
+ attr_accessor :accounting_category_id
67
+
68
+ # The ID of one of the class objects in your accounting system. Class
69
+ # objects track segments of your business independent of client or project.
70
+ # Note that these will only be accessible if your accounting system has been
71
+ # connected.
72
+ # @return [UUID | String]
73
+ attr_accessor :accounting_ledger_class_id
74
+
75
+ # A mapping from model property names to API property names.
76
+ def self.names
77
+ @_hash = {} if @_hash.nil?
78
+ @_hash['id'] = 'id'
79
+ @_hash['object'] = 'object'
80
+ @_hash['live_mode'] = 'live_mode'
81
+ @_hash['created_at'] = 'created_at'
82
+ @_hash['updated_at'] = 'updated_at'
83
+ @_hash['itemizable_id'] = 'itemizable_id'
84
+ @_hash['itemizable_type'] = 'itemizable_type'
85
+ @_hash['amount'] = 'amount'
86
+ @_hash['description'] = 'description'
87
+ @_hash['metadata'] = 'metadata'
88
+ @_hash['accounting'] = 'accounting'
89
+ @_hash['accounting_category_id'] = 'accounting_category_id'
90
+ @_hash['accounting_ledger_class_id'] = 'accounting_ledger_class_id'
91
+ @_hash
92
+ end
93
+
94
+ # An array for optional fields
95
+ def self.optionals
96
+ []
97
+ end
98
+
99
+ # An array for nullable fields
100
+ def self.nullables
101
+ %w[
102
+ description
103
+ accounting_category_id
104
+ accounting_ledger_class_id
105
+ ]
106
+ end
107
+
108
+ def initialize(id = nil, object = nil, live_mode = nil, created_at = nil,
109
+ updated_at = nil, itemizable_id = nil, itemizable_type = nil,
110
+ amount = nil, description = nil, metadata = nil,
111
+ accounting = nil, accounting_category_id = nil,
112
+ accounting_ledger_class_id = nil)
113
+ @id = id
114
+ @object = object
115
+ @live_mode = live_mode
116
+ @created_at = created_at
117
+ @updated_at = updated_at
118
+ @itemizable_id = itemizable_id
119
+ @itemizable_type = itemizable_type
120
+ @amount = amount
121
+ @description = description
122
+ @metadata = metadata
123
+ @accounting = accounting
124
+ @accounting_category_id = accounting_category_id
125
+ @accounting_ledger_class_id = accounting_ledger_class_id
126
+ end
127
+
128
+ # Creates an instance of the object from a hash.
129
+ def self.from_hash(hash)
130
+ return nil unless hash
131
+
132
+ # Extract variables from the hash.
133
+ id = hash.key?('id') ? hash['id'] : nil
134
+ object = hash.key?('object') ? hash['object'] : nil
135
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : nil
136
+ created_at = if hash.key?('created_at')
137
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
138
+ end
139
+ updated_at = if hash.key?('updated_at')
140
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
141
+ end
142
+ itemizable_id = hash.key?('itemizable_id') ? hash['itemizable_id'] : nil
143
+ itemizable_type =
144
+ hash.key?('itemizable_type') ? hash['itemizable_type'] : nil
145
+ amount = hash.key?('amount') ? hash['amount'] : nil
146
+ description = hash.key?('description') ? hash['description'] : nil
147
+ metadata = hash.key?('metadata') ? hash['metadata'] : nil
148
+ accounting = Accounting.from_hash(hash['accounting']) if hash['accounting']
149
+ accounting_category_id =
150
+ hash.key?('accounting_category_id') ? hash['accounting_category_id'] : nil
151
+ accounting_ledger_class_id =
152
+ hash.key?('accounting_ledger_class_id') ? hash['accounting_ledger_class_id'] : nil
153
+
154
+ # Create object from extracted values.
155
+ LineItem.new(id,
156
+ object,
157
+ live_mode,
158
+ created_at,
159
+ updated_at,
160
+ itemizable_id,
161
+ itemizable_type,
162
+ amount,
163
+ description,
164
+ metadata,
165
+ accounting,
166
+ accounting_category_id,
167
+ accounting_ledger_class_id)
168
+ end
169
+
170
+ def to_custom_created_at
171
+ DateTimeHelper.to_rfc3339(created_at)
172
+ end
173
+
174
+ def to_custom_updated_at
175
+ DateTimeHelper.to_rfc3339(updated_at)
176
+ end
177
+
178
+ # Provides a human-readable string representation of the object.
179
+ def to_s
180
+ class_name = self.class.name.split('::').last
181
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
182
+ " #{@created_at}, updated_at: #{@updated_at}, itemizable_id: #{@itemizable_id},"\
183
+ " itemizable_type: #{@itemizable_type}, amount: #{@amount}, description: #{@description},"\
184
+ " metadata: #{@metadata}, accounting: #{@accounting}, accounting_category_id:"\
185
+ " #{@accounting_category_id}, accounting_ledger_class_id: #{@accounting_ledger_class_id}>"
186
+ end
187
+
188
+ # Provides a debugging-friendly string with detailed object information.
189
+ def inspect
190
+ class_name = self.class.name.split('::').last
191
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
192
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
193
+ " #{@updated_at.inspect}, itemizable_id: #{@itemizable_id.inspect}, itemizable_type:"\
194
+ " #{@itemizable_type.inspect}, amount: #{@amount.inspect}, description:"\
195
+ " #{@description.inspect}, metadata: #{@metadata.inspect}, accounting:"\
196
+ " #{@accounting.inspect}, accounting_category_id: #{@accounting_category_id.inspect},"\
197
+ " accounting_ledger_class_id: #{@accounting_ledger_class_id.inspect}>"
198
+ end
199
+ end
200
+ end