@budibase/server 1.0.49-alpha.4 → 1.0.49-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/__mocks__/arangojs.ts +1 -1
  2. package/__mocks__/aws-sdk.ts +4 -4
  3. package/__mocks__/mongodb.ts +4 -5
  4. package/__mocks__/mssql.ts +3 -3
  5. package/__mocks__/node-fetch.ts +2 -1
  6. package/__mocks__/pg.ts +3 -5
  7. package/builder/assets/{index.f763d886.js → index.94a9250f.js} +1 -1
  8. package/builder/index.html +1 -1
  9. package/coverage/clover.xml +1920 -1940
  10. package/coverage/coverage-final.json +54 -54
  11. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/application.js.html +58 -37
  14. package/coverage/lcov-report/api/controllers/auth.js.html +11 -14
  15. package/coverage/lcov-report/api/controllers/automation.js.html +21 -51
  16. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
  18. package/coverage/lcov-report/api/controllers/component.js.html +10 -13
  19. package/coverage/lcov-report/api/controllers/datasource.js.html +17 -23
  20. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  21. package/coverage/lcov-report/api/controllers/index.html +52 -52
  22. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/layout.js.html +4 -4
  24. package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
  25. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/permission.js.html +6 -6
  27. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  28. package/coverage/lcov-report/api/controllers/query/index.js.html +21 -18
  29. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  31. package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
  32. package/coverage/lcov-report/api/controllers/row/external.js.html +33 -126
  33. package/coverage/lcov-report/api/controllers/row/index.html +28 -28
  34. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/row/internal.js.html +37 -82
  36. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +19 -25
  37. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +14 -17
  38. package/coverage/lcov-report/api/controllers/row/utils.js.html +15 -12
  39. package/coverage/lcov-report/api/controllers/screen.js.html +10 -16
  40. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +20 -50
  42. package/coverage/lcov-report/api/controllers/table/external.js.html +15 -24
  43. package/coverage/lcov-report/api/controllers/table/index.html +37 -37
  44. package/coverage/lcov-report/api/controllers/table/index.js.html +7 -7
  45. package/coverage/lcov-report/api/controllers/table/internal.js.html +36 -45
  46. package/coverage/lcov-report/api/controllers/table/utils.js.html +40 -76
  47. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/user.js.html +26 -35
  49. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  50. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  51. package/coverage/lcov-report/api/controllers/view/index.js.html +15 -21
  52. package/coverage/lcov-report/api/controllers/view/utils.js.html +25 -10
  53. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  54. package/coverage/lcov-report/api/controllers/webhook.js.html +21 -15
  55. package/coverage/lcov-report/api/index.html +1 -1
  56. package/coverage/lcov-report/api/index.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/index.html +1 -1
  69. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  87. package/coverage/lcov-report/automations/actions.js.html +1 -1
  88. package/coverage/lcov-report/automations/automationUtils.js.html +4 -7
  89. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  90. package/coverage/lcov-report/automations/index.html +18 -18
  91. package/coverage/lcov-report/automations/index.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/createRow.js.html +2 -5
  94. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/index.html +1 -1
  101. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  106. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  107. package/coverage/lcov-report/automations/steps/updateRow.js.html +2 -2
  108. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  109. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  114. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  115. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  116. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  117. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  118. package/coverage/lcov-report/automations/triggers.js.html +46 -40
  119. package/coverage/lcov-report/automations/utils.js.html +24 -12
  120. package/coverage/lcov-report/constants/index.html +1 -1
  121. package/coverage/lcov-report/constants/index.js.html +1 -1
  122. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  123. package/coverage/lcov-report/constants/screens.js.html +1 -1
  124. package/coverage/lcov-report/db/client.js.html +18 -18
  125. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  126. package/coverage/lcov-report/db/index.html +1 -1
  127. package/coverage/lcov-report/db/index.js.html +3 -3
  128. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +11 -23
  129. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  130. package/coverage/lcov-report/db/linkedRows/index.js.html +24 -66
  131. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +28 -28
  132. package/coverage/lcov-report/db/newid.js.html +1 -1
  133. package/coverage/lcov-report/db/utils.js.html +5 -5
  134. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  135. package/coverage/lcov-report/events/index.html +1 -1
  136. package/coverage/lcov-report/events/index.js.html +1 -1
  137. package/coverage/lcov-report/events/utils.js.html +1 -1
  138. package/coverage/lcov-report/index.html +88 -88
  139. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  140. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  141. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  142. package/coverage/lcov-report/middleware/authorized.js.html +21 -15
  143. package/coverage/lcov-report/middleware/builder.js.html +3 -3
  144. package/coverage/lcov-report/middleware/currentapp.js.html +72 -60
  145. package/coverage/lcov-report/middleware/index.html +28 -28
  146. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  147. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  148. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  149. package/coverage/lcov-report/middleware/usageQuota.js.html +29 -29
  150. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  151. package/coverage/lcov-report/threads/automation.js.html +30 -24
  152. package/coverage/lcov-report/threads/index.html +16 -16
  153. package/coverage/lcov-report/threads/index.js.html +1 -1
  154. package/coverage/lcov-report/threads/query.js.html +17 -17
  155. package/coverage/lcov-report/threads/utils.js.html +1 -1
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  158. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  159. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  160. package/coverage/lcov-report/utilities/global.js.html +44 -35
  161. package/coverage/lcov-report/utilities/index.html +27 -27
  162. package/coverage/lcov-report/utilities/index.js.html +40 -70
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  164. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  166. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  167. package/coverage/lcov-report/utilities/rowProcessor/index.html +11 -11
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +16 -58
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  171. package/coverage/lcov-report/utilities/security.js.html +1 -1
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  174. package/coverage/lcov-report/utilities/usageQuota/index.js.html +5 -2
  175. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +5 -2
  176. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  177. package/coverage/lcov-report/utilities/users.js.html +5 -5
  178. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  179. package/coverage/lcov.info +3192 -3209
  180. package/dist/api/controllers/application.js +31 -28
  181. package/dist/api/controllers/auth.js +4 -5
  182. package/dist/api/controllers/automation.js +14 -19
  183. package/dist/api/controllers/cloud.js +2 -3
  184. package/dist/api/controllers/component.js +3 -4
  185. package/dist/api/controllers/datasource.js +9 -10
  186. package/dist/api/controllers/deploy/Deployment.js +3 -6
  187. package/dist/api/controllers/deploy/index.js +12 -13
  188. package/dist/api/controllers/dev.js +5 -5
  189. package/dist/api/controllers/layout.js +3 -3
  190. package/dist/api/controllers/metadata.js +4 -4
  191. package/dist/api/controllers/permission.js +4 -4
  192. package/dist/api/controllers/query/import/index.js +4 -6
  193. package/dist/api/controllers/query/index.js +11 -10
  194. package/dist/api/controllers/role.js +5 -5
  195. package/dist/api/controllers/routing.js +5 -6
  196. package/dist/api/controllers/row/ExternalRequest.js +76 -63
  197. package/dist/api/controllers/row/external.js +14 -22
  198. package/dist/api/controllers/row/internal.js +29 -44
  199. package/dist/api/controllers/row/internalSearch.js +11 -13
  200. package/dist/api/controllers/row/staticFormula.js +11 -11
  201. package/dist/api/controllers/row/utils.js +7 -6
  202. package/dist/api/controllers/screen.js +5 -7
  203. package/dist/api/controllers/static/index.js +4 -4
  204. package/dist/api/controllers/table/bulkFormula.js +14 -15
  205. package/dist/api/controllers/table/external.js +7 -10
  206. package/dist/api/controllers/table/index.js +5 -5
  207. package/dist/api/controllers/table/internal.js +16 -19
  208. package/dist/api/controllers/table/utils.js +29 -31
  209. package/dist/api/controllers/user.js +16 -20
  210. package/dist/api/controllers/view/index.js +8 -10
  211. package/dist/api/controllers/view/utils.js +9 -4
  212. package/dist/api/controllers/webhook.js +10 -8
  213. package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
  214. package/dist/automations/automationUtils.js +2 -3
  215. package/dist/automations/steps/createRow.js +1 -1
  216. package/dist/automations/steps/updateRow.js +1 -1
  217. package/dist/automations/triggers.js +27 -25
  218. package/dist/automations/utils.js +10 -5
  219. package/dist/db/linkedRows/LinkController.js +3 -7
  220. package/dist/db/linkedRows/index.js +16 -26
  221. package/dist/db/linkedRows/linkUtils.js +6 -6
  222. package/dist/db/views/staticViews.js +9 -10
  223. package/dist/environment.js +2 -1
  224. package/dist/integrations/utils.js +3 -0
  225. package/dist/middleware/authorized.js +5 -3
  226. package/dist/middleware/builder.js +2 -2
  227. package/dist/middleware/currentapp.js +41 -37
  228. package/dist/middleware/usageQuota.js +2 -2
  229. package/dist/migrations/functions/usageQuotas/syncApps.js +6 -9
  230. package/dist/migrations/functions/usageQuotas/syncRows.js +7 -9
  231. package/dist/package.json +4 -4
  232. package/dist/tests/utilities/TestConfiguration.js +67 -44
  233. package/dist/threads/automation.js +13 -11
  234. package/dist/threads/query.js +11 -11
  235. package/dist/tsconfig.tsbuildinfo +1 -1
  236. package/dist/utilities/fileSystem/index.js +4 -3
  237. package/dist/utilities/global.js +15 -12
  238. package/dist/utilities/index.js +7 -17
  239. package/dist/utilities/routing/index.js +5 -5
  240. package/dist/utilities/rowProcessor/index.js +9 -10
  241. package/dist/utilities/usageQuota/index.js +1 -0
  242. package/dist/utilities/usageQuota/rows.js +1 -0
  243. package/dist/utilities/users.js +3 -3
  244. package/dist/utilities/workerRequests.js +4 -4
  245. package/package.json +5 -5
  246. package/scripts/likeCypress.ts +1 -1
  247. package/src/api/controllers/application.js +35 -28
  248. package/src/api/controllers/auth.js +4 -5
  249. package/src/api/controllers/automation.js +13 -23
  250. package/src/api/controllers/cloud.js +2 -3
  251. package/src/api/controllers/component.js +3 -4
  252. package/src/api/controllers/datasource.js +9 -11
  253. package/src/api/controllers/deploy/Deployment.js +3 -7
  254. package/src/api/controllers/deploy/index.js +20 -13
  255. package/src/api/controllers/dev.js +5 -5
  256. package/src/api/controllers/layout.js +3 -3
  257. package/src/api/controllers/metadata.js +4 -9
  258. package/src/api/controllers/permission.js +4 -4
  259. package/src/api/controllers/query/import/index.ts +4 -6
  260. package/src/api/controllers/query/import/tests/index.spec.js +2 -1
  261. package/src/api/controllers/query/index.js +11 -10
  262. package/src/api/controllers/role.js +5 -5
  263. package/src/api/controllers/routing.js +5 -6
  264. package/src/api/controllers/row/ExternalRequest.ts +53 -42
  265. package/src/api/controllers/row/external.js +27 -58
  266. package/src/api/controllers/row/internal.js +29 -44
  267. package/src/api/controllers/row/internalSearch.js +11 -13
  268. package/src/api/controllers/row/staticFormula.js +10 -11
  269. package/src/api/controllers/row/utils.js +7 -6
  270. package/src/api/controllers/screen.js +5 -7
  271. package/src/api/controllers/static/index.js +4 -4
  272. package/src/api/controllers/table/bulkFormula.js +13 -23
  273. package/src/api/controllers/table/external.js +7 -10
  274. package/src/api/controllers/table/index.js +5 -5
  275. package/src/api/controllers/table/internal.js +18 -21
  276. package/src/api/controllers/table/utils.js +29 -41
  277. package/src/api/controllers/user.js +17 -20
  278. package/src/api/controllers/view/index.js +8 -10
  279. package/src/api/controllers/view/utils.js +9 -4
  280. package/src/api/controllers/webhook.js +10 -8
  281. package/src/api/routes/tests/automation.spec.js +1 -0
  282. package/src/api/routes/tests/misc.spec.js +0 -1
  283. package/src/api/routes/tests/routing.spec.js +21 -12
  284. package/src/api/routes/tests/row.spec.js +7 -4
  285. package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
  286. package/src/automations/automationUtils.js +2 -3
  287. package/src/automations/steps/createRow.js +0 -1
  288. package/src/automations/steps/updateRow.js +1 -1
  289. package/src/automations/triggers.js +33 -31
  290. package/src/automations/utils.js +9 -5
  291. package/src/db/linkedRows/LinkController.js +3 -7
  292. package/src/db/linkedRows/index.js +16 -30
  293. package/src/db/linkedRows/linkUtils.js +6 -6
  294. package/src/db/tests/linkController.spec.js +0 -1
  295. package/src/db/tests/linkTests.spec.js +5 -6
  296. package/src/db/views/staticViews.js +8 -10
  297. package/src/environment.js +2 -1
  298. package/src/integrations/utils.ts +4 -1
  299. package/src/middleware/authorized.js +5 -3
  300. package/src/middleware/builder.js +2 -2
  301. package/src/middleware/currentapp.js +50 -46
  302. package/src/middleware/tests/authorized.spec.js +7 -2
  303. package/src/middleware/tests/currentapp.spec.js +6 -0
  304. package/src/middleware/usageQuota.js +2 -2
  305. package/src/migrations/functions/usageQuotas/syncApps.ts +4 -4
  306. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  307. package/src/module.d.ts +3 -0
  308. package/src/tests/utilities/TestConfiguration.js +69 -50
  309. package/src/threads/automation.js +17 -15
  310. package/src/threads/query.js +12 -12
  311. package/src/utilities/fileSystem/index.js +4 -3
  312. package/src/utilities/global.js +15 -12
  313. package/src/utilities/index.js +7 -17
  314. package/src/utilities/routing/index.js +5 -5
  315. package/src/utilities/rowProcessor/index.js +9 -23
  316. package/src/utilities/usageQuota/index.js +1 -0
  317. package/src/utilities/usageQuota/rows.js +1 -0
  318. package/src/utilities/users.js +3 -3
  319. package/src/utilities/workerRequests.js +4 -4
  320. package/tsconfig.json +2 -1
