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