@budibase/server 1.0.49-alpha.3 → 1.0.49-alpha.7
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.21e57eb4.js → index.b7cd931c.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/usageQuotas/syncApps.js +6 -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/usageQuotas/syncApps.ts +4 -4
- package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
- package/src/module.d.ts +3 -0
- 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
- package/tsconfig.json +2 -1
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">8.
|
|
26
|
+
<span class="strong">8.2% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>11/
|
|
28
|
+
<span class='fraction'>11/134</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">8.
|
|
47
|
+
<span class="strong">8.2% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>11/
|
|
49
|
+
<span class='fraction'>11/134</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -361,11 +361,7 @@
|
|
|
361
361
|
<a name='L302'></a><a href='#L302'>302</a>
|
|
362
362
|
<a name='L303'></a><a href='#L303'>303</a>
|
|
363
363
|
<a name='L304'></a><a href='#L304'>304</a>
|
|
364
|
-
<a name='L305'></a><a href='#L305'>305</a>
|
|
365
|
-
<a name='L306'></a><a href='#L306'>306</a>
|
|
366
|
-
<a name='L307'></a><a href='#L307'>307</a>
|
|
367
|
-
<a name='L308'></a><a href='#L308'>308</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
368
|
-
<span class="cline-any cline-neutral"> </span>
|
|
364
|
+
<a name='L305'></a><a href='#L305'>305</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
369
365
|
<span class="cline-any cline-neutral"> </span>
|
|
370
366
|
<span class="cline-any cline-neutral"> </span>
|
|
371
367
|
<span class="cline-any cline-yes">39x</span>
|
|
@@ -385,6 +381,7 @@
|
|
|
385
381
|
<span class="cline-any cline-yes">39x</span>
|
|
386
382
|
<span class="cline-any cline-yes">39x</span>
|
|
387
383
|
<span class="cline-any cline-yes">39x</span>
|
|
384
|
+
<span class="cline-any cline-yes">39x</span>
|
|
388
385
|
<span class="cline-any cline-neutral"> </span>
|
|
389
386
|
<span class="cline-any cline-neutral"> </span>
|
|
390
387
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -526,7 +523,6 @@
|
|
|
526
523
|
<span class="cline-any cline-neutral"> </span>
|
|
527
524
|
<span class="cline-any cline-yes">39x</span>
|
|
528
525
|
<span class="cline-any cline-no"> </span>
|
|
529
|
-
<span class="cline-any cline-no"> </span>
|
|
530
526
|
<span class="cline-any cline-neutral"> </span>
|
|
531
527
|
<span class="cline-any cline-no"> </span>
|
|
532
528
|
<span class="cline-any cline-no"> </span>
|
|
@@ -636,7 +632,6 @@
|
|
|
636
632
|
<span class="cline-any cline-no"> </span>
|
|
637
633
|
<span class="cline-any cline-no"> </span>
|
|
638
634
|
<span class="cline-any cline-no"> </span>
|
|
639
|
-
<span class="cline-any cline-no"> </span>
|
|
640
635
|
<span class="cline-any cline-neutral"> </span>
|
|
641
636
|
<span class="cline-any cline-no"> </span>
|
|
642
637
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -660,7 +655,6 @@
|
|
|
660
655
|
<span class="cline-any cline-no"> </span>
|
|
661
656
|
<span class="cline-any cline-no"> </span>
|
|
662
657
|
<span class="cline-any cline-no"> </span>
|
|
663
|
-
<span class="cline-any cline-no"> </span>
|
|
664
658
|
<span class="cline-any cline-neutral"> </span>
|
|
665
659
|
<span class="cline-any cline-no"> </span>
|
|
666
660
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -671,8 +665,7 @@
|
|
|
671
665
|
<span class="cline-any cline-neutral"> </span>
|
|
672
666
|
<span class="cline-any cline-no"> </span>
|
|
673
667
|
<span class="cline-any cline-neutral"> </span>
|
|
674
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
675
|
-
const {
|
|
668
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
676
669
|
buildExternalTableId,
|
|
677
670
|
breakExternalTableId,
|
|
678
671
|
} = require("../../../integrations/utils")
|
|
@@ -692,6 +685,7 @@ const { makeExternalQuery } = require("../../../integrations/base/utils")
|
|
|
692
685
|
const { cloneDeep } = require("lodash/fp")
|
|
693
686
|
const csvParser = require("../../../utilities/csvParser")
|
|
694
687
|
const { handleRequest } = require("../row/external")
|
|
688
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
695
689
|
|
|
696
690
|
async function <span class="fstat-no" title="function not covered" >makeTableRequest(</span>
|
|
697
691
|
datasource,
|
|
@@ -832,7 +826,6 @@ function <span class="fstat-no" title="function not covered" >isRelationshipSetu
|
|
|
832
826
|
}
|
|
833
827
|
|
|
834
828
|
exports.save = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
835
|
-
const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
|
|
836
829
|
const table = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
|
|
837
830
|
// can't do this right now
|
|
838
831
|
<span class="cstat-no" title="statement not covered" > delete table.dataImport</span>
|
|
@@ -849,14 +842,14 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
|
849
842
|
|
|
850
843
|
let oldTable
|
|
851
844
|
<span class="cstat-no" title="statement not covered" > if (ctx.request.body && ctx.request.body._id) {</span>
|
|
852
|
-
<span class="cstat-no" title="statement not covered" > oldTable = await getTable(
|
|
845
|
+
<span class="cstat-no" title="statement not covered" > oldTable = await getTable(ctx.request.body._id)</span>
|
|
853
846
|
}
|
|
854
847
|
|
|
855
848
|
<span class="cstat-no" title="statement not covered" > if (hasTypeChanged(tableToSave, oldTable)) {</span>
|
|
856
849
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "A column type has changed.")</span>
|
|
857
850
|
}
|
|
858
851
|
|
|
859
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
852
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
860
853
|
const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
|
|
861
854
|
const oldTables = <span class="cstat-no" title="statement not covered" >cloneDeep(datasource.entities)</span>
|
|
862
855
|
const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
|
|
@@ -940,14 +933,13 @@ exports.save = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
|
940
933
|
}
|
|
941
934
|
|
|
942
935
|
exports.destroy = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
943
|
-
const
|
|
944
|
-
const tableToDelete = <span class="cstat-no" title="statement not covered" >await getTable(appId, ctx.params.tableId)</span>
|
|
936
|
+
const tableToDelete = <span class="cstat-no" title="statement not covered" >await getTable(ctx.params.tableId)</span>
|
|
945
937
|
<span class="cstat-no" title="statement not covered" > if (!tableToDelete || !tableToDelete.created) {</span>
|
|
946
938
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot delete tables which weren't created in Budibase.")</span>
|
|
947
939
|
}
|
|
948
940
|
const datasourceId = <span class="cstat-no" title="statement not covered" >getDatasourceId(tableToDelete)</span>
|
|
949
941
|
|
|
950
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
942
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
951
943
|
const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
|
|
952
944
|
const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
|
|
953
945
|
|
|
@@ -963,8 +955,7 @@ exports.destroy = <span class="fstat-no" title="function not covered" >as</span>
|
|
|
963
955
|
}
|
|
964
956
|
|
|
965
957
|
exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
966
|
-
const
|
|
967
|
-
const table = <span class="cstat-no" title="statement not covered" >await getTable(appId, ctx.params.tableId)</span>
|
|
958
|
+
const table = <span class="cstat-no" title="statement not covered" >await getTable(ctx.params.tableId)</span>
|
|
968
959
|
const { dataImport } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
|
|
969
960
|
<span class="cstat-no" title="statement not covered" > if (!dataImport || !dataImport.schema || !dataImport.csvString) {</span>
|
|
970
961
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Provided data import information is invalid.")</span>
|
|
@@ -973,7 +964,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
|
|
|
973
964
|
...dataImport,
|
|
974
965
|
existingTable: table,
|
|
975
966
|
})
|
|
976
|
-
<span class="cstat-no" title="statement not covered" > await handleRequest(
|
|
967
|
+
<span class="cstat-no" title="statement not covered" > await handleRequest(DataSourceOperation.BULK_CREATE, table._id, {</span>
|
|
977
968
|
rows,
|
|
978
969
|
})
|
|
979
970
|
<span class="cstat-no" title="statement not covered" > return table</span>
|
|
@@ -985,7 +976,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
|
|
|
985
976
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
986
977
|
Code coverage generated by
|
|
987
978
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
988
|
-
at
|
|
979
|
+
at Tue Feb 01 2022 20:38:35 GMT+0000 (Coordinated Universal Time)
|
|
989
980
|
</div>
|
|
990
981
|
</div>
|
|
991
982
|
<script src="../../../prettify.js"></script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">53.
|
|
26
|
+
<span class="strong">53.32% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>289/542</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">36.
|
|
33
|
+
<span class="strong">36.04% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>102/283</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">52.56% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>41/78</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">53.68% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>284/529</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -74,32 +74,32 @@
|
|
|
74
74
|
</thead>
|
|
75
75
|
<tbody><tr>
|
|
76
76
|
<td class="file medium" data-value="bulkFormula.js"><a href="bulkFormula.js.html">bulkFormula.js</a></td>
|
|
77
|
-
<td data-value="69.
|
|
77
|
+
<td data-value="69.23" class="pic medium">
|
|
78
78
|
<div class="chart"><div class="cover-fill" style="width: 69%"></div><div class="cover-empty" style="width: 31%"></div></div>
|
|
79
79
|
</td>
|
|
80
|
-
<td data-value="69.
|
|
81
|
-
<td data-value="
|
|
80
|
+
<td data-value="69.23" class="pct medium">69.23%</td>
|
|
81
|
+
<td data-value="78" class="abs medium">54/78</td>
|
|
82
82
|
<td data-value="43.63" class="pct low">43.63%</td>
|
|
83
83
|
<td data-value="55" class="abs low">24/55</td>
|
|
84
84
|
<td data-value="81.25" class="pct high">81.25%</td>
|
|
85
85
|
<td data-value="16" class="abs high">13/16</td>
|
|
86
|
-
<td data-value="69.
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="69.33" class="pct medium">69.33%</td>
|
|
87
|
+
<td data-value="75" class="abs medium">52/75</td>
|
|
88
88
|
</tr>
|
|
89
89
|
|
|
90
90
|
<tr>
|
|
91
91
|
<td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
|
|
92
|
-
<td data-value="8.
|
|
92
|
+
<td data-value="8.2" class="pic low">
|
|
93
93
|
<div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
|
|
94
94
|
</td>
|
|
95
|
-
<td data-value="8.
|
|
96
|
-
<td data-value="
|
|
95
|
+
<td data-value="8.2" class="pct low">8.2%</td>
|
|
96
|
+
<td data-value="134" class="abs low">11/134</td>
|
|
97
97
|
<td data-value="0" class="pct low">0%</td>
|
|
98
98
|
<td data-value="76" class="abs low">0/76</td>
|
|
99
99
|
<td data-value="0" class="pct low">0%</td>
|
|
100
100
|
<td data-value="14" class="abs low">0/14</td>
|
|
101
|
-
<td data-value="8.
|
|
102
|
-
<td data-value="
|
|
101
|
+
<td data-value="8.2" class="pct low">8.2%</td>
|
|
102
|
+
<td data-value="134" class="abs low">11/134</td>
|
|
103
103
|
</tr>
|
|
104
104
|
|
|
105
105
|
<tr>
|
|
@@ -119,32 +119,32 @@
|
|
|
119
119
|
|
|
120
120
|
<tr>
|
|
121
121
|
<td class="file medium" data-value="internal.js"><a href="internal.js.html">internal.js</a></td>
|
|
122
|
-
<td data-value="
|
|
123
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
122
|
+
<td data-value="72.46" class="pic medium">
|
|
123
|
+
<div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
|
|
124
124
|
</td>
|
|
125
|
-
<td data-value="
|
|
126
|
-
<td data-value="
|
|
127
|
-
<td data-value="
|
|
128
|
-
<td data-value="
|
|
129
|
-
<td data-value="
|
|
130
|
-
<td data-value="5" class="abs
|
|
131
|
-
<td data-value="
|
|
132
|
-
<td data-value="
|
|
125
|
+
<td data-value="72.46" class="pct medium">72.46%</td>
|
|
126
|
+
<td data-value="69" class="abs medium">50/69</td>
|
|
127
|
+
<td data-value="67.64" class="pct medium">67.64%</td>
|
|
128
|
+
<td data-value="34" class="abs medium">23/34</td>
|
|
129
|
+
<td data-value="40" class="pct low">40%</td>
|
|
130
|
+
<td data-value="5" class="abs low">2/5</td>
|
|
131
|
+
<td data-value="75.75" class="pct medium">75.75%</td>
|
|
132
|
+
<td data-value="66" class="abs medium">50/66</td>
|
|
133
133
|
</tr>
|
|
134
134
|
|
|
135
135
|
<tr>
|
|
136
136
|
<td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
|
|
137
|
-
<td data-value="
|
|
138
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
137
|
+
<td data-value="63.9" class="pic medium">
|
|
138
|
+
<div class="chart"><div class="cover-fill" style="width: 63%"></div><div class="cover-empty" style="width: 37%"></div></div>
|
|
139
139
|
</td>
|
|
140
|
-
<td data-value="
|
|
141
|
-
<td data-value="
|
|
142
|
-
<td data-value="
|
|
143
|
-
<td data-value="
|
|
140
|
+
<td data-value="63.9" class="pct medium">63.9%</td>
|
|
141
|
+
<td data-value="205" class="abs medium">131/205</td>
|
|
142
|
+
<td data-value="40" class="pct low">40%</td>
|
|
143
|
+
<td data-value="95" class="abs low">38/95</td>
|
|
144
144
|
<td data-value="58.82" class="pct medium">58.82%</td>
|
|
145
145
|
<td data-value="34" class="abs medium">20/34</td>
|
|
146
|
-
<td data-value="64.
|
|
147
|
-
<td data-value="
|
|
146
|
+
<td data-value="64.32" class="pct medium">64.32%</td>
|
|
147
|
+
<td data-value="199" class="abs medium">128/199</td>
|
|
148
148
|
</tr>
|
|
149
149
|
|
|
150
150
|
</tbody>
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
156
156
|
Code coverage generated by
|
|
157
157
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
158
|
-
at
|
|
158
|
+
at Tue Feb 01 2022 20:38:35 GMT+0000 (Coordinated Universal Time)
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
|
161
161
|
<script src="../../../prettify.js"></script>
|
|
@@ -253,12 +253,12 @@
|
|
|
253
253
|
<span class="cline-any cline-neutral"> </span>
|
|
254
254
|
<span class="cline-any cline-yes">1x</span>
|
|
255
255
|
<span class="cline-any cline-neutral"> </span>
|
|
256
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
257
|
-
const internal = require("./internal")
|
|
256
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const internal = require("./internal")
|
|
258
257
|
const external = require("./external")
|
|
259
258
|
const csvParser = require("../../../utilities/csvParser")
|
|
260
259
|
const { isExternalTable, isSQL } = require("../../../integrations/utils")
|
|
261
260
|
const { getDatasourceParams } = require("../../../db/utils")
|
|
261
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
262
262
|
const { getTable, getAllInternalTables } = require("./utils")
|
|
263
263
|
|
|
264
264
|
function pickApi({ tableId, table }) {
|
|
@@ -275,9 +275,9 @@ function pickApi({ tableId, table }) {
|
|
|
275
275
|
|
|
276
276
|
// covers both internal and external
|
|
277
277
|
exports.fetch = async function (ctx) {
|
|
278
|
-
const db =
|
|
278
|
+
const db = getAppDB()
|
|
279
279
|
|
|
280
|
-
const internal = await getAllInternalTables(
|
|
280
|
+
const internal = await getAllInternalTables()
|
|
281
281
|
|
|
282
282
|
const externalTables = await db.allDocs(
|
|
283
283
|
getDatasourceParams("plus", {
|
|
@@ -304,7 +304,7 @@ exports.fetch = async function (ctx) {
|
|
|
304
304
|
|
|
305
305
|
exports.find = async function (ctx) {
|
|
306
306
|
const tableId = ctx.params.id
|
|
307
|
-
ctx.body = await getTable(
|
|
307
|
+
ctx.body = await getTable(tableId)
|
|
308
308
|
}
|
|
309
309
|
|
|
310
310
|
exports.save = async function (ctx) {
|
|
@@ -343,7 +343,7 @@ exports.validateCSVSchema = async function (ctx) {
|
|
|
343
343
|
const { csvString, schema = {}, tableId } = ctx.request.body
|
|
344
344
|
let existingTable
|
|
345
345
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (tableId) {
|
|
346
|
-
<span class="cstat-no" title="statement not covered" > existingTable = await getTable(
|
|
346
|
+
<span class="cstat-no" title="statement not covered" > existingTable = await getTable(tableId)</span>
|
|
347
347
|
}
|
|
348
348
|
let result = await csvParser.parse(csvString, schema)
|
|
349
349
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (existingTable) {
|
|
@@ -358,7 +358,7 @@ exports.validateCSVSchema = 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
|
|
361
|
+
at Tue Feb 01 2022 20:38:35 GMT+0000 (Coordinated Universal Time)
|
|
362
362
|
</div>
|
|
363
363
|
</div>
|
|
364
364
|
<script src="../../../prettify.js"></script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">72.46% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>50/69</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">67.64% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>23/
|
|
35
|
+
<span class='fraction'>23/34</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">40% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>2/5</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">75.75% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>50/66</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -213,11 +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>
|
|
218
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
219
|
-
<a name='L160'></a><a href='#L160'>160</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
|
|
220
|
-
<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>
|
|
221
217
|
<span class="cline-any cline-yes">39x</span>
|
|
222
218
|
<span class="cline-any cline-yes">39x</span>
|
|
223
219
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -229,12 +225,13 @@
|
|
|
229
225
|
<span class="cline-any cline-yes">39x</span>
|
|
230
226
|
<span class="cline-any cline-yes">39x</span>
|
|
231
227
|
<span class="cline-any cline-yes">39x</span>
|
|
228
|
+
<span class="cline-any cline-yes">39x</span>
|
|
229
|
+
<span class="cline-any cline-yes">39x</span>
|
|
232
230
|
<span class="cline-any cline-neutral"> </span>
|
|
233
231
|
<span class="cline-any cline-yes">39x</span>
|
|
234
232
|
<span class="cline-any cline-yes">101x</span>
|
|
235
233
|
<span class="cline-any cline-yes">101x</span>
|
|
236
234
|
<span class="cline-any cline-yes">101x</span>
|
|
237
|
-
<span class="cline-any cline-yes">101x</span>
|
|
238
235
|
<span class="cline-any cline-neutral"> </span>
|
|
239
236
|
<span class="cline-any cline-neutral"> </span>
|
|
240
237
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -258,7 +255,6 @@
|
|
|
258
255
|
<span class="cline-any cline-neutral"> </span>
|
|
259
256
|
<span class="cline-any cline-neutral"> </span>
|
|
260
257
|
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
262
258
|
<span class="cline-any cline-yes">101x</span>
|
|
263
259
|
<span class="cline-any cline-neutral"> </span>
|
|
264
260
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -306,7 +302,6 @@
|
|
|
306
302
|
<span class="cline-any cline-neutral"> </span>
|
|
307
303
|
<span class="cline-any cline-neutral"> </span>
|
|
308
304
|
<span class="cline-any cline-neutral"> </span>
|
|
309
|
-
<span class="cline-any cline-neutral"> </span>
|
|
310
305
|
<span class="cline-any cline-yes">101x</span>
|
|
311
306
|
<span class="cline-any cline-yes">4x</span>
|
|
312
307
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -332,7 +327,6 @@
|
|
|
332
327
|
<span class="cline-any cline-yes">39x</span>
|
|
333
328
|
<span class="cline-any cline-yes">2x</span>
|
|
334
329
|
<span class="cline-any cline-yes">2x</span>
|
|
335
|
-
<span class="cline-any cline-yes">2x</span>
|
|
336
330
|
<span class="cline-any cline-neutral"> </span>
|
|
337
331
|
<span class="cline-any cline-neutral"> </span>
|
|
338
332
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -350,19 +344,20 @@
|
|
|
350
344
|
<span class="cline-any cline-neutral"> </span>
|
|
351
345
|
<span class="cline-any cline-neutral"> </span>
|
|
352
346
|
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
354
347
|
<span class="cline-any cline-yes">2x</span>
|
|
355
348
|
<span class="cline-any cline-neutral"> </span>
|
|
356
349
|
<span class="cline-any cline-neutral"> </span>
|
|
357
350
|
<span class="cline-any cline-yes">2x</span>
|
|
358
|
-
<span class="cline-any cline-
|
|
359
|
-
<span class="cline-any cline-
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
352
|
+
<span class="cline-any cline-no"> </span>
|
|
353
|
+
<span class="cline-any cline-no"> </span>
|
|
360
354
|
<span class="cline-any cline-neutral"> </span>
|
|
361
|
-
<span class="cline-any cline-
|
|
355
|
+
<span class="cline-any cline-no"> </span>
|
|
362
356
|
<span class="cline-any cline-no"> </span>
|
|
363
357
|
<span class="cline-any cline-neutral"> </span>
|
|
364
358
|
<span class="cline-any cline-neutral"> </span>
|
|
365
359
|
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
366
361
|
<span class="cline-any cline-yes">2x</span>
|
|
367
362
|
<span class="cline-any cline-yes">2x</span>
|
|
368
363
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -373,10 +368,8 @@
|
|
|
373
368
|
<span class="cline-any cline-no"> </span>
|
|
374
369
|
<span class="cline-any cline-no"> </span>
|
|
375
370
|
<span class="cline-any cline-no"> </span>
|
|
376
|
-
<span class="cline-any cline-no"> </span>
|
|
377
371
|
<span class="cline-any cline-neutral"> </span>
|
|
378
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
379
|
-
const linkRows = require("../../../db/linkedRows")
|
|
372
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const linkRows = require("../../../db/linkedRows")
|
|
380
373
|
const { getRowParams, generateTableID } = require("../../../db/utils")
|
|
381
374
|
const { FieldTypes } = require("../../../constants")
|
|
382
375
|
const {
|
|
@@ -386,12 +379,13 @@ const {
|
|
|
386
379
|
handleDataImport,
|
|
387
380
|
} = require("./utils")
|
|
388
381
|
const usageQuota = require("../../../utilities/usageQuota")
|
|
382
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
383
|
+
const env = require("../../../environment")
|
|
389
384
|
const { cleanupAttachments } = require("../../../utilities/rowProcessor")
|
|
390
385
|
const { runStaticFormulaChecks } = require("./bulkFormula")
|
|
391
386
|
|
|
392
387
|
exports.save = async function (ctx) {
|
|
393
|
-
const
|
|
394
|
-
const db = new CouchDB(appId)
|
|
388
|
+
const db = getAppDB()
|
|
395
389
|
const { dataImport, ...rest } = ctx.request.body
|
|
396
390
|
let tableToSave = {
|
|
397
391
|
type: "table",
|
|
@@ -413,8 +407,7 @@ exports.save = async function (ctx) {
|
|
|
413
407
|
// saving a table is a complex operation, involving many different steps, this
|
|
414
408
|
// has been broken out into a utility to make it more obvious/easier to manipulate
|
|
415
409
|
const tableSaveFunctions = new TableSaveFunctions({
|
|
416
|
-
|
|
417
|
-
ctx,
|
|
410
|
+
user: ctx.user,
|
|
418
411
|
oldTable,
|
|
419
412
|
dataImport,
|
|
420
413
|
})
|
|
@@ -459,7 +452,6 @@ exports.save = async function (ctx) {
|
|
|
459
452
|
// update linked rows
|
|
460
453
|
try {
|
|
461
454
|
const linkResp = await linkRows.updateLinks({
|
|
462
|
-
appId,
|
|
463
455
|
eventType: oldTable
|
|
464
456
|
? linkRows.EventType.TABLE_UPDATED
|
|
465
457
|
: linkRows.EventType.TABLE_SAVE,
|
|
@@ -484,13 +476,12 @@ exports.save = async function (ctx) {
|
|
|
484
476
|
|
|
485
477
|
tableToSave = await tableSaveFunctions.after(tableToSave)
|
|
486
478
|
// has to run after, make sure it has _id
|
|
487
|
-
await runStaticFormulaChecks(
|
|
479
|
+
await runStaticFormulaChecks(tableToSave, { oldTable })
|
|
488
480
|
return tableToSave
|
|
489
481
|
}
|
|
490
482
|
|
|
491
483
|
exports.destroy = async function (ctx) {
|
|
492
|
-
const
|
|
493
|
-
const db = new CouchDB(appId)
|
|
484
|
+
const db = getAppDB()
|
|
494
485
|
const tableToDelete = await db.get(ctx.params.tableId)
|
|
495
486
|
|
|
496
487
|
// Delete all rows for that table
|
|
@@ -504,7 +495,6 @@ exports.destroy = async function (ctx) {
|
|
|
504
495
|
|
|
505
496
|
// update linked rows
|
|
506
497
|
await linkRows.updateLinks({
|
|
507
|
-
appId,
|
|
508
498
|
eventType: linkRows.EventType.TABLE_DELETE,
|
|
509
499
|
table: tableToDelete,
|
|
510
500
|
})
|
|
@@ -513,25 +503,26 @@ exports.destroy = async function (ctx) {
|
|
|
513
503
|
await db.remove(tableToDelete)
|
|
514
504
|
|
|
515
505
|
// remove table search index
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
<span class="cstat-no" title="statement not covered" >
|
|
506
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isTest()) {
|
|
507
|
+
const currentIndexes = <span class="cstat-no" title="statement not covered" >await db.getIndexes()</span>
|
|
508
|
+
const existingIndex = <span class="cstat-no" title="statement not covered" >currentIndexes.indexes.find(</span>
|
|
509
|
+
<span class="fstat-no" title="function not covered" > ex</span>isting => <span class="cstat-no" title="statement not covered" >existing.name === `search:${ctx.params.tableId}`</span>
|
|
510
|
+
)
|
|
511
|
+
<span class="cstat-no" title="statement not covered" > if (existingIndex) {</span>
|
|
512
|
+
<span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
|
|
513
|
+
}
|
|
522
514
|
}
|
|
523
515
|
|
|
524
516
|
// has to run after, make sure it has _id
|
|
525
|
-
await runStaticFormulaChecks(
|
|
526
|
-
await cleanupAttachments(
|
|
517
|
+
await runStaticFormulaChecks(tableToDelete, { deletion: true })
|
|
518
|
+
await cleanupAttachments(tableToDelete, { rows })
|
|
527
519
|
return tableToDelete
|
|
528
520
|
}
|
|
529
521
|
|
|
530
522
|
exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
531
|
-
const
|
|
532
|
-
const table = <span class="cstat-no" title="statement not covered" >await getTable(appId, ctx.params.tableId)</span>
|
|
523
|
+
const table = <span class="cstat-no" title="statement not covered" >await getTable(ctx.params.tableId)</span>
|
|
533
524
|
const { dataImport } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
|
|
534
|
-
<span class="cstat-no" title="statement not covered" > await handleDataImport(
|
|
525
|
+
<span class="cstat-no" title="statement not covered" > await handleDataImport(ctx.user, table, dataImport)</span>
|
|
535
526
|
<span class="cstat-no" title="statement not covered" > return table</span>
|
|
536
527
|
}
|
|
537
528
|
</pre></td></tr></table></pre>
|
|
@@ -541,7 +532,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
|
|
|
541
532
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
542
533
|
Code coverage generated by
|
|
543
534
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
544
|
-
at
|
|
535
|
+
at Tue Feb 01 2022 20:38:35 GMT+0000 (Coordinated Universal Time)
|
|
545
536
|
</div>
|
|
546
537
|
</div>
|
|
547
538
|
<script src="../../../prettify.js"></script>
|