@@ -190,7 +190,7 @@ exports.generateQueryPreviewValidation = () => {
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
193
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
193
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  </div>
196
196
  <script src="../../../prettify.js"></script>
@@ -155,8 +155,7 @@
155
155
  <a name='L96'></a><a href='#L96'>96</a>
156
156
  <a name='L97'></a><a href='#L97'>97</a>
157
157
  <a name='L98'></a><a href='#L98'>98</a>
158
- <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
160
159
  <span class="cline-any cline-neutral">&nbsp;</span>
161
160
  <span class="cline-any cline-neutral">&nbsp;</span>
162
161
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -167,6 +166,7 @@
167
166
  <span class="cline-any cline-neutral">&nbsp;</span>
168
167
  <span class="cline-any cline-neutral">&nbsp;</span>
169
168
  <span class="cline-any cline-yes">38x</span>
169
+ <span class="cline-any cline-yes">38x</span>
170
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
171
  <span class="cline-any cline-yes">38x</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -253,8 +253,7 @@
253
253
  <span class="cline-any cline-yes">1x</span>
254
254
  <span class="cline-any cline-yes">1x</span>
255
255
  <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
257
- const {
256
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
258
257
  Role,
259
258
  getRole,
260
259
  isBuiltin,
@@ -265,6 +264,7 @@ const {
265
264
  getUserMetadataParams,
266
265
  InternalTables,
267
266
  } = require("../../db/utils")
267
+ const { getAppDB } = require("@budibase/backend-core/context")
268
268
  &nbsp;
269
269
  const UpdateRolesOptions = {
270
270
  CREATED: "created",
@@ -295,15 +295,15 @@ async function updateRolesOnUserTable(db, roleId, updateOption) {
295
295
  }
296
296
  &nbsp;
297
297
  exports.fetch = async function (ctx) {
298
- ctx.body = await getAllRoles(ctx.appId)
298
+ ctx.body = await getAllRoles()
299
299
  }
300
300
  &nbsp;
301
301
  exports.find = async function (ctx) {
302
- ctx.body = await getRole(ctx.appId, ctx.params.roleId)
302
+ ctx.body = await getRole(ctx.params.roleId)
303
303
  }
304
304
  &nbsp;
305
305
  exports.save = async function (ctx) {
306
- const db = new CouchDB(ctx.appId)
306
+ const db = getAppDB()
307
307
  let { _id, name, inherits, permissionId } = ctx.request.body
308
308
  if (!_id) {
309
309
  _id = generateRoleID()
@@ -324,7 +324,7 @@ exports.save = async function (ctx) {
324
324
  }
325
325
  &nbsp;
326
326
  exports.destroy = async function (ctx) {
327
- const db = new CouchDB(ctx.appId)
327
+ const db = getAppDB()
328
328
  const roleId = ctx.params.roleId
329
329
  <span class="missing-if-branch" title="if path not taken" >I</span>if (isBuiltin(roleId)) {
330
330
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot delete builtin role.")</span>
@@ -358,7 +358,7 @@ exports.destroy = async function (ctx) {
358
358
  <div class='footer quiet pad2 space-top1 center small'>
359
359
  Code coverage generated by
360
360
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
361
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
361
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
362
362
  </div>
363
363
  </div>
364
364
  <script src="../../prettify.js"></script>
@@ -149,8 +149,7 @@
149
149
  <a name='L90'></a><a href='#L90'>90</a>
150
150
  <a name='L91'></a><a href='#L91'>91</a>
151
151
  <a name='L92'></a><a href='#L92'>92</a>
152
- <a name='L93'></a><a href='#L93'>93</a>
153
- <a name='L94'></a><a href='#L94'>94</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
152
+ <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
154
153
  <span class="cline-any cline-neutral">&nbsp;</span>
155
154
  <span class="cline-any cline-neutral">&nbsp;</span>
156
155
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -195,7 +194,6 @@
195
194
  <span class="cline-any cline-neutral">&nbsp;</span>
196
195
  <span class="cline-any cline-neutral">&nbsp;</span>
197
196
  <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-neutral">&nbsp;</span>
199
197
  <span class="cline-any cline-yes">3x</span>
200
198
  <span class="cline-any cline-yes">3x</span>
201
199
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -284,12 +282,11 @@ Routing.prototype.addScreenId = function (fullpath, roleId, screenId) {
284
282
  &nbsp;
285
283
  /**
286
284
  * Gets the full routing structure by querying the routing view and processing the result into the tree.
287
- * @param {string} appId The application to produce the routing structure for.
288
285
  * @returns {Promise&lt;object&gt;} The routing structure, this is the full structure designed for use in the builder,
289
286
  * if the client routing is required then the updateRoutingStructureForUserRole should be used.
290
287
  */
291
- async function getRoutingStructure(appId) {
292
- const screenRoutes = await getRoutingInfo(appId)
288
+ async function getRoutingStructure() {
289
+ const screenRoutes = await getRoutingInfo()
293
290
  const routing = new Routing()
294
291
  &nbsp;
295
292
  for (let screenRoute of screenRoutes) {
@@ -302,13 +299,13 @@ async function getRoutingStructure(appId) {
302
299
  }
303
300
  &nbsp;
304
301
  exports.fetch = async ctx =&gt; {
305
- ctx.body = await getRoutingStructure(ctx.appId)
302
+ ctx.body = await getRoutingStructure()
306
303
  }
307
304
  &nbsp;
308
305
  exports.clientFetch = async ctx =&gt; {
309
- const routing = await getRoutingStructure(ctx.appId)
306
+ const routing = await getRoutingStructure()
310
307
  let roleId = ctx.user.role._id
311
- const roleIds = await getUserRoleHierarchy(ctx.appId, roleId)
308
+ const roleIds = await getUserRoleHierarchy(roleId)
312
309
  for (let topLevel of Object.values(routing.routes)) {
313
310
  for (let subpathKey of Object.keys(topLevel.subpaths)) {
314
311
  let found = false
@@ -343,7 +340,7 @@ exports.clientFetch = async ctx =&gt; {
343
340
  <div class='footer quiet pad2 space-top1 center small'>
344
341
  Code coverage generated by
345
342
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
346
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
343
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
347
344
  </div>
348
345
  </div>
349
346
  <script src="../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">14.85% </span>
26
+ <span class="strong">16.12% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>15/101</span>
28
+ <span class='fraction'>15/93</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">15.15% </span>
47
+ <span class="strong">16.48% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>15/99</span>
49
+ <span class='fraction'>15/91</span>
50
50
  </div>
51
51
 
52
52
 
@@ -257,38 +257,7 @@
257
257
  <a name='L198'></a><a href='#L198'>198</a>
258
258
  <a name='L199'></a><a href='#L199'>199</a>
259
259
  <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a>
261
- <a name='L202'></a><a href='#L202'>202</a>
262
- <a name='L203'></a><a href='#L203'>203</a>
263
- <a name='L204'></a><a href='#L204'>204</a>
264
- <a name='L205'></a><a href='#L205'>205</a>
265
- <a name='L206'></a><a href='#L206'>206</a>
266
- <a name='L207'></a><a href='#L207'>207</a>
267
- <a name='L208'></a><a href='#L208'>208</a>
268
- <a name='L209'></a><a href='#L209'>209</a>
269
- <a name='L210'></a><a href='#L210'>210</a>
270
- <a name='L211'></a><a href='#L211'>211</a>
271
- <a name='L212'></a><a href='#L212'>212</a>
272
- <a name='L213'></a><a href='#L213'>213</a>
273
- <a name='L214'></a><a href='#L214'>214</a>
274
- <a name='L215'></a><a href='#L215'>215</a>
275
- <a name='L216'></a><a href='#L216'>216</a>
276
- <a name='L217'></a><a href='#L217'>217</a>
277
- <a name='L218'></a><a href='#L218'>218</a>
278
- <a name='L219'></a><a href='#L219'>219</a>
279
- <a name='L220'></a><a href='#L220'>220</a>
280
- <a name='L221'></a><a href='#L221'>221</a>
281
- <a name='L222'></a><a href='#L222'>222</a>
282
- <a name='L223'></a><a href='#L223'>223</a>
283
- <a name='L224'></a><a href='#L224'>224</a>
284
- <a name='L225'></a><a href='#L225'>225</a>
285
- <a name='L226'></a><a href='#L226'>226</a>
286
- <a name='L227'></a><a href='#L227'>227</a>
287
- <a name='L228'></a><a href='#L228'>228</a>
288
- <a name='L229'></a><a href='#L229'>229</a>
289
- <a name='L230'></a><a href='#L230'>230</a>
290
- <a name='L231'></a><a href='#L231'>231</a>
291
- <a name='L232'></a><a href='#L232'>232</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
260
+ <a name='L201'></a><a href='#L201'>201</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
292
261
  <span class="cline-any cline-neutral">&nbsp;</span>
293
262
  <span class="cline-any cline-neutral">&nbsp;</span>
294
263
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -318,15 +287,12 @@
318
287
  <span class="cline-any cline-no">&nbsp;</span>
319
288
  <span class="cline-any cline-neutral">&nbsp;</span>
320
289
  <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
290
  <span class="cline-any cline-yes">39x</span>
324
291
  <span class="cline-any cline-neutral">&nbsp;</span>
325
292
  <span class="cline-any cline-yes">39x</span>
326
293
  <span class="cline-any cline-no">&nbsp;</span>
327
294
  <span class="cline-any cline-no">&nbsp;</span>
328
295
  <span class="cline-any cline-no">&nbsp;</span>
329
- <span class="cline-any cline-no">&nbsp;</span>
330
296
  <span class="cline-any cline-neutral">&nbsp;</span>
331
297
  <span class="cline-any cline-no">&nbsp;</span>
332
298
  <span class="cline-any cline-no">&nbsp;</span>
@@ -339,7 +305,6 @@
339
305
  <span class="cline-any cline-no">&nbsp;</span>
340
306
  <span class="cline-any cline-no">&nbsp;</span>
341
307
  <span class="cline-any cline-no">&nbsp;</span>
342
- <span class="cline-any cline-no">&nbsp;</span>
343
308
  <span class="cline-any cline-neutral">&nbsp;</span>
344
309
  <span class="cline-any cline-neutral">&nbsp;</span>
345
310
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -355,19 +320,12 @@
355
320
  <span class="cline-any cline-yes">39x</span>
356
321
  <span class="cline-any cline-no">&nbsp;</span>
357
322
  <span class="cline-any cline-no">&nbsp;</span>
358
- <span class="cline-any cline-no">&nbsp;</span>
359
323
  <span class="cline-any cline-neutral">&nbsp;</span>
360
324
  <span class="cline-any cline-neutral">&nbsp;</span>
361
325
  <span class="cline-any cline-yes">39x</span>
362
326
  <span class="cline-any cline-no">&nbsp;</span>
363
327
  <span class="cline-any cline-no">&nbsp;</span>
364
328
  <span class="cline-any cline-no">&nbsp;</span>
365
- <span class="cline-any cline-no">&nbsp;</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
329
  <span class="cline-any cline-neutral">&nbsp;</span>
372
330
  <span class="cline-any cline-neutral">&nbsp;</span>
373
331
  <span class="cline-any cline-no">&nbsp;</span>
@@ -377,12 +335,6 @@
377
335
  <span class="cline-any cline-no">&nbsp;</span>
378
336
  <span class="cline-any cline-no">&nbsp;</span>
379
337
  <span class="cline-any cline-no">&nbsp;</span>
380
- <span class="cline-any cline-no">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
338
  <span class="cline-any cline-neutral">&nbsp;</span>
387
339
  <span class="cline-any cline-neutral">&nbsp;</span>
388
340
  <span class="cline-any cline-no">&nbsp;</span>
@@ -394,7 +346,6 @@
394
346
  <span class="cline-any cline-no">&nbsp;</span>
395
347
  <span class="cline-any cline-no">&nbsp;</span>
396
348
  <span class="cline-any cline-no">&nbsp;</span>
397
- <span class="cline-any cline-no">&nbsp;</span>
398
349
  <span class="cline-any cline-neutral">&nbsp;</span>
399
350
  <span class="cline-any cline-neutral">&nbsp;</span>
400
351
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -410,7 +361,6 @@
410
361
  <span class="cline-any cline-no">&nbsp;</span>
411
362
  <span class="cline-any cline-no">&nbsp;</span>
412
363
  <span class="cline-any cline-no">&nbsp;</span>
413
- <span class="cline-any cline-no">&nbsp;</span>
414
364
  <span class="cline-any cline-neutral">&nbsp;</span>
415
365
  <span class="cline-any cline-no">&nbsp;</span>
416
366
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -450,11 +400,6 @@
450
400
  <span class="cline-any cline-neutral">&nbsp;</span>
451
401
  <span class="cline-any cline-neutral">&nbsp;</span>
452
402
  <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
403
  <span class="cline-any cline-no">&nbsp;</span>
459
404
  <span class="cline-any cline-neutral">&nbsp;</span>
460
405
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -474,18 +419,12 @@
474
419
  <span class="cline-any cline-no">&nbsp;</span>
475
420
  <span class="cline-any cline-no">&nbsp;</span>
476
421
  <span class="cline-any cline-no">&nbsp;</span>
477
- <span class="cline-any cline-no">&nbsp;</span>
478
422
  <span class="cline-any cline-neutral">&nbsp;</span>
479
423
  <span class="cline-any cline-no">&nbsp;</span>
480
424
  <span class="cline-any cline-no">&nbsp;</span>
481
425
  <span class="cline-any cline-neutral">&nbsp;</span>
482
426
  <span class="cline-any cline-neutral">&nbsp;</span>
483
427
  <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
428
  <span class="cline-any cline-no">&nbsp;</span>
490
429
  <span class="cline-any cline-no">&nbsp;</span>
491
430
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -516,7 +455,6 @@
516
455
  <span class="cline-any cline-neutral">&nbsp;</span>
517
456
  <span class="cline-any cline-neutral">&nbsp;</span>
518
457
  <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
458
  <span class="cline-any cline-no">&nbsp;</span>
521
459
  <span class="cline-any cline-neutral">&nbsp;</span>
522
460
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
@@ -530,9 +468,9 @@ const {
530
468
  breakRowIdField,
531
469
  } = require("../../../integrations/utils")
532
470
  const ExternalRequest = require("./ExternalRequest")
533
- const CouchDB = require("../../../db")
471
+ const { getAppDB } = require("@budibase/backend-core/context")
534
472
  &nbsp;
535
- async function <span class="fstat-no" title="function not covered" >handleRequest(</span>appId, operation, tableId, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
473
+ async function <span class="fstat-no" title="function not covered" >handleRequest(</span>operation, tableId, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
536
474
  // make sure the filters are cleaned up, no empty strings for equals, fuzzy or string
537
475
  <span class="cstat-no" title="statement not covered" > if (opts &amp;&amp; opts.filters) {</span>
538
476
  <span class="cstat-no" title="statement not covered" > for (let filterField of NoEmptyFilterStrings) {</span>
@@ -546,31 +484,27 @@ async function <span class="fstat-no" title="function not covered" >handleReques
546
484
  }
547
485
  }
548
486
  }
549
- <span class="cstat-no" title="statement not covered" > return new ExternalRequest(appId, operation, tableId, opts.datasource).run(</span>
550
- opts
551
- )
487
+ <span class="cstat-no" title="statement not covered" > return new ExternalRequest(operation, tableId, opts.datasource).run(opts)</span>
552
488
  }
553
489
  &nbsp;
554
490
  exports.handleRequest = handleRequest
555
491
  &nbsp;
556
492
  exports.patch = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
557
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
558
493
  const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
559
494
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
560
495
  const id = <span class="cstat-no" title="statement not covered" >breakRowIdField(inputs._id)</span>
561
496
  // don't save the ID to db
562
497
  <span class="cstat-no" title="statement not covered" > delete inputs._id</span>
563
- <span class="cstat-no" title="statement not covered" > return handleRequest(appId, DataSourceOperation.UPDATE, tableId, {</span>
498
+ <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.UPDATE, tableId, {</span>
564
499
  id,
565
500
  row: inputs,
566
501
  })
567
502
  }
568
503
  &nbsp;
569
504
  exports.save = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
570
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
571
505
  const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
572
506
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
573
- <span class="cstat-no" title="statement not covered" > return handleRequest(appId, DataSourceOperation.CREATE, tableId, {</span>
507
+ <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.CREATE, tableId, {</span>
574
508
  row: inputs,
575
509
  })
576
510
  }
@@ -584,49 +518,35 @@ exports.fetchView = <span class="fstat-no" title="function not covered" >as</spa
584
518
  }
585
519
  &nbsp;
586
520
  exports.fetch = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
587
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
588
521
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
589
- <span class="cstat-no" title="statement not covered" > return handleRequest(appId, DataSourceOperation.READ, tableId)</span>
522
+ <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.READ, tableId)</span>
590
523
  }
591
524
  &nbsp;
592
525
  exports.find = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
593
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
594
526
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
595
527
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
596
- const response = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
597
- appId,
598
- DataSourceOperation.READ,
599
- tableId,
600
- {
601
- id,
602
- }
603
- )
528
+ const response = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
529
+ id,
530
+ })
604
531
  <span class="cstat-no" title="statement not covered" > return response ? response[0] : response</span>
605
532
  }
606
533
  &nbsp;
607
534
  exports.destroy = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
608
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
609
535
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
610
536
  const id = <span class="cstat-no" title="statement not covered" >ctx.request.body._id</span>
611
- const { row } = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
612
- appId,
613
- DataSourceOperation.DELETE,
614
- tableId,
615
- {
616
- id,
617
- }
618
- )
537
+ const { row } = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.DELETE, tableId, {</span>
538
+ id,
539
+ })
619
540
  <span class="cstat-no" title="statement not covered" > return { response: { ok: true }, row }</span>
620
541
  }
621
542
  &nbsp;
622
543
  exports.bulkDestroy = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
623
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
624
544
  const { rows } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
625
545
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
626
546
  let promises = <span class="cstat-no" title="statement not covered" >[]</span>
627
547
  <span class="cstat-no" title="statement not covered" > for (let row of rows) {</span>
628
548
  <span class="cstat-no" title="statement not covered" > promises.push(</span>
629
- handleRequest(appId, DataSourceOperation.DELETE, tableId, {
549
+ handleRequest(DataSourceOperation.DELETE, tableId, {
630
550
  id: breakRowIdField(row._id),
631
551
  })
632
552
  )
@@ -636,7 +556,6 @@ exports.bulkDestroy = <span class="fstat-no" title="function not covered" >as</s
636
556
  }
637
557
  &nbsp;
638
558
  exports.search = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
639
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
640
559
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
641
560
  const { paginate, query, ...params } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
642
561
  let { bookmark, limit } = <span class="cstat-no" title="statement not covered" >params</span>
@@ -666,26 +585,21 @@ exports.search = <span class="fstat-no" title="function not covered" >as</span>y
666
585
  [params.sort]: direction,
667
586
  }
668
587
  }
669
- const rows = <span class="cstat-no" title="statement not covered" >await handleRequest(appId, DataSourceOperation.READ, tableId, {</span>
588
+ const rows = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
670
589
  filters: query,
671
590
  sort,
672
591
  paginate: paginateObj,
673
592
  })
674
593
  let hasNextPage = <span class="cstat-no" title="statement not covered" >false</span>
675
594
  <span class="cstat-no" title="statement not covered" > if (paginate &amp;&amp; rows.length === limit) {</span>
676
- const nextRows = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
677
- appId,
678
- DataSourceOperation.READ,
679
- tableId,
680
- {
681
- filters: query,
682
- sort,
683
- paginate: {
684
- limit: 1,
685
- page: bookmark * limit + 1,
686
- },
687
- }
688
- )
595
+ const nextRows = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
596
+ filters: query,
597
+ sort,
598
+ paginate: {
599
+ limit: 1,
600
+ page: bookmark * limit + 1,
601
+ },
602
+ })
689
603
  <span class="cstat-no" title="statement not covered" > hasNextPage = nextRows.length &gt; 0</span>
690
604
  }
691
605
  // need wrapper object for bookmarks etc when paginating
@@ -698,25 +612,19 @@ exports.validate = <span class="fstat-no" title="function not covered" >as</span
698
612
  }
699
613
  &nbsp;
700
614
  exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
701
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
702
615
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
703
616
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
704
617
  const { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(tableId)</span>
705
- const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
618
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
706
619
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
707
620
  <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
708
621
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
709
622
  }
710
623
  const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
711
- const response = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
712
- appId,
713
- DataSourceOperation.READ,
714
- tableId,
715
- {
716
- id,
717
- datasource,
718
- }
719
- )
624
+ const response = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
625
+ id,
626
+ datasource,
627
+ })
720
628
  const table = <span class="cstat-no" title="statement not covered" >tables[tableName]</span>
721
629
  const row = <span class="cstat-no" title="statement not covered" >response[0]</span>
722
630
  // this seems like a lot of work, but basically we need to dig deeper for the enrich
@@ -735,7 +643,6 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
735
643
  // don't support composite keys right now
736
644
  const linkedIds = <span class="cstat-no" title="statement not covered" >links.map(<span class="fstat-no" title="function not covered" >li</span>nk =&gt; <span class="cstat-no" title="statement not covered" >breakRowIdField(link._id)[0])</span></span>
737
645
  <span class="cstat-no" title="statement not covered" > row[fieldName] = await handleRequest(</span>
738
- appId,
739
646
  DataSourceOperation.READ,
740
647
  linkedTableId,
741
648
  {
@@ -757,7 +664,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
757
664
  <div class='footer quiet pad2 space-top1 center small'>
758
665
  Code coverage generated by
759
666
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
760
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
667
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
761
668
  </div>
762
669
  </div>
763
670
  <script src="../../../prettify.js"></script>