@budibase/server 1.0.49-alpha.2 → 1.0.49-alpha.6
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.
- package/__mocks__/arangojs.ts +1 -1
- package/__mocks__/aws-sdk.ts +4 -4
- package/__mocks__/mongodb.ts +4 -5
- package/__mocks__/mssql.ts +3 -3
- package/__mocks__/node-fetch.ts +2 -1
- package/__mocks__/pg.ts +3 -5
- package/builder/assets/{index.82e12602.js → index.1b905242.js} +1 -1
- package/builder/index.html +1 -1
- package/coverage/clover.xml +1917 -1929
- package/coverage/coverage-final.json +54 -54
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +58 -37
- package/coverage/lcov-report/api/controllers/auth.js.html +11 -14
- package/coverage/lcov-report/api/controllers/automation.js.html +21 -51
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
- package/coverage/lcov-report/api/controllers/component.js.html +10 -13
- package/coverage/lcov-report/api/controllers/datasource.js.html +17 -23
- package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
- package/coverage/lcov-report/api/controllers/index.html +52 -52
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +4 -4
- package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
- package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +6 -6
- package/coverage/lcov-report/api/controllers/query/index.html +10 -10
- package/coverage/lcov-report/api/controllers/query/index.js.html +21 -18
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
- package/coverage/lcov-report/api/controllers/row/external.js.html +6 -12
- package/coverage/lcov-report/api/controllers/row/index.html +22 -22
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +37 -82
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +19 -25
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +14 -17
- package/coverage/lcov-report/api/controllers/row/utils.js.html +15 -12
- package/coverage/lcov-report/api/controllers/screen.js.html +10 -16
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +20 -50
- package/coverage/lcov-report/api/controllers/table/external.js.html +15 -24
- package/coverage/lcov-report/api/controllers/table/index.html +37 -37
- package/coverage/lcov-report/api/controllers/table/index.js.html +7 -7
- package/coverage/lcov-report/api/controllers/table/internal.js.html +36 -45
- package/coverage/lcov-report/api/controllers/table/utils.js.html +40 -76
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +26 -35
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +16 -16
- package/coverage/lcov-report/api/controllers/view/index.js.html +15 -21
- package/coverage/lcov-report/api/controllers/view/utils.js.html +25 -10
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +21 -15
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +4 -7
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +18 -18
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +2 -5
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +2 -2
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +46 -40
- package/coverage/lcov-report/automations/utils.js.html +24 -12
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/client.js.html +18 -18
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +11 -23
- package/coverage/lcov-report/db/linkedRows/index.html +27 -27
- package/coverage/lcov-report/db/linkedRows/index.js.html +24 -66
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +28 -28
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +5 -5
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +88 -88
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +21 -15
- package/coverage/lcov-report/middleware/builder.js.html +3 -3
- package/coverage/lcov-report/middleware/currentapp.js.html +72 -60
- package/coverage/lcov-report/middleware/index.html +28 -28
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +29 -29
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +30 -24
- package/coverage/lcov-report/threads/index.html +16 -16
- package/coverage/lcov-report/threads/index.js.html +1 -1
- package/coverage/lcov-report/threads/query.js.html +17 -17
- package/coverage/lcov-report/threads/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +44 -35
- package/coverage/lcov-report/utilities/index.html +27 -27
- package/coverage/lcov-report/utilities/index.js.html +40 -70
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
- package/coverage/lcov-report/utilities/rowProcessor/index.html +11 -11
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +16 -58
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +5 -2
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +5 -2
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +5 -5
- package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
- package/coverage/lcov.info +3189 -3198
- package/dist/api/controllers/application.js +31 -28
- package/dist/api/controllers/auth.js +4 -5
- package/dist/api/controllers/automation.js +14 -19
- package/dist/api/controllers/cloud.js +2 -3
- package/dist/api/controllers/component.js +3 -4
- package/dist/api/controllers/datasource.js +9 -10
- package/dist/api/controllers/deploy/Deployment.js +3 -6
- package/dist/api/controllers/deploy/index.js +12 -13
- package/dist/api/controllers/dev.js +5 -5
- package/dist/api/controllers/layout.js +3 -3
- package/dist/api/controllers/metadata.js +4 -4
- package/dist/api/controllers/permission.js +4 -4
- package/dist/api/controllers/query/import/index.js +4 -6
- package/dist/api/controllers/query/index.js +11 -10
- package/dist/api/controllers/role.js +5 -5
- package/dist/api/controllers/routing.js +5 -6
- package/dist/api/controllers/row/ExternalRequest.js +76 -63
- package/dist/api/controllers/row/external.js +4 -4
- package/dist/api/controllers/row/internal.js +29 -44
- package/dist/api/controllers/row/internalSearch.js +11 -13
- package/dist/api/controllers/row/staticFormula.js +11 -11
- package/dist/api/controllers/row/utils.js +7 -6
- package/dist/api/controllers/screen.js +5 -7
- package/dist/api/controllers/static/index.js +4 -4
- package/dist/api/controllers/table/bulkFormula.js +14 -15
- package/dist/api/controllers/table/external.js +7 -10
- package/dist/api/controllers/table/index.js +5 -5
- package/dist/api/controllers/table/internal.js +16 -19
- package/dist/api/controllers/table/utils.js +29 -31
- package/dist/api/controllers/user.js +16 -20
- package/dist/api/controllers/view/index.js +8 -10
- package/dist/api/controllers/view/utils.js +9 -4
- package/dist/api/controllers/webhook.js +10 -8
- package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
- package/dist/automations/automationUtils.js +2 -3
- package/dist/automations/steps/createRow.js +1 -1
- package/dist/automations/steps/updateRow.js +1 -1
- package/dist/automations/triggers.js +27 -25
- package/dist/automations/utils.js +10 -5
- package/dist/db/linkedRows/LinkController.js +3 -7
- package/dist/db/linkedRows/index.js +16 -26
- package/dist/db/linkedRows/linkUtils.js +6 -6
- package/dist/db/views/staticViews.js +9 -10
- package/dist/environment.js +2 -1
- package/dist/integrations/utils.js +3 -0
- package/dist/middleware/authorized.js +5 -3
- package/dist/middleware/builder.js +2 -2
- package/dist/middleware/currentapp.js +41 -37
- package/dist/middleware/usageQuota.js +2 -2
- package/dist/migrations/functions/appUrls.js +11 -2
- package/dist/migrations/functions/usageQuotas/syncApps.js +7 -9
- package/dist/migrations/functions/usageQuotas/syncRows.js +7 -9
- package/dist/package.json +4 -4
- package/dist/tests/utilities/TestConfiguration.js +67 -44
- package/dist/threads/automation.js +13 -11
- package/dist/threads/query.js +11 -11
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +4 -3
- package/dist/utilities/global.js +15 -12
- package/dist/utilities/index.js +7 -17
- package/dist/utilities/routing/index.js +5 -5
- package/dist/utilities/rowProcessor/index.js +9 -10
- package/dist/utilities/usageQuota/index.js +1 -0
- package/dist/utilities/usageQuota/rows.js +1 -0
- package/dist/utilities/users.js +3 -3
- package/dist/utilities/workerRequests.js +4 -4
- package/package.json +5 -5
- package/scripts/likeCypress.ts +1 -1
- package/src/api/controllers/application.js +35 -28
- package/src/api/controllers/auth.js +4 -5
- package/src/api/controllers/automation.js +13 -23
- package/src/api/controllers/cloud.js +2 -3
- package/src/api/controllers/component.js +3 -4
- package/src/api/controllers/datasource.js +9 -11
- package/src/api/controllers/deploy/Deployment.js +3 -7
- package/src/api/controllers/deploy/index.js +20 -13
- package/src/api/controllers/dev.js +5 -5
- package/src/api/controllers/layout.js +3 -3
- package/src/api/controllers/metadata.js +4 -9
- package/src/api/controllers/permission.js +4 -4
- package/src/api/controllers/query/import/index.ts +4 -6
- package/src/api/controllers/query/import/tests/index.spec.js +2 -1
- package/src/api/controllers/query/index.js +11 -10
- package/src/api/controllers/role.js +5 -5
- package/src/api/controllers/routing.js +5 -6
- package/src/api/controllers/row/ExternalRequest.ts +53 -42
- package/src/api/controllers/row/external.js +4 -6
- package/src/api/controllers/row/internal.js +29 -44
- package/src/api/controllers/row/internalSearch.js +11 -13
- package/src/api/controllers/row/staticFormula.js +10 -11
- package/src/api/controllers/row/utils.js +7 -6
- package/src/api/controllers/screen.js +5 -7
- package/src/api/controllers/static/index.js +4 -4
- package/src/api/controllers/table/bulkFormula.js +13 -23
- package/src/api/controllers/table/external.js +7 -10
- package/src/api/controllers/table/index.js +5 -5
- package/src/api/controllers/table/internal.js +18 -21
- package/src/api/controllers/table/utils.js +29 -41
- package/src/api/controllers/user.js +17 -20
- package/src/api/controllers/view/index.js +8 -10
- package/src/api/controllers/view/utils.js +9 -4
- package/src/api/controllers/webhook.js +10 -8
- package/src/api/routes/tests/automation.spec.js +1 -0
- package/src/api/routes/tests/misc.spec.js +0 -1
- package/src/api/routes/tests/routing.spec.js +21 -12
- package/src/api/routes/tests/row.spec.js +7 -4
- package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
- package/src/automations/automationUtils.js +2 -3
- package/src/automations/steps/createRow.js +0 -1
- package/src/automations/steps/updateRow.js +1 -1
- package/src/automations/triggers.js +33 -31
- package/src/automations/utils.js +9 -5
- package/src/db/linkedRows/LinkController.js +3 -7
- package/src/db/linkedRows/index.js +16 -30
- package/src/db/linkedRows/linkUtils.js +6 -6
- package/src/db/tests/linkController.spec.js +0 -1
- package/src/db/tests/linkTests.spec.js +5 -6
- package/src/db/views/staticViews.js +8 -10
- package/src/environment.js +2 -1
- package/src/integrations/utils.ts +4 -1
- package/src/middleware/authorized.js +5 -3
- package/src/middleware/builder.js +2 -2
- package/src/middleware/currentapp.js +50 -46
- package/src/middleware/tests/authorized.spec.js +7 -2
- package/src/middleware/tests/currentapp.spec.js +6 -0
- package/src/middleware/usageQuota.js +2 -2
- package/src/migrations/functions/appUrls.ts +11 -2
- package/src/migrations/functions/usageQuotas/syncApps.ts +5 -4
- package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
- package/src/tests/utilities/TestConfiguration.js +69 -50
- package/src/threads/automation.js +17 -15
- package/src/threads/query.js +12 -12
- package/src/utilities/fileSystem/index.js +4 -3
- package/src/utilities/global.js +15 -12
- package/src/utilities/index.js +7 -17
- package/src/utilities/routing/index.js +5 -5
- package/src/utilities/rowProcessor/index.js +9 -23
- package/src/utilities/usageQuota/index.js +1 -0
- package/src/utilities/usageQuota/rows.js +1 -0
- package/src/utilities/users.js +3 -3
- package/src/utilities/workerRequests.js +4 -4
|
@@ -213,9 +213,7 @@
|
|
|
213
213
|
<a name='L154'></a><a href='#L154'>154</a>
|
|
214
214
|
<a name='L155'></a><a href='#L155'>155</a>
|
|
215
215
|
<a name='L156'></a><a href='#L156'>156</a>
|
|
216
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
217
|
-
<a name='L158'></a><a href='#L158'>158</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
218
|
-
<span class="cline-any cline-yes">39x</span>
|
|
216
|
+
<a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
219
217
|
<span class="cline-any cline-neutral"> </span>
|
|
220
218
|
<span class="cline-any cline-neutral"> </span>
|
|
221
219
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -224,6 +222,7 @@
|
|
|
224
222
|
<span class="cline-any cline-yes">39x</span>
|
|
225
223
|
<span class="cline-any cline-yes">39x</span>
|
|
226
224
|
<span class="cline-any cline-yes">39x</span>
|
|
225
|
+
<span class="cline-any cline-yes">39x</span>
|
|
227
226
|
<span class="cline-any cline-neutral"> </span>
|
|
228
227
|
<span class="cline-any cline-neutral"> </span>
|
|
229
228
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -329,7 +328,6 @@
|
|
|
329
328
|
<span class="cline-any cline-neutral"> </span>
|
|
330
329
|
<span class="cline-any cline-neutral"> </span>
|
|
331
330
|
<span class="cline-any cline-neutral"> </span>
|
|
332
|
-
<span class="cline-any cline-neutral"> </span>
|
|
333
331
|
<span class="cline-any cline-yes">73x</span>
|
|
334
332
|
<span class="cline-any cline-yes">73x</span>
|
|
335
333
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -371,8 +369,7 @@
|
|
|
371
369
|
<span class="cline-any cline-neutral"> </span>
|
|
372
370
|
<span class="cline-any cline-yes">73x</span>
|
|
373
371
|
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
375
|
-
const { getRowParams } = require("../../../db/utils")
|
|
372
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { getRowParams } = require("../../../db/utils")
|
|
376
373
|
const {
|
|
377
374
|
outputProcessing,
|
|
378
375
|
processAutoColumn,
|
|
@@ -381,6 +378,7 @@ const {
|
|
|
381
378
|
const { FieldTypes, FormulaTypes } = require("../../../constants")
|
|
382
379
|
const { isEqual } = require("lodash")
|
|
383
380
|
const { cloneDeep } = require("lodash/fp")
|
|
381
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
384
382
|
|
|
385
383
|
/**
|
|
386
384
|
* This function runs through a list of enriched rows, looks at the rows which
|
|
@@ -388,8 +386,8 @@ const { cloneDeep } = require("lodash/fp")
|
|
|
388
386
|
* updated.
|
|
389
387
|
* NOTE: this will only for affect static formulas.
|
|
390
388
|
*/
|
|
391
|
-
exports.updateRelatedFormula = async (
|
|
392
|
-
const db =
|
|
389
|
+
exports.updateRelatedFormula = async (table, enrichedRows) => {
|
|
390
|
+
const db = getAppDB()
|
|
393
391
|
// no formula to update, we're done
|
|
394
392
|
if (!table.relatedFormula) {
|
|
395
393
|
return
|
|
@@ -430,7 +428,7 @@ exports.updateRelatedFormula = async (appId, table, enrichedRows) => {
|
|
|
430
428
|
// re-enrich rows for all the related, don't update the related formula for them
|
|
431
429
|
<span class="cstat-no" title="statement not covered" > promises = promises.concat(</span>
|
|
432
430
|
relatedRows[tableId].map(<span class="fstat-no" title="function not covered" >re</span>lated =>
|
|
433
|
-
<span class="cstat-no" title="statement not covered" > exports.finaliseRow(
|
|
431
|
+
<span class="cstat-no" title="statement not covered" > exports.finaliseRow(relatedTable, related, {</span>
|
|
434
432
|
updateFormula: false,
|
|
435
433
|
})
|
|
436
434
|
)
|
|
@@ -442,8 +440,8 @@ exports.updateRelatedFormula = async (appId, table, enrichedRows) => {
|
|
|
442
440
|
<span class="cstat-no" title="statement not covered" > await Promise.all(promises)</span>
|
|
443
441
|
}
|
|
444
442
|
|
|
445
|
-
exports.updateAllFormulasInTable = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
446
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
443
|
+
exports.updateAllFormulasInTable = <span class="fstat-no" title="function not covered" >as</span>ync table => {
|
|
444
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
447
445
|
// start by getting the raw rows (which will be written back to DB after update)
|
|
448
446
|
let rows = <span class="cstat-no" title="statement not covered" >(</span>
|
|
449
447
|
await db.allDocs(
|
|
@@ -454,7 +452,7 @@ exports.updateAllFormulasInTable = <span class="fstat-no" title="function not co
|
|
|
454
452
|
).rows.map(<span class="fstat-no" title="function not covered" >ro</span>w => <span class="cstat-no" title="statement not covered" >row.doc)</span>
|
|
455
453
|
// now enrich the rows, note the clone so that we have the base state of the
|
|
456
454
|
// rows so that we don't write any of the enriched information back
|
|
457
|
-
let enrichedRows = <span class="cstat-no" title="statement not covered" >await outputProcessing(
|
|
455
|
+
let enrichedRows = <span class="cstat-no" title="statement not covered" >await outputProcessing(table, cloneDeep(rows), {</span>
|
|
458
456
|
squash: false,
|
|
459
457
|
})
|
|
460
458
|
const updatedRows = <span class="cstat-no" title="statement not covered" >[]</span>
|
|
@@ -482,15 +480,14 @@ exports.updateAllFormulasInTable = <span class="fstat-no" title="function not co
|
|
|
482
480
|
* expects the row to be totally enriched/contain all relationships.
|
|
483
481
|
*/
|
|
484
482
|
exports.finaliseRow = async (
|
|
485
|
-
appId,
|
|
486
483
|
table,
|
|
487
484
|
row,
|
|
488
485
|
{ oldTable, updateFormula } = <span class="branch-0 cbranch-no" title="branch not covered" >{ updateFormula: true }</span>
|
|
489
486
|
) => {
|
|
490
|
-
const db =
|
|
487
|
+
const db = getAppDB()
|
|
491
488
|
row.type = "row"
|
|
492
489
|
// process the row before return, to include relationships
|
|
493
|
-
let enrichedRow = await outputProcessing(
|
|
490
|
+
let enrichedRow = await outputProcessing(table, cloneDeep(row), {
|
|
494
491
|
squash: false,
|
|
495
492
|
})
|
|
496
493
|
// use enriched row to generate formulas for saving, specifically only use as context
|
|
@@ -524,7 +521,7 @@ exports.finaliseRow = async (
|
|
|
524
521
|
enrichedRow = await processFormulas(table, enrichedRow, { dynamic: false })
|
|
525
522
|
// this updates the related formulas in other rows based on the relations to this row
|
|
526
523
|
if (updateFormula) {
|
|
527
|
-
await exports.updateRelatedFormula(
|
|
524
|
+
await exports.updateRelatedFormula(table, enrichedRow)
|
|
528
525
|
}
|
|
529
526
|
return { row: enrichedRow, table }
|
|
530
527
|
}
|
|
@@ -535,7 +532,7 @@ exports.finaliseRow = async (
|
|
|
535
532
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
536
533
|
Code coverage generated by
|
|
537
534
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
538
|
-
at
|
|
535
|
+
at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
|
|
539
536
|
</div>
|
|
540
537
|
</div>
|
|
541
538
|
<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">69.
|
|
26
|
+
<span class="strong">69.81% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>37/53</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">
|
|
47
|
+
<span class="strong">69.23% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>36/52</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -147,7 +147,8 @@
|
|
|
147
147
|
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
148
|
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
149
|
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
-
<a name='L91'></a><a href='#L91'>91</a
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
151
152
|
<span class="cline-any cline-yes">39x</span>
|
|
152
153
|
<span class="cline-any cline-yes">39x</span>
|
|
153
154
|
<span class="cline-any cline-yes">39x</span>
|
|
@@ -174,6 +175,7 @@
|
|
|
174
175
|
<span class="cline-any cline-neutral"> </span>
|
|
175
176
|
<span class="cline-any cline-neutral"> </span>
|
|
176
177
|
<span class="cline-any cline-yes">39x</span>
|
|
178
|
+
<span class="cline-any cline-yes">19x</span>
|
|
177
179
|
<span class="cline-any cline-neutral"> </span>
|
|
178
180
|
<span class="cline-any cline-neutral"> </span>
|
|
179
181
|
<span class="cline-any cline-yes">19x</span>
|
|
@@ -239,12 +241,12 @@
|
|
|
239
241
|
<span class="cline-any cline-neutral"> </span>
|
|
240
242
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const validateJs = require("validate.js")
|
|
241
243
|
const { cloneDeep } = require("lodash/fp")
|
|
242
|
-
const CouchDB = require("../../../db")
|
|
243
244
|
const { InternalTables } = require("../../../db/utils")
|
|
244
245
|
const userController = require("../user")
|
|
245
246
|
const { FieldTypes } = require("../../../constants")
|
|
246
247
|
const { processStringSync } = require("@budibase/string-templates")
|
|
247
248
|
const { makeExternalQuery } = require("../../../integrations/base/utils")
|
|
249
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
248
250
|
|
|
249
251
|
validateJs.extend(validateJs.validators.datetime, {
|
|
250
252
|
parse: function (value) {
|
|
@@ -256,14 +258,15 @@ validateJs.extend(validateJs.validators.datetime, {
|
|
|
256
258
|
},
|
|
257
259
|
})
|
|
258
260
|
|
|
259
|
-
exports.getDatasourceAndQuery = async
|
|
261
|
+
exports.getDatasourceAndQuery = async json => {
|
|
260
262
|
const datasourceId = json.endpoint.datasourceId
|
|
261
|
-
const db =
|
|
263
|
+
const db = getAppDB()
|
|
262
264
|
const datasource = await db.get(datasourceId)
|
|
263
265
|
return makeExternalQuery(datasource, json)
|
|
264
266
|
}
|
|
265
267
|
|
|
266
|
-
exports.findRow = async (ctx,
|
|
268
|
+
exports.findRow = async (ctx, tableId, rowId) => {
|
|
269
|
+
const db = getAppDB()
|
|
267
270
|
let row
|
|
268
271
|
// TODO remove special user case in future
|
|
269
272
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
|
|
@@ -281,9 +284,9 @@ exports.findRow = async (ctx, db, tableId, rowId) => {
|
|
|
281
284
|
return row
|
|
282
285
|
}
|
|
283
286
|
|
|
284
|
-
exports.validate = async ({
|
|
287
|
+
exports.validate = async ({ tableId, row, table }) => {
|
|
285
288
|
if (!table) {
|
|
286
|
-
const db =
|
|
289
|
+
const db = getAppDB()
|
|
287
290
|
table = await db.get(tableId)
|
|
288
291
|
}
|
|
289
292
|
const errors = {}
|
|
@@ -334,7 +337,7 @@ exports.validate = async ({ appId, tableId, row, table }) => {
|
|
|
334
337
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
335
338
|
Code coverage generated by
|
|
336
339
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
337
|
-
at
|
|
340
|
+
at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
|
|
338
341
|
</div>
|
|
339
342
|
</div>
|
|
340
343
|
<script src="../../../prettify.js"></script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>21/21</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>21/21</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -103,15 +103,12 @@
|
|
|
103
103
|
<a name='L44'></a><a href='#L44'>44</a>
|
|
104
104
|
<a name='L45'></a><a href='#L45'>45</a>
|
|
105
105
|
<a name='L46'></a><a href='#L46'>46</a>
|
|
106
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
107
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
108
|
-
<a name='L49'></a><a href='#L49'>49</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
|
|
106
|
+
<a name='L47'></a><a href='#L47'>47</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
|
|
109
107
|
<span class="cline-any cline-yes">38x</span>
|
|
110
108
|
<span class="cline-any cline-yes">38x</span>
|
|
111
109
|
<span class="cline-any cline-neutral"> </span>
|
|
112
110
|
<span class="cline-any cline-yes">38x</span>
|
|
113
111
|
<span class="cline-any cline-yes">1x</span>
|
|
114
|
-
<span class="cline-any cline-yes">1x</span>
|
|
115
112
|
<span class="cline-any cline-neutral"> </span>
|
|
116
113
|
<span class="cline-any cline-yes">1x</span>
|
|
117
114
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -130,7 +127,6 @@
|
|
|
130
127
|
<span class="cline-any cline-yes">38x</span>
|
|
131
128
|
<span class="cline-any cline-yes">19x</span>
|
|
132
129
|
<span class="cline-any cline-yes">19x</span>
|
|
133
|
-
<span class="cline-any cline-yes">19x</span>
|
|
134
130
|
<span class="cline-any cline-neutral"> </span>
|
|
135
131
|
<span class="cline-any cline-yes">19x</span>
|
|
136
132
|
<span class="cline-any cline-yes">19x</span>
|
|
@@ -153,13 +149,12 @@
|
|
|
153
149
|
<span class="cline-any cline-neutral"> </span>
|
|
154
150
|
<span class="cline-any cline-yes">1x</span>
|
|
155
151
|
<span class="cline-any cline-neutral"> </span>
|
|
156
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
157
|
-
const { getScreenParams, generateScreenID } = require("../../db/utils")
|
|
152
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { getScreenParams, generateScreenID } = require("../../db/utils")
|
|
158
153
|
const { AccessController } = require("@budibase/backend-core/roles")
|
|
154
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
159
155
|
|
|
160
156
|
exports.fetch = async ctx => {
|
|
161
|
-
const
|
|
162
|
-
const db = new CouchDB(appId)
|
|
157
|
+
const db = getAppDB()
|
|
163
158
|
|
|
164
159
|
const screens = (
|
|
165
160
|
await db.allDocs(
|
|
@@ -169,15 +164,14 @@ exports.fetch = async ctx => {
|
|
|
169
164
|
)
|
|
170
165
|
).rows.map(element => element.doc)
|
|
171
166
|
|
|
172
|
-
ctx.body = await new AccessController(
|
|
167
|
+
ctx.body = await new AccessController().checkScreensAccess(
|
|
173
168
|
screens,
|
|
174
169
|
ctx.user.role._id
|
|
175
170
|
)
|
|
176
171
|
}
|
|
177
172
|
|
|
178
173
|
exports.save = async ctx => {
|
|
179
|
-
const
|
|
180
|
-
const db = new CouchDB(appId)
|
|
174
|
+
const db = getAppDB()
|
|
181
175
|
let screen = ctx.request.body
|
|
182
176
|
|
|
183
177
|
if (!screen._id) {
|
|
@@ -194,7 +188,7 @@ exports.save = async ctx => {
|
|
|
194
188
|
}
|
|
195
189
|
|
|
196
190
|
exports.destroy = async ctx => {
|
|
197
|
-
const db =
|
|
191
|
+
const db = getAppDB()
|
|
198
192
|
await db.remove(ctx.params.screenId, ctx.params.screenRev)
|
|
199
193
|
ctx.body = {
|
|
200
194
|
message: "Screen deleted successfully",
|
|
@@ -208,7 +202,7 @@ exports.destroy = async ctx => {
|
|
|
208
202
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
209
203
|
Code coverage generated by
|
|
210
204
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
211
|
-
at
|
|
205
|
+
at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
|
|
212
206
|
</div>
|
|
213
207
|
</div>
|
|
214
208
|
<script src="../../prettify.js"></script>
|
|
@@ -97,7 +97,7 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
|
97
97
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
98
98
|
Code coverage generated by
|
|
99
99
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
100
|
-
at
|
|
100
|
+
at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
|
|
101
101
|
</div>
|
|
102
102
|
</div>
|
|
103
103
|
<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">69.
|
|
26
|
+
<span class="strong">69.23% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>54/78</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">69.
|
|
47
|
+
<span class="strong">69.33% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>52/75</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -230,17 +230,7 @@
|
|
|
230
230
|
<a name='L171'></a><a href='#L171'>171</a>
|
|
231
231
|
<a name='L172'></a><a href='#L172'>172</a>
|
|
232
232
|
<a name='L173'></a><a href='#L173'>173</a>
|
|
233
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
234
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
235
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
236
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
237
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
238
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
239
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
240
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
241
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
242
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
243
|
-
<a name='L184'></a><a href='#L184'>184</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
233
|
+
<a name='L174'></a><a href='#L174'>174</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
244
234
|
<span class="cline-any cline-yes">39x</span>
|
|
245
235
|
<span class="cline-any cline-yes">39x</span>
|
|
246
236
|
<span class="cline-any cline-yes">39x</span>
|
|
@@ -281,11 +271,6 @@
|
|
|
281
271
|
<span class="cline-any cline-neutral"> </span>
|
|
282
272
|
<span class="cline-any cline-neutral"> </span>
|
|
283
273
|
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-yes">103x</span>
|
|
288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
289
274
|
<span class="cline-any cline-yes">103x</span>
|
|
290
275
|
<span class="cline-any cline-yes">236x</span>
|
|
291
276
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -344,7 +329,6 @@
|
|
|
344
329
|
<span class="cline-any cline-neutral"> </span>
|
|
345
330
|
<span class="cline-any cline-neutral"> </span>
|
|
346
331
|
<span class="cline-any cline-neutral"> </span>
|
|
347
|
-
<span class="cline-any cline-neutral"> </span>
|
|
348
332
|
<span class="cline-any cline-yes">103x</span>
|
|
349
333
|
<span class="cline-any cline-neutral"> </span>
|
|
350
334
|
<span class="cline-any cline-yes">103x</span>
|
|
@@ -413,23 +397,19 @@
|
|
|
413
397
|
<span class="cline-any cline-neutral"> </span>
|
|
414
398
|
<span class="cline-any cline-neutral"> </span>
|
|
415
399
|
<span class="cline-any cline-yes">39x</span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
420
400
|
<span class="cline-any cline-yes">103x</span>
|
|
421
401
|
<span class="cline-any cline-yes">103x</span>
|
|
422
402
|
<span class="cline-any cline-yes">103x</span>
|
|
423
403
|
<span class="cline-any cline-yes">101x</span>
|
|
424
404
|
<span class="cline-any cline-neutral"> </span>
|
|
425
405
|
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
427
|
-
const { FieldTypes, FormulaTypes } = require("../../../constants")
|
|
406
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { FieldTypes, FormulaTypes } = require("../../../constants")
|
|
428
407
|
const { getAllInternalTables, clearColumns } = require("./utils")
|
|
429
408
|
const { doesContainStrings } = require("@budibase/string-templates")
|
|
430
409
|
const { cloneDeep } = require("lodash/fp")
|
|
431
410
|
const { isEqual, uniq } = require("lodash")
|
|
432
411
|
const { updateAllFormulasInTable } = require("../row/staticFormula")
|
|
412
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
433
413
|
|
|
434
414
|
function isStaticFormula(column) {
|
|
435
415
|
return (
|
|
@@ -462,14 +442,9 @@ function getFormulaThatUseColumn(table, columnNames) {
|
|
|
462
442
|
* This functions checks for when a related table, column or related column is deleted, if any
|
|
463
443
|
* tables need to have the formula column removed.
|
|
464
444
|
*/
|
|
465
|
-
async function checkIfFormulaNeedsCleared(
|
|
466
|
-
appId,
|
|
467
|
-
table,
|
|
468
|
-
{ oldTable, deletion }
|
|
469
|
-
) {
|
|
470
|
-
const db = new CouchDB(appId)
|
|
445
|
+
async function checkIfFormulaNeedsCleared(table, { oldTable, deletion }) {
|
|
471
446
|
// start by retrieving all tables, remove the current table from the list
|
|
472
|
-
const tables = (await getAllInternalTables(
|
|
447
|
+
const tables = (await getAllInternalTables()).filter(
|
|
473
448
|
tbl => tbl._id !== table._id
|
|
474
449
|
)
|
|
475
450
|
const schemaToUse = oldTable ? oldTable.schema : table.schema
|
|
@@ -485,7 +460,7 @@ async function checkIfFormulaNeedsCleared(
|
|
|
485
460
|
}
|
|
486
461
|
const columnsToDelete = getFormulaThatUseColumn(tableToUse, removed.name)
|
|
487
462
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (columnsToDelete.length > 0) {
|
|
488
|
-
<span class="cstat-no" title="statement not covered" > await clearColumns(
|
|
463
|
+
<span class="cstat-no" title="statement not covered" > await clearColumns(table, columnsToDelete)</span>
|
|
489
464
|
}
|
|
490
465
|
// need a special case, where a column has been removed from this table, but was used
|
|
491
466
|
// in a different, related tables formula
|
|
@@ -510,7 +485,7 @@ async function checkIfFormulaNeedsCleared(
|
|
|
510
485
|
)
|
|
511
486
|
}
|
|
512
487
|
<span class="cstat-no" title="statement not covered" > if (relatedFormulaToRemove.length > 0) {</span>
|
|
513
|
-
<span class="cstat-no" title="statement not covered" > await clearColumns(
|
|
488
|
+
<span class="cstat-no" title="statement not covered" > await clearColumns(relatedTable, uniq(relatedFormulaToRemove))</span>
|
|
514
489
|
}
|
|
515
490
|
}
|
|
516
491
|
}
|
|
@@ -524,13 +499,12 @@ async function checkIfFormulaNeedsCleared(
|
|
|
524
499
|
* specifically only for static formula.
|
|
525
500
|
*/
|
|
526
501
|
async function updateRelatedFormulaLinksOnTables(
|
|
527
|
-
appId,
|
|
528
502
|
table,
|
|
529
503
|
{ deletion } = <span class="branch-0 cbranch-no" title="branch not covered" >{ deletion: false }</span>
|
|
530
504
|
) {
|
|
531
|
-
const db =
|
|
505
|
+
const db = getAppDB()
|
|
532
506
|
// start by retrieving all tables, remove the current table from the list
|
|
533
|
-
const tables = (await getAllInternalTables(
|
|
507
|
+
const tables = (await getAllInternalTables()).filter(
|
|
534
508
|
tbl => tbl._id !== table._id
|
|
535
509
|
)
|
|
536
510
|
// clone the tables, so we can compare at end
|
|
@@ -580,7 +554,7 @@ async function updateRelatedFormulaLinksOnTables(
|
|
|
580
554
|
}
|
|
581
555
|
}
|
|
582
556
|
|
|
583
|
-
async function checkIfFormulaUpdated(
|
|
557
|
+
async function checkIfFormulaUpdated(table, { oldTable }) {
|
|
584
558
|
// look to see if any formula values have changed
|
|
585
559
|
const shouldUpdate = Object.values(table.schema).find(
|
|
586
560
|
column =>
|
|
@@ -591,19 +565,15 @@ async function checkIfFormulaUpdated(appId, table, { oldTable }) {
|
|
|
591
565
|
)
|
|
592
566
|
// if a static formula column has updated, then need to run the update
|
|
593
567
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (shouldUpdate != null) {
|
|
594
|
-
<span class="cstat-no" title="statement not covered" > await updateAllFormulasInTable(
|
|
568
|
+
<span class="cstat-no" title="statement not covered" > await updateAllFormulasInTable(table)</span>
|
|
595
569
|
}
|
|
596
570
|
}
|
|
597
571
|
|
|
598
|
-
exports.runStaticFormulaChecks = async (
|
|
599
|
-
|
|
600
|
-
table,
|
|
601
|
-
{ oldTable, deletion }
|
|
602
|
-
) => {
|
|
603
|
-
await updateRelatedFormulaLinksOnTables(appId, table, { deletion })
|
|
604
|
-
await checkIfFormulaNeedsCleared(appId, table, { oldTable, deletion })
|
|
572
|
+
exports.runStaticFormulaChecks = async (table, { oldTable, deletion }) => {
|
|
573
|
+
await updateRelatedFormulaLinksOnTables(table, { deletion })
|
|
574
|
+
await checkIfFormulaNeedsCleared(table, { oldTable, deletion })
|
|
605
575
|
if (!deletion) {
|
|
606
|
-
await checkIfFormulaUpdated(
|
|
576
|
+
await checkIfFormulaUpdated(table, { oldTable })
|
|
607
577
|
}
|
|
608
578
|
}
|
|
609
579
|
</pre></td></tr></table></pre>
|
|
@@ -613,7 +583,7 @@ exports.runStaticFormulaChecks = async (
|
|
|
613
583
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
614
584
|
Code coverage generated by
|
|
615
585
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
616
|
-
at
|
|
586
|
+
at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
|
|
617
587
|
</div>
|
|
618
588
|
</div>
|
|
619
589
|
<script src="../../../prettify.js"></script>
|