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,206 @@
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 enum for SDK environments.
8
+ class Environment
9
+ ENVIRONMENT = [
10
+ PRODUCTION = 'production'.freeze,
11
+ ENVIRONMENT2 = 'environment2'.freeze
12
+ ].freeze
13
+
14
+ # Converts a string or symbol into a valid Environment constant.
15
+ def self.from_value(value, default_value = PRODUCTION)
16
+ return default_value if value.nil?
17
+
18
+ str = value.to_s.strip.downcase
19
+ case str
20
+ when 'production' then PRODUCTION
21
+ when 'environment2' then ENVIRONMENT2
22
+
23
+ else
24
+ warn "[Environment] Unknown environment '#{value}', falling back to #{default_value} "
25
+ default_value
26
+ end
27
+ end
28
+ end
29
+
30
+ # An enum for API servers.
31
+ class Server
32
+ SERVER = [
33
+ DEFAULT = 'default'.freeze
34
+ ].freeze
35
+
36
+ # Converts a string or symbol into a valid Server constant.
37
+ def self.from_value(value, default_value = DEFAULT)
38
+ return default_value if value.nil?
39
+
40
+ default_value
41
+ end
42
+ end
43
+
44
+ # All configuration including auth info and base URI for the API access
45
+ # are configured in this class.
46
+ class Configuration < CoreLibrary::HttpClientConfiguration
47
+ def basic_auth_user_name
48
+ @basic_auth_credentials.username
49
+ end
50
+
51
+ def basic_auth_password
52
+ @basic_auth_credentials.password
53
+ end
54
+
55
+ # The attribute readers for properties.
56
+ attr_reader :environment, :basic_auth_credentials
57
+
58
+ class << self
59
+ attr_reader :environments
60
+ end
61
+
62
+ def initialize(
63
+ connection: nil, adapter: :net_http_persistent, timeout: 60,
64
+ max_retries: 0, retry_interval: 1, backoff_factor: 2,
65
+ retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
66
+ retry_methods: %i[get put], http_callback: nil, proxy_settings: nil,
67
+ environment: Environment::PRODUCTION, basic_auth_user_name: nil,
68
+ basic_auth_password: nil, basic_auth_credentials: nil
69
+ )
70
+ super connection: connection, adapter: adapter, timeout: timeout,
71
+ max_retries: max_retries, retry_interval: retry_interval,
72
+ backoff_factor: backoff_factor, retry_statuses: retry_statuses,
73
+ retry_methods: retry_methods, http_callback: http_callback,
74
+ proxy_settings: proxy_settings
75
+
76
+ # Current API environment
77
+ @environment = String(environment)
78
+
79
+ # The username to use with basic authentication
80
+ @basic_auth_user_name = basic_auth_user_name
81
+
82
+ # The password to use with basic authentication
83
+ @basic_auth_password = basic_auth_password
84
+
85
+ # Initializing Basic Authentication credentials with the provided auth parameters
86
+ @basic_auth_credentials = create_auth_credentials_object(
87
+ basic_auth_user_name, basic_auth_password, basic_auth_credentials
88
+ )
89
+
90
+ # The Http Client to use for making requests.
91
+ set_http_client CoreLibrary::FaradayClient.new(self)
92
+ end
93
+
94
+ def clone_with(connection: nil, adapter: nil, timeout: nil,
95
+ max_retries: nil, retry_interval: nil, backoff_factor: nil,
96
+ retry_statuses: nil, retry_methods: nil, http_callback: nil,
97
+ proxy_settings: nil, environment: nil,
98
+ basic_auth_user_name: nil, basic_auth_password: nil,
99
+ basic_auth_credentials: nil)
100
+ connection ||= self.connection
101
+ adapter ||= self.adapter
102
+ timeout ||= self.timeout
103
+ max_retries ||= self.max_retries
104
+ retry_interval ||= self.retry_interval
105
+ backoff_factor ||= self.backoff_factor
106
+ retry_statuses ||= self.retry_statuses
107
+ retry_methods ||= self.retry_methods
108
+ http_callback ||= self.http_callback
109
+ proxy_settings ||= self.proxy_settings
110
+ environment ||= self.environment
111
+ basic_auth_credentials = create_auth_credentials_object(
112
+ basic_auth_user_name, basic_auth_password,
113
+ basic_auth_credentials || self.basic_auth_credentials
114
+ )
115
+
116
+ Configuration.new(connection: connection, adapter: adapter,
117
+ timeout: timeout, max_retries: max_retries,
118
+ retry_interval: retry_interval,
119
+ backoff_factor: backoff_factor,
120
+ retry_statuses: retry_statuses,
121
+ retry_methods: retry_methods,
122
+ http_callback: http_callback,
123
+ proxy_settings: proxy_settings,
124
+ environment: environment,
125
+ basic_auth_credentials: basic_auth_credentials)
126
+ end
127
+
128
+ def create_auth_credentials_object(basic_auth_user_name,
129
+ basic_auth_password,
130
+ basic_auth_credentials)
131
+ return basic_auth_credentials if basic_auth_user_name.nil? && basic_auth_password.nil?
132
+
133
+ warn('The \'basic_auth_user_name\', \'basic_auth_password\' params are d'\
134
+ 'eprecated. Use \'basic_auth_credentials\' param instead.')
135
+
136
+ unless basic_auth_credentials.nil?
137
+ return basic_auth_credentials.clone_with(
138
+ username: basic_auth_user_name,
139
+ password: basic_auth_password
140
+ )
141
+ end
142
+
143
+ BasicAuthCredentials.new(username: basic_auth_user_name,
144
+ password: basic_auth_password)
145
+ end
146
+
147
+ # All the environments the SDK can run in.
148
+ ENVIRONMENTS = {
149
+ Environment::PRODUCTION => {
150
+ Server::DEFAULT => 'http://localhost:3000'
151
+ },
152
+ Environment::ENVIRONMENT2 => {
153
+ Server::DEFAULT => 'https://app.moderntreasury.com'
154
+ }
155
+ }.freeze
156
+
157
+ # Generates the appropriate base URI for the environment and the server.
158
+ # @param [Configuration::Server] server The server enum for which the base URI is
159
+ # required.
160
+ # @return [String] The base URI.
161
+ def get_base_uri(server = Server::DEFAULT)
162
+ ENVIRONMENTS[environment][server].clone
163
+ end
164
+
165
+ # Builds a Configuration instance using environment variables.
166
+ def self.build_default_config_from_env
167
+ # === Core environment ===
168
+ environment = Environment.from_value(ENV.fetch('ENVIRONMENT', 'production'))
169
+ timeout = (ENV['TIMEOUT'] || 60).to_f
170
+ max_retries = (ENV['MAX_RETRIES'] || 0).to_i
171
+ retry_interval = (ENV['RETRY_INTERVAL'] || 1).to_f
172
+ backoff_factor = (ENV['BACKOFF_FACTOR'] || 2).to_f
173
+ retry_statuses = ENV.fetch('RETRY_STATUSES',
174
+ '[408, 413, 429, 500, 502, 503, 504, 521, 522, 524]').gsub(/[\[\]]/, '')
175
+ .split(',')
176
+ .map(&:strip)
177
+ .map do |item|
178
+ item.match?(/\A\d+\z/) ? item.to_i : item.downcase
179
+ end
180
+ retry_methods = ENV.fetch('RETRY_METHODS', '%i[get put]').gsub(/[\[\]]/, '')
181
+ .split(',')
182
+ .map(&:strip)
183
+ .map do |item|
184
+ item.match?(/\A\d+\z/) ? item.to_i : item.downcase
185
+ end
186
+
187
+ # === Authentication credentials ===
188
+ basic_auth_credentials = BasicAuthCredentials.from_env
189
+
190
+ # === Proxy settings ===
191
+ proxy_settings = ProxySettings.from_env
192
+
193
+ Configuration.new(
194
+ environment: environment,
195
+ timeout: timeout,
196
+ max_retries: max_retries,
197
+ retry_interval: retry_interval,
198
+ backoff_factor: backoff_factor,
199
+ retry_statuses: retry_statuses,
200
+ retry_methods: retry_methods,
201
+ basic_auth_credentials: basic_auth_credentials,
202
+ proxy_settings: proxy_settings
203
+ )
204
+ end
205
+ end
206
+ end
@@ -0,0 +1,130 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # AccountCollectionFlowController
8
+ class AccountCollectionFlowController < BaseController
9
+ # TODO: type endpoint description here
10
+ # @param [Integer] per_page Optional parameter: TODO: type description
11
+ # here
12
+ # @param [String] client_token Optional parameter: TODO: type description
13
+ # here
14
+ # @param [String] status Optional parameter: TODO: type description here
15
+ # @param [String] counterparty_id Optional parameter: TODO: type description
16
+ # here
17
+ # @param [String] external_account_id Optional parameter: TODO: type
18
+ # description here
19
+ # @param [String] after_cursor Optional parameter: TODO: type description
20
+ # here
21
+ # @return [Array[AccountCollectionFlow]] Response from the API call.
22
+ def list_account_collection_flows(per_page: nil,
23
+ client_token: nil,
24
+ status: nil,
25
+ counterparty_id: nil,
26
+ external_account_id: nil,
27
+ after_cursor: nil)
28
+ @api_call
29
+ .request(new_request_builder(HttpMethodEnum::GET,
30
+ '/api/account_collection_flows',
31
+ Server::DEFAULT)
32
+ .query_param(new_parameter(per_page, key: 'per_page'))
33
+ .query_param(new_parameter(client_token, key: 'client_token'))
34
+ .query_param(new_parameter(status, key: 'status'))
35
+ .query_param(new_parameter(counterparty_id, key: 'counterparty_id'))
36
+ .query_param(new_parameter(external_account_id, key: 'external_account_id'))
37
+ .query_param(new_parameter(after_cursor, key: 'after_cursor'))
38
+ .header_param(new_parameter('application/json', key: 'accept'))
39
+ .auth(Single.new('basic_auth')))
40
+ .response(new_response_handler
41
+ .deserializer(APIHelper.method(:custom_type_deserializer))
42
+ .deserialize_into(AccountCollectionFlow.method(:from_hash))
43
+ .is_response_array(true))
44
+ .execute
45
+ end
46
+
47
+ # TODO: type endpoint description here
48
+ # @param [String] idempotency_key Optional parameter: This key should be
49
+ # something unique, preferably something like an UUID.
50
+ # @param [AccountCollectionFlowCreateRequest] body Optional parameter: TODO:
51
+ # type description here
52
+ # @return [AccountCollectionFlow] Response from the API call.
53
+ def create_account_collection_flow(idempotency_key: nil,
54
+ body: nil)
55
+ @api_call
56
+ .request(new_request_builder(HttpMethodEnum::POST,
57
+ '/api/account_collection_flows',
58
+ Server::DEFAULT)
59
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
60
+ .header_param(new_parameter(idempotency_key, key: 'Idempotency-Key'))
61
+ .body_param(new_parameter(body))
62
+ .header_param(new_parameter('application/json', key: 'accept'))
63
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
64
+ .auth(Single.new('basic_auth')))
65
+ .response(new_response_handler
66
+ .deserializer(APIHelper.method(:custom_type_deserializer))
67
+ .deserialize_into(AccountCollectionFlow.method(:from_hash))
68
+ .local_error('422',
69
+ 'unsuccessful',
70
+ ErrorMessageException))
71
+ .execute
72
+ end
73
+
74
+ # TODO: type endpoint description here
75
+ # @param [String] id Required parameter: id
76
+ # @param [String] idempotency_key Optional parameter: This key should be
77
+ # something unique, preferably something like an UUID.
78
+ # @return [AccountCollectionFlow] Response from the API call.
79
+ def get_account_collection_flow(id,
80
+ idempotency_key: nil)
81
+ @api_call
82
+ .request(new_request_builder(HttpMethodEnum::GET,
83
+ '/api/account_collection_flows/{id}',
84
+ Server::DEFAULT)
85
+ .template_param(new_parameter(id, key: 'id')
86
+ .should_encode(true))
87
+ .header_param(new_parameter(idempotency_key, key: 'Idempotency-Key'))
88
+ .header_param(new_parameter('application/json', key: 'accept'))
89
+ .auth(Single.new('basic_auth')))
90
+ .response(new_response_handler
91
+ .deserializer(APIHelper.method(:custom_type_deserializer))
92
+ .deserialize_into(AccountCollectionFlow.method(:from_hash)))
93
+ .execute
94
+ end
95
+
96
+ # TODO: type endpoint description here
97
+ # @param [String] id Required parameter: id
98
+ # @param [String] idempotency_key Optional parameter: This key should be
99
+ # something unique, preferably something like an UUID.
100
+ # @param [AccountCollectionFlowUpdateRequest] body Optional parameter: TODO:
101
+ # type description here
102
+ # @return [AccountCollectionFlow] Response from the API call.
103
+ def update_account_collection_flow(id,
104
+ idempotency_key: nil,
105
+ body: nil)
106
+ @api_call
107
+ .request(new_request_builder(HttpMethodEnum::PATCH,
108
+ '/api/account_collection_flows/{id}',
109
+ Server::DEFAULT)
110
+ .template_param(new_parameter(id, key: 'id')
111
+ .should_encode(true))
112
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
113
+ .header_param(new_parameter(idempotency_key, key: 'Idempotency-Key'))
114
+ .body_param(new_parameter(body))
115
+ .header_param(new_parameter('application/json', key: 'accept'))
116
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
117
+ .auth(Single.new('basic_auth')))
118
+ .response(new_response_handler
119
+ .deserializer(APIHelper.method(:custom_type_deserializer))
120
+ .deserialize_into(AccountCollectionFlow.method(:from_hash))
121
+ .local_error('404',
122
+ 'not found',
123
+ ErrorMessageException)
124
+ .local_error('422',
125
+ 'unsuccessful',
126
+ ErrorMessageException))
127
+ .execute
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,131 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # AccountDetailController
8
+ class AccountDetailController < BaseController
9
+ # Get a list of account details for a single internal or external account.
10
+ # @param [AccountsTypeEnum] accounts_type Required parameter: Example:
11
+ # @param [String] account_id Required parameter: The ID of the account.
12
+ # @param [String] after_cursor Optional parameter: TODO: type description
13
+ # here
14
+ # @param [Integer] per_page Optional parameter: TODO: type description
15
+ # here
16
+ # @return [Array[AccountDetail]] Response from the API call.
17
+ def list_account_details(accounts_type,
18
+ account_id,
19
+ after_cursor: nil,
20
+ per_page: nil)
21
+ @api_call
22
+ .request(new_request_builder(HttpMethodEnum::GET,
23
+ '/api/{accounts_type}/{account_id}/account_details',
24
+ Server::DEFAULT)
25
+ .template_param(new_parameter(accounts_type, key: 'accounts_type')
26
+ .should_encode(true))
27
+ .template_param(new_parameter(account_id, key: 'account_id')
28
+ .should_encode(true))
29
+ .query_param(new_parameter(after_cursor, key: 'after_cursor'))
30
+ .query_param(new_parameter(per_page, key: 'per_page'))
31
+ .header_param(new_parameter('application/json', key: 'accept'))
32
+ .auth(Single.new('basic_auth')))
33
+ .response(new_response_handler
34
+ .deserializer(APIHelper.method(:custom_type_deserializer))
35
+ .deserialize_into(AccountDetail.method(:from_hash))
36
+ .is_response_array(true))
37
+ .execute
38
+ end
39
+
40
+ # Create an account detail for an external account.
41
+ # @param [AccountsType1Enum] accounts_type Required parameter: Example:
42
+ # @param [String] account_id Required parameter: The ID of the account.
43
+ # @param [String] idempotency_key Optional parameter: This key should be
44
+ # something unique, preferably something like an UUID.
45
+ # @param [AccountDetailCreateRequest] body Optional parameter: TODO: type
46
+ # description here
47
+ # @return [AccountDetail] Response from the API call.
48
+ def create_account_detail(accounts_type,
49
+ account_id,
50
+ idempotency_key: nil,
51
+ body: nil)
52
+ @api_call
53
+ .request(new_request_builder(HttpMethodEnum::POST,
54
+ '/api/{accounts_type}/{account_id}/account_details',
55
+ Server::DEFAULT)
56
+ .template_param(new_parameter(accounts_type, key: 'accounts_type')
57
+ .should_encode(true))
58
+ .template_param(new_parameter(account_id, key: 'account_id')
59
+ .should_encode(true))
60
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
61
+ .header_param(new_parameter(idempotency_key, key: 'Idempotency-Key'))
62
+ .body_param(new_parameter(body))
63
+ .header_param(new_parameter('application/json', key: 'accept'))
64
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
65
+ .auth(Single.new('basic_auth')))
66
+ .response(new_response_handler
67
+ .deserializer(APIHelper.method(:custom_type_deserializer))
68
+ .deserialize_into(AccountDetail.method(:from_hash))
69
+ .local_error('404',
70
+ 'unsuccessful',
71
+ ErrorMessageException)
72
+ .local_error('422',
73
+ 'unsuccessful',
74
+ ErrorMessageException))
75
+ .execute
76
+ end
77
+
78
+ # Get a single account detail for a single internal or external account.
79
+ # @param [AccountsTypeEnum] accounts_type Required parameter: Example:
80
+ # @param [String] account_id Required parameter: The ID of the account.
81
+ # @param [String] id Required parameter: The ID of the account detail.
82
+ # @return [AccountDetail] Response from the API call.
83
+ def get_account_detail(accounts_type,
84
+ account_id,
85
+ id)
86
+ @api_call
87
+ .request(new_request_builder(HttpMethodEnum::GET,
88
+ '/api/{accounts_type}/{account_id}/account_details/{id}',
89
+ Server::DEFAULT)
90
+ .template_param(new_parameter(accounts_type, key: 'accounts_type')
91
+ .should_encode(true))
92
+ .template_param(new_parameter(account_id, key: 'account_id')
93
+ .should_encode(true))
94
+ .template_param(new_parameter(id, key: 'id')
95
+ .should_encode(true))
96
+ .header_param(new_parameter('application/json', key: 'accept'))
97
+ .auth(Single.new('basic_auth')))
98
+ .response(new_response_handler
99
+ .deserializer(APIHelper.method(:custom_type_deserializer))
100
+ .deserialize_into(AccountDetail.method(:from_hash))
101
+ .local_error('404',
102
+ 'not found',
103
+ ErrorMessageException))
104
+ .execute
105
+ end
106
+
107
+ # Delete a single account detail for an external account.
108
+ # @param [AccountsType1Enum] accounts_type Required parameter: Example:
109
+ # @param [String] account_id Required parameter: The ID of the account.
110
+ # @param [String] id Required parameter: The ID of the account detail.
111
+ # @return [void] Response from the API call.
112
+ def delete_account_detail(accounts_type,
113
+ account_id,
114
+ id)
115
+ @api_call
116
+ .request(new_request_builder(HttpMethodEnum::DELETE,
117
+ '/api/{accounts_type}/{account_id}/account_details/{id}',
118
+ Server::DEFAULT)
119
+ .template_param(new_parameter(accounts_type, key: 'accounts_type')
120
+ .should_encode(true))
121
+ .template_param(new_parameter(account_id, key: 'account_id')
122
+ .should_encode(true))
123
+ .template_param(new_parameter(id, key: 'id')
124
+ .should_encode(true))
125
+ .auth(Single.new('basic_auth')))
126
+ .response(new_response_handler
127
+ .is_response_void(true))
128
+ .execute
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,76 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # BalanceReportController
8
+ class BalanceReportController < BaseController
9
+ # Get all balance reports for a given internal account.
10
+ # @param [String] internal_account_id Required parameter: TODO: type
11
+ # description here
12
+ # @param [Date] as_of_date Optional parameter: The date of the balance
13
+ # report in local time.
14
+ # @param [BalanceReportType1Enum] balance_report_type Optional parameter:
15
+ # The specific type of balance report. One of `intraday`, `previous_day`,
16
+ # `real_time`, or `other`.
17
+ # @param [String] after_cursor Optional parameter: TODO: type description
18
+ # here
19
+ # @param [Integer] per_page Optional parameter: TODO: type description
20
+ # here
21
+ # @return [Array[BalanceReport]] Response from the API call.
22
+ def list_balance_reports(internal_account_id,
23
+ as_of_date: nil,
24
+ balance_report_type: nil,
25
+ after_cursor: nil,
26
+ per_page: nil)
27
+ @api_call
28
+ .request(new_request_builder(HttpMethodEnum::GET,
29
+ '/api/internal_accounts/{internal_account_id}/balance_reports',
30
+ Server::DEFAULT)
31
+ .template_param(new_parameter(internal_account_id, key: 'internal_account_id')
32
+ .should_encode(true))
33
+ .query_param(new_parameter(as_of_date, key: 'as_of_date'))
34
+ .query_param(new_parameter(balance_report_type, key: 'balance_report_type'))
35
+ .query_param(new_parameter(after_cursor, key: 'after_cursor'))
36
+ .query_param(new_parameter(per_page, key: 'per_page'))
37
+ .header_param(new_parameter('application/json', key: 'accept'))
38
+ .auth(Single.new('basic_auth')))
39
+ .response(new_response_handler
40
+ .deserializer(APIHelper.method(:custom_type_deserializer))
41
+ .deserialize_into(BalanceReport.method(:from_hash))
42
+ .is_response_array(true)
43
+ .local_error('403',
44
+ 'forbidden',
45
+ ErrorMessageException))
46
+ .execute
47
+ end
48
+
49
+ # Get a single balance report for a given internal account.
50
+ # @param [String] internal_account_id Required parameter: TODO: type
51
+ # description here
52
+ # @param [String] id Required parameter: Either the unique identifier of the
53
+ # balance report or latest for the latest balance report.
54
+ # @return [BalanceReport] Response from the API call.
55
+ def get_balance_report(internal_account_id,
56
+ id)
57
+ @api_call
58
+ .request(new_request_builder(HttpMethodEnum::GET,
59
+ '/api/internal_accounts/{internal_account_id}/balance_reports/{id}',
60
+ Server::DEFAULT)
61
+ .template_param(new_parameter(internal_account_id, key: 'internal_account_id')
62
+ .should_encode(true))
63
+ .template_param(new_parameter(id, key: 'id')
64
+ .should_encode(true))
65
+ .header_param(new_parameter('application/json', key: 'accept'))
66
+ .auth(Single.new('basic_auth')))
67
+ .response(new_response_handler
68
+ .deserializer(APIHelper.method(:custom_type_deserializer))
69
+ .deserialize_into(BalanceReport.method(:from_hash))
70
+ .local_error('404',
71
+ 'not found',
72
+ ErrorMessageException))
73
+ .execute
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,60 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # BaseController.
8
+ class BaseController
9
+ include CoreLibrary
10
+ attr_accessor :config, :http_call_back
11
+
12
+ def self.user_agent
13
+ 'APIMATIC 3.0'
14
+ end
15
+
16
+
17
+ GLOBAL_ERRORS = {
18
+ 'default' => ErrorCase.new
19
+ .error_message('HTTP response not OK.')
20
+ .exception_type(APIException)
21
+ }.freeze
22
+
23
+ # Initialization constructor.
24
+ # @param [GlobalConfiguration] global_configuration The instance of GlobalConfiguration.
25
+ def initialize(global_configuration)
26
+ @global_configuration = global_configuration
27
+ @config = @global_configuration.client_configuration
28
+ @http_call_back = @config.http_callback
29
+ @api_call = ApiCall.new(@global_configuration)
30
+ end
31
+
32
+ # Creates a new instance of the request builder.
33
+ # @param [String] http_method The HTTP method to use in the request.
34
+ # @param [String] path The endpoint path to use in the request.
35
+ # @param [String] server The server to extract the base uri for the request.
36
+ # @return [RequestBuilder] The instance of RequestBuilder.
37
+ def new_request_builder(http_method, path, server)
38
+ RequestBuilder.new
39
+ .http_method(http_method)
40
+ .path(path)
41
+ .server(server)
42
+ end
43
+
44
+ # Creates a new instance of the response handler.
45
+ # @return [ResponseHandler] The instance of ResponseHandler.
46
+ def new_response_handler
47
+ ResponseHandler.new
48
+ end
49
+
50
+ # Creates a new instance of the parameter.
51
+ # @param [String|optional] key The key of the parameter.
52
+ # @param [Object] value The value of the parameter.
53
+ # @return [Parameter] The instance of Parameter.
54
+ def new_parameter(value, key: nil)
55
+ Parameter.new
56
+ .key(key)
57
+ .value(value)
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,40 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # ConnectionController
8
+ class ConnectionController < BaseController
9
+ # Get a list of all connections.
10
+ # @param [Integer] per_page Optional parameter: TODO: type description
11
+ # here
12
+ # @param [UUID | String] vendor_customer_id Optional parameter: An
13
+ # identifier assigned by the vendor to your organization.
14
+ # @param [String] entity Optional parameter: A string code representing the
15
+ # vendor (i.e. bank).
16
+ # @param [String] after_cursor Optional parameter: TODO: type description
17
+ # here
18
+ # @return [Array[Connection]] Response from the API call.
19
+ def list_connections(per_page: nil,
20
+ vendor_customer_id: nil,
21
+ entity: nil,
22
+ after_cursor: nil)
23
+ @api_call
24
+ .request(new_request_builder(HttpMethodEnum::GET,
25
+ '/api/connections',
26
+ Server::DEFAULT)
27
+ .query_param(new_parameter(per_page, key: 'per_page'))
28
+ .query_param(new_parameter(vendor_customer_id, key: 'vendor_customer_id'))
29
+ .query_param(new_parameter(entity, key: 'entity'))
30
+ .query_param(new_parameter(after_cursor, key: 'after_cursor'))
31
+ .header_param(new_parameter('application/json', key: 'accept'))
32
+ .auth(Single.new('basic_auth')))
33
+ .response(new_response_handler
34
+ .deserializer(APIHelper.method(:custom_type_deserializer))
35
+ .deserialize_into(Connection.method(:from_hash))
36
+ .is_response_array(true))
37
+ .execute
38
+ end
39
+ end
40
+ end