@budibase/server 1.0.33 → 1.0.40
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__/node-fetch.ts +21 -0
- package/builder/assets/bb-spaceship.8f6e81e1.svg +227 -0
- package/builder/assets/{index.4fb3f887.css → index.39e01193.css} +1 -1
- package/builder/assets/index.6f248ef0.js +1348 -0
- package/builder/assets/{vendor.470042a4.js → vendor.f9faf6ab.js} +88 -88
- package/builder/index.html +3 -3
- package/coverage/clover.xml +1591 -1345
- package/coverage/coverage-final.json +75 -74
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +3 -3
- package/coverage/lcov-report/api/controllers/application.js.html +73 -64
- package/coverage/lcov-report/api/controllers/auth.js.html +2 -2
- package/coverage/lcov-report/api/controllers/automation.js.html +22 -10
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +13 -4
- package/coverage/lcov-report/api/controllers/component.js.html +4 -4
- package/coverage/lcov-report/api/controllers/datasource.js.html +170 -68
- package/coverage/lcov-report/api/controllers/dev.js.html +3 -3
- package/coverage/lcov-report/api/controllers/hosting.js.html +3 -3
- package/coverage/lcov-report/api/controllers/index.html +39 -54
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
- package/coverage/lcov-report/api/controllers/query/index.html +126 -0
- package/coverage/lcov-report/api/controllers/{query.js.html → query/index.js.html} +228 -114
- package/coverage/lcov-report/api/controllers/query/validation.js.html +206 -0
- package/coverage/lcov-report/api/controllers/role.js.html +2 -2
- package/coverage/lcov-report/api/controllers/routing.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- 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 +38 -11
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +8 -5
- package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -20
- package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +120 -12
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +19 -7
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +6 -6
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +2 -2
- package/coverage/lcov-report/api/routes/application.js.html +2 -2
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +2 -2
- package/coverage/lcov-report/api/routes/backup.js.html +2 -2
- package/coverage/lcov-report/api/routes/cloud.js.html +2 -2
- package/coverage/lcov-report/api/routes/component.js.html +2 -2
- package/coverage/lcov-report/api/routes/datasource.js.html +2 -2
- package/coverage/lcov-report/api/routes/deploy.js.html +2 -2
- package/coverage/lcov-report/api/routes/dev.js.html +2 -2
- package/coverage/lcov-report/api/routes/hosting.js.html +2 -2
- package/coverage/lcov-report/api/routes/index.html +9 -9
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +2 -2
- package/coverage/lcov-report/api/routes/layout.js.html +2 -2
- package/coverage/lcov-report/api/routes/metadata.js.html +2 -2
- package/coverage/lcov-report/api/routes/permission.js.html +12 -3
- package/coverage/lcov-report/api/routes/query.js.html +20 -86
- package/coverage/lcov-report/api/routes/role.js.html +2 -2
- package/coverage/lcov-report/api/routes/routing.js.html +2 -2
- package/coverage/lcov-report/api/routes/row.js.html +2 -2
- package/coverage/lcov-report/api/routes/screen.js.html +2 -2
- package/coverage/lcov-report/api/routes/script.js.html +2 -2
- package/coverage/lcov-report/api/routes/static.js.html +2 -2
- package/coverage/lcov-report/api/routes/table.js.html +2 -2
- package/coverage/lcov-report/api/routes/templates.js.html +2 -2
- package/coverage/lcov-report/api/routes/user.js.html +33 -3
- package/coverage/lcov-report/api/routes/view.js.html +2 -2
- package/coverage/lcov-report/api/routes/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +2 -2
- package/coverage/lcov-report/automations/index.html +20 -20
- 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 +1 -1
- 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 +32 -8
- 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 +11 -11
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +5 -8
- 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 +1 -1
- 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 +1 -1
- package/coverage/lcov-report/automations/utils.js.html +49 -16
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +25 -25
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +2 -2
- package/coverage/lcov-report/db/client.js.html +19 -19
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +15 -15
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +108 -81
- 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 +99 -84
- 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 +12 -12
- package/coverage/lcov-report/middleware/builder.js.html +10 -10
- package/coverage/lcov-report/middleware/currentapp.js.html +48 -36
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +11 -11
- package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +2 -2
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +3 -3
- package/coverage/lcov-report/threads/index.html +32 -32
- package/coverage/lcov-report/threads/index.js.html +12 -12
- package/coverage/lcov-report/threads/query.js.html +560 -65
- package/coverage/lcov-report/threads/utils.js.html +210 -15
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +2 -2
- 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 +28 -19
- package/coverage/lcov-report/utilities/index.html +19 -19
- package/coverage/lcov-report/utilities/index.js.html +70 -37
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
- 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 +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +19 -19
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +247 -10
- 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 +14 -5
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +22 -22
- package/coverage/lcov.info +2740 -2315
- package/dist/api/controllers/apikeys.js +2 -2
- package/dist/api/controllers/application.js +4 -4
- package/dist/api/controllers/auth.js +1 -1
- package/dist/api/controllers/automation.js +7 -5
- package/dist/api/controllers/cloud.js +2 -2
- package/dist/api/controllers/datasource.js +29 -0
- package/dist/api/controllers/deploy/index.js +2 -2
- package/dist/api/controllers/dev.js +2 -2
- package/dist/api/controllers/hosting.js +2 -2
- package/dist/api/controllers/permission.js +2 -2
- package/dist/api/controllers/query/import/index.js +79 -0
- package/dist/api/controllers/query/import/sources/base/index.js +64 -0
- package/dist/api/controllers/query/import/sources/base/openapi.js +42 -0
- package/dist/api/controllers/query/import/sources/curl.js +96 -0
- package/dist/api/controllers/query/import/sources/openapi2.js +142 -0
- package/dist/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +253 -0
- package/dist/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +1054 -0
- package/dist/api/controllers/{query.js → query/index.js} +87 -52
- package/dist/api/controllers/query/validation.js +38 -0
- package/dist/api/controllers/role.js +1 -1
- package/dist/api/controllers/routing.js +1 -1
- package/dist/api/controllers/row/internal.js +14 -6
- package/dist/api/controllers/row/internalSearch.js +3 -2
- package/dist/api/controllers/row/utils.js +13 -6
- package/dist/api/controllers/screen.js +1 -1
- package/dist/api/controllers/user.js +40 -4
- package/dist/api/controllers/webhook.js +5 -1
- package/dist/api/index.js +1 -1
- package/dist/api/routes/apikeys.js +1 -1
- package/dist/api/routes/application.js +1 -1
- package/dist/api/routes/automation.js +1 -1
- package/dist/api/routes/backup.js +1 -1
- package/dist/api/routes/cloud.js +1 -1
- package/dist/api/routes/component.js +1 -1
- package/dist/api/routes/datasource.js +1 -1
- package/dist/api/routes/deploy.js +1 -1
- package/dist/api/routes/dev.js +1 -1
- package/dist/api/routes/hosting.js +1 -1
- package/dist/api/routes/integration.js +1 -1
- package/dist/api/routes/layout.js +1 -1
- package/dist/api/routes/metadata.js +1 -1
- package/dist/api/routes/permission.js +1 -1
- package/dist/api/routes/query.js +6 -34
- package/dist/api/routes/role.js +1 -1
- package/dist/api/routes/routing.js +1 -1
- package/dist/api/routes/row.js +1 -1
- package/dist/api/routes/screen.js +1 -1
- package/dist/api/routes/script.js +1 -1
- package/dist/api/routes/static.js +1 -1
- package/dist/api/routes/table.js +1 -1
- package/dist/api/routes/templates.js +1 -1
- package/dist/api/routes/tests/utilities/TestFunctions.js +1 -1
- package/dist/api/routes/user.js +4 -2
- package/dist/api/routes/view.js +1 -1
- package/dist/api/routes/webhook.js +1 -1
- package/dist/app.js +1 -1
- package/dist/automations/bullboard.js +1 -1
- package/dist/automations/steps/executeQuery.js +9 -2
- package/dist/automations/steps/outgoingWebhook.js +2 -3
- package/dist/automations/utils.js +11 -1
- package/dist/constants/index.js +3 -3
- package/dist/constants/screens.js +1 -1
- package/dist/db/client.js +1 -1
- package/dist/db/utils.js +9 -1
- package/dist/definitions/datasource.js +6 -1
- package/dist/environment.js +1 -0
- package/dist/integrations/base/sqlTable.js +1 -1
- package/dist/integrations/dynamodb.js +19 -0
- package/dist/integrations/rest.js +259 -120
- package/dist/integrations/s3.js +17 -8
- package/dist/integrations/utils.js +40 -37
- package/dist/middleware/authorized.js +2 -2
- package/dist/middleware/builder.js +2 -2
- package/dist/middleware/currentapp.js +6 -6
- package/dist/middleware/usageQuota.js +1 -1
- package/dist/package.json +11 -4
- package/dist/tests/utilities/TestConfiguration.js +55 -8
- package/dist/tests/utilities/structures.js +2 -2
- package/dist/threads/automation.js +2 -2
- package/dist/threads/query.js +195 -38
- package/dist/threads/utils.js +62 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/budibaseDir.js +1 -1
- package/dist/utilities/fileSystem/utilities.js +2 -1
- package/dist/utilities/global.js +5 -5
- package/dist/utilities/index.js +11 -1
- package/dist/utilities/redis.js +1 -1
- package/dist/utilities/rowProcessor/index.js +76 -0
- package/dist/utilities/security.js +2 -2
- package/dist/utilities/usageQuota.js +2 -2
- package/dist/utilities/workerRequests.js +3 -3
- package/package.json +12 -5
- package/scripts/replicateApp.js +1 -1
- package/src/api/controllers/apikeys.js +2 -2
- package/src/api/controllers/application.js +7 -4
- package/src/api/controllers/auth.js +1 -1
- package/src/api/controllers/automation.js +8 -4
- package/src/api/controllers/cloud.js +5 -2
- package/src/api/controllers/datasource.js +34 -0
- package/src/api/controllers/deploy/index.js +2 -2
- package/src/api/controllers/dev.js +2 -2
- package/src/api/controllers/hosting.js +2 -2
- package/src/api/controllers/permission.js +2 -2
- package/src/api/controllers/query/import/index.ts +85 -0
- package/src/api/controllers/query/import/sources/base/index.ts +87 -0
- package/src/api/controllers/query/import/sources/base/openapi.ts +24 -0
- package/src/api/controllers/query/import/sources/curl.ts +102 -0
- package/src/api/controllers/query/import/sources/openapi2.ts +163 -0
- package/src/api/controllers/query/import/sources/tests/curl/curl.spec.js +103 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/delete.txt +1 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/empty-body.txt +2 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/get.txt +1 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/headers.txt +3 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/patch.txt +2 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/path.txt +1 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/post.txt +2 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/put.txt +2 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/query.txt +1 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +253 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.yaml +160 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +1054 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.yaml +711 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js +238 -0
- package/src/api/controllers/query/import/tests/index.spec.js +109 -0
- package/src/api/controllers/query/index.js +196 -0
- package/src/api/controllers/query/validation.js +42 -0
- package/src/api/controllers/role.js +1 -1
- package/src/api/controllers/routing.js +1 -1
- package/src/api/controllers/row/internal.js +14 -5
- package/src/api/controllers/row/internalSearch.js +3 -2
- package/src/api/controllers/row/utils.js +11 -8
- package/src/api/controllers/screen.js +1 -1
- package/src/api/controllers/user.js +39 -3
- package/src/api/controllers/webhook.js +5 -1
- package/src/api/index.js +1 -1
- package/src/api/routes/apikeys.js +1 -1
- package/src/api/routes/application.js +1 -1
- package/src/api/routes/automation.js +1 -1
- package/src/api/routes/backup.js +1 -1
- package/src/api/routes/cloud.js +1 -1
- package/src/api/routes/component.js +1 -1
- package/src/api/routes/datasource.js +1 -1
- package/src/api/routes/deploy.js +1 -1
- package/src/api/routes/dev.js +1 -1
- package/src/api/routes/hosting.js +1 -1
- package/src/api/routes/integration.js +1 -1
- package/src/api/routes/layout.js +1 -1
- package/src/api/routes/metadata.js +1 -1
- package/src/api/routes/permission.js +4 -1
- package/src/api/routes/query.js +14 -36
- package/src/api/routes/role.js +1 -1
- package/src/api/routes/routing.js +1 -1
- package/src/api/routes/row.js +1 -1
- package/src/api/routes/screen.js +1 -1
- package/src/api/routes/script.js +1 -1
- package/src/api/routes/static.js +1 -1
- package/src/api/routes/table.js +1 -1
- package/src/api/routes/templates.js +1 -1
- package/src/api/routes/tests/datasource.spec.js +45 -0
- package/src/api/routes/tests/permissions.spec.js +1 -1
- package/src/api/routes/tests/query.spec.js +70 -1
- package/src/api/routes/tests/role.spec.js +2 -2
- package/src/api/routes/tests/routing.spec.js +1 -1
- package/src/api/routes/tests/user.spec.js +1 -1
- package/src/api/routes/tests/utilities/TestFunctions.js +1 -1
- package/src/api/routes/user.js +11 -1
- package/src/api/routes/view.js +1 -1
- package/src/api/routes/webhook.js +1 -1
- package/src/app.ts +1 -1
- package/src/automations/bullboard.js +1 -1
- package/src/automations/steps/executeQuery.js +10 -2
- package/src/automations/steps/outgoingWebhook.js +2 -3
- package/src/automations/utils.js +12 -1
- package/src/constants/index.js +3 -3
- package/src/constants/screens.js +1 -1
- package/src/db/client.js +1 -1
- package/src/db/utils.js +10 -1
- package/src/definitions/common.ts +2 -16
- package/src/definitions/datasource.ts +98 -1
- package/src/environment.js +1 -0
- package/src/integrations/base/IntegrationBase.ts +4 -4
- package/src/integrations/base/sqlTable.ts +1 -1
- package/src/integrations/dynamodb.ts +18 -0
- package/src/integrations/oracle.ts +1 -1
- package/src/integrations/rest.ts +311 -138
- package/src/integrations/s3.ts +18 -7
- package/src/integrations/tests/rest.spec.js +432 -21
- package/src/integrations/utils.ts +8 -7
- package/src/middleware/authorized.js +2 -2
- package/src/middleware/builder.js +2 -2
- package/src/middleware/currentapp.js +11 -7
- package/src/middleware/tests/authorized.spec.js +2 -2
- package/src/middleware/tests/currentapp.spec.js +35 -41
- package/src/middleware/tests/usageQuota.spec.js +1 -1
- package/src/middleware/usageQuota.js +1 -1
- package/src/tests/utilities/TestConfiguration.js +65 -8
- package/src/tests/utilities/structures.js +2 -2
- package/src/threads/automation.js +2 -2
- package/src/threads/query.js +204 -39
- package/src/threads/utils.js +66 -1
- package/src/utilities/budibaseDir.js +1 -1
- package/src/utilities/fileSystem/utilities.js +3 -1
- package/src/utilities/global.js +8 -5
- package/src/utilities/index.js +12 -1
- package/src/utilities/redis.js +1 -1
- package/src/utilities/rowProcessor/index.js +79 -0
- package/src/utilities/security.js +5 -2
- package/src/utilities/usageQuota.js +2 -2
- package/src/utilities/workerRequests.js +3 -3
- package/builder/assets/index.86f7922e.js +0 -1316
- package/src/api/controllers/query.js +0 -158
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
<html lang="en">
|
|
4
4
|
|
|
5
5
|
<head>
|
|
6
|
-
<title>Code coverage report for api/controllers/query.js</title>
|
|
6
|
+
<title>Code coverage report for api/controllers/query/index.js</title>
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="
|
|
9
|
-
<link rel="stylesheet" href="
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="
|
|
8
|
+
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
11
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
12
|
<style type='text/css'>
|
|
13
13
|
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(
|
|
14
|
+
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
15
|
}
|
|
16
16
|
</style>
|
|
17
17
|
</head>
|
|
@@ -19,34 +19,34 @@
|
|
|
19
19
|
<body>
|
|
20
20
|
<div class='wrapper'>
|
|
21
21
|
<div class='pad1'>
|
|
22
|
-
<h1><a href="
|
|
22
|
+
<h1><a href="../../../index.html">All files</a> / <a href="index.html">api/controllers/query</a> index.js</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">81.11% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>73/90</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">68.42% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>13/19</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">85.71% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>12/14</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">80.68% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>71/88</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -215,8 +215,45 @@
|
|
|
215
215
|
<a name='L156'></a><a href='#L156'>156</a>
|
|
216
216
|
<a name='L157'></a><a href='#L157'>157</a>
|
|
217
217
|
<a name='L158'></a><a href='#L158'>158</a>
|
|
218
|
-
<a name='L159'></a><a href='#L159'>159</a
|
|
219
|
-
<
|
|
218
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
219
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
220
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
221
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
222
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
223
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
224
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
225
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
226
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
227
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
228
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
229
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
230
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
231
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
232
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
233
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
234
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
235
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
236
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
237
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
238
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
239
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
240
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
241
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
242
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
243
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
244
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
245
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
246
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
247
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
248
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
249
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
250
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
251
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
252
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
253
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
254
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
255
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
256
|
+
<a name='L197'></a><a href='#L197'>197</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
220
257
|
<span class="cline-any cline-neutral"> </span>
|
|
221
258
|
<span class="cline-any cline-neutral"> </span>
|
|
222
259
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -224,6 +261,9 @@
|
|
|
224
261
|
<span class="cline-any cline-yes">34x</span>
|
|
225
262
|
<span class="cline-any cline-yes">34x</span>
|
|
226
263
|
<span class="cline-any cline-yes">34x</span>
|
|
264
|
+
<span class="cline-any cline-yes">34x</span>
|
|
265
|
+
<span class="cline-any cline-yes">34x</span>
|
|
266
|
+
<span class="cline-any cline-yes">34x</span>
|
|
227
267
|
<span class="cline-any cline-neutral"> </span>
|
|
228
268
|
<span class="cline-any cline-yes">34x</span>
|
|
229
269
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -247,63 +287,62 @@
|
|
|
247
287
|
<span class="cline-any cline-neutral"> </span>
|
|
248
288
|
<span class="cline-any cline-neutral"> </span>
|
|
249
289
|
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
291
|
<span class="cline-any cline-yes">2x</span>
|
|
251
292
|
<span class="cline-any cline-neutral"> </span>
|
|
252
293
|
<span class="cline-any cline-neutral"> </span>
|
|
253
294
|
<span class="cline-any cline-yes">34x</span>
|
|
254
|
-
<span class="cline-any cline-
|
|
255
|
-
<span class="cline-any cline-
|
|
295
|
+
<span class="cline-any cline-no"> </span>
|
|
296
|
+
<span class="cline-any cline-no"> </span>
|
|
256
297
|
<span class="cline-any cline-neutral"> </span>
|
|
257
|
-
<span class="cline-any cline-
|
|
258
|
-
<span class="cline-any cline-
|
|
298
|
+
<span class="cline-any cline-no"> </span>
|
|
299
|
+
<span class="cline-any cline-no"> </span>
|
|
259
300
|
<span class="cline-any cline-neutral"> </span>
|
|
260
301
|
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-
|
|
262
|
-
<span class="cline-any cline-
|
|
302
|
+
<span class="cline-any cline-no"> </span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-no"> </span>
|
|
305
|
+
<span class="cline-any cline-no"> </span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
263
307
|
<span class="cline-any cline-neutral"> </span>
|
|
264
|
-
<span class="cline-any cline-yes">20x</span>
|
|
265
|
-
<span class="cline-any cline-yes">20x</span>
|
|
266
308
|
<span class="cline-any cline-neutral"> </span>
|
|
267
309
|
<span class="cline-any cline-neutral"> </span>
|
|
268
310
|
<span class="cline-any cline-neutral"> </span>
|
|
269
|
-
<span class="cline-any cline-yes">4x</span>
|
|
270
311
|
<span class="cline-any cline-neutral"> </span>
|
|
271
312
|
<span class="cline-any cline-neutral"> </span>
|
|
272
|
-
<span class="cline-any cline-yes">4x</span>
|
|
273
|
-
<span class="cline-any cline-no"> </span>
|
|
274
|
-
<span class="cline-any cline-no"> </span>
|
|
275
313
|
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-no"> </span>
|
|
277
314
|
<span class="cline-any cline-neutral"> </span>
|
|
278
315
|
<span class="cline-any cline-no"> </span>
|
|
279
316
|
<span class="cline-any cline-no"> </span>
|
|
280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
281
317
|
<span class="cline-any cline-no"> </span>
|
|
282
|
-
<span class="cline-any cline-
|
|
318
|
+
<span class="cline-any cline-no"> </span>
|
|
283
319
|
<span class="cline-any cline-neutral"> </span>
|
|
284
320
|
<span class="cline-any cline-neutral"> </span>
|
|
285
321
|
<span class="cline-any cline-no"> </span>
|
|
286
322
|
<span class="cline-any cline-neutral"> </span>
|
|
287
323
|
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-no"> </span>
|
|
288
325
|
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-
|
|
290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-no"> </span>
|
|
291
327
|
<span class="cline-any cline-neutral"> </span>
|
|
292
328
|
<span class="cline-any cline-neutral"> </span>
|
|
293
329
|
<span class="cline-any cline-neutral"> </span>
|
|
294
330
|
<span class="cline-any cline-no"> </span>
|
|
295
|
-
<span class="cline-any cline-no"> </span>
|
|
296
|
-
<span class="cline-any cline-neutral"> </span>
|
|
297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
298
331
|
<span class="cline-any cline-neutral"> </span>
|
|
299
332
|
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-yes">34x</span>
|
|
334
|
+
<span class="cline-any cline-yes">28x</span>
|
|
335
|
+
<span class="cline-any cline-yes">28x</span>
|
|
300
336
|
<span class="cline-any cline-neutral"> </span>
|
|
301
|
-
<span class="cline-any cline-
|
|
337
|
+
<span class="cline-any cline-yes">28x</span>
|
|
338
|
+
<span class="cline-any cline-yes">28x</span>
|
|
302
339
|
<span class="cline-any cline-neutral"> </span>
|
|
303
|
-
<span class="cline-any cline-no"> </span>
|
|
304
340
|
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-yes">28x</span>
|
|
342
|
+
<span class="cline-any cline-yes">28x</span>
|
|
305
343
|
<span class="cline-any cline-neutral"> </span>
|
|
306
|
-
<span class="cline-any cline-yes">
|
|
344
|
+
<span class="cline-any cline-yes">28x</span>
|
|
345
|
+
<span class="cline-any cline-yes">28x</span>
|
|
307
346
|
<span class="cline-any cline-neutral"> </span>
|
|
308
347
|
<span class="cline-any cline-neutral"> </span>
|
|
309
348
|
<span class="cline-any cline-yes">34x</span>
|
|
@@ -318,22 +357,28 @@
|
|
|
318
357
|
<span class="cline-any cline-neutral"> </span>
|
|
319
358
|
<span class="cline-any cline-neutral"> </span>
|
|
320
359
|
<span class="cline-any cline-yes">34x</span>
|
|
321
|
-
<span class="cline-any cline-yes">
|
|
360
|
+
<span class="cline-any cline-yes">8x</span>
|
|
322
361
|
<span class="cline-any cline-neutral"> </span>
|
|
323
|
-
<span class="cline-any cline-yes">
|
|
362
|
+
<span class="cline-any cline-yes">8x</span>
|
|
324
363
|
<span class="cline-any cline-neutral"> </span>
|
|
325
|
-
<span class="cline-any cline-yes">2x</span>
|
|
326
|
-
<span class="cline-any cline-yes">2x</span>
|
|
327
364
|
<span class="cline-any cline-neutral"> </span>
|
|
328
|
-
<span class="cline-any cline-yes">2x</span>
|
|
329
|
-
<span class="cline-any cline-yes">2x</span>
|
|
330
365
|
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-yes">8x</span>
|
|
331
367
|
<span class="cline-any cline-neutral"> </span>
|
|
368
|
+
<span class="cline-any cline-yes">8x</span>
|
|
369
|
+
<span class="cline-any cline-yes">8x</span>
|
|
332
370
|
<span class="cline-any cline-neutral"> </span>
|
|
333
371
|
<span class="cline-any cline-neutral"> </span>
|
|
334
372
|
<span class="cline-any cline-neutral"> </span>
|
|
335
373
|
<span class="cline-any cline-neutral"> </span>
|
|
336
|
-
<span class="cline-any cline-
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-yes">7x</span>
|
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
382
|
<span class="cline-any cline-neutral"> </span>
|
|
338
383
|
<span class="cline-any cline-neutral"> </span>
|
|
339
384
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -342,46 +387,79 @@
|
|
|
342
387
|
<span class="cline-any cline-neutral"> </span>
|
|
343
388
|
<span class="cline-any cline-neutral"> </span>
|
|
344
389
|
<span class="cline-any cline-neutral"> </span>
|
|
345
|
-
<span class="cline-any cline-
|
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
391
|
<span class="cline-any cline-yes">2x</span>
|
|
347
392
|
<span class="cline-any cline-neutral"> </span>
|
|
348
393
|
<span class="cline-any cline-yes">2x</span>
|
|
349
394
|
<span class="cline-any cline-yes">2x</span>
|
|
350
395
|
<span class="cline-any cline-neutral"> </span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-yes">2x</span>
|
|
351
398
|
<span class="cline-any cline-yes">2x</span>
|
|
352
399
|
<span class="cline-any cline-neutral"> </span>
|
|
353
400
|
<span class="cline-any cline-neutral"> </span>
|
|
354
401
|
<span class="cline-any cline-neutral"> </span>
|
|
355
402
|
<span class="cline-any cline-neutral"> </span>
|
|
356
403
|
<span class="cline-any cline-neutral"> </span>
|
|
357
|
-
<span class="cline-any cline-yes">2x</span>
|
|
358
|
-
<span class="cline-any cline-yes">2x</span>
|
|
359
|
-
<span class="cline-any cline-neutral"> </span>
|
|
360
404
|
<span class="cline-any cline-neutral"> </span>
|
|
361
405
|
<span class="cline-any cline-neutral"> </span>
|
|
362
406
|
<span class="cline-any cline-neutral"> </span>
|
|
363
407
|
<span class="cline-any cline-neutral"> </span>
|
|
364
408
|
<span class="cline-any cline-yes">1x</span>
|
|
409
|
+
<span class="cline-any cline-yes">1x</span>
|
|
410
|
+
<span class="cline-any cline-neutral"> </span>
|
|
411
|
+
<span class="cline-any cline-no"> </span>
|
|
412
|
+
<span class="cline-any cline-neutral"> </span>
|
|
365
413
|
<span class="cline-any cline-neutral"> </span>
|
|
366
414
|
<span class="cline-any cline-yes">1x</span>
|
|
367
415
|
<span class="cline-any cline-neutral"> </span>
|
|
368
416
|
<span class="cline-any cline-neutral"> </span>
|
|
369
417
|
<span class="cline-any cline-neutral"> </span>
|
|
370
418
|
<span class="cline-any cline-yes">34x</span>
|
|
419
|
+
<span class="cline-any cline-yes">2x</span>
|
|
420
|
+
<span class="cline-any cline-neutral"> </span>
|
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
|
422
|
+
<span class="cline-any cline-yes">34x</span>
|
|
423
|
+
<span class="cline-any cline-no"> </span>
|
|
424
|
+
<span class="cline-any cline-neutral"> </span>
|
|
425
|
+
<span class="cline-any cline-neutral"> </span>
|
|
426
|
+
<span class="cline-any cline-yes">34x</span>
|
|
427
|
+
<span class="cline-any cline-yes">2x</span>
|
|
428
|
+
<span class="cline-any cline-yes">2x</span>
|
|
429
|
+
<span class="cline-any cline-yes">2x</span>
|
|
430
|
+
<span class="cline-any cline-neutral"> </span>
|
|
431
|
+
<span class="cline-any cline-yes">2x</span>
|
|
432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
371
433
|
<span class="cline-any cline-yes">1x</span>
|
|
372
434
|
<span class="cline-any cline-yes">1x</span>
|
|
373
435
|
<span class="cline-any cline-yes">1x</span>
|
|
436
|
+
<span class="cline-any cline-neutral"> </span>
|
|
437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
438
|
+
<span class="cline-any cline-yes">1x</span>
|
|
439
|
+
<span class="cline-any cline-yes">1x</span>
|
|
440
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
441
|
<span class="cline-any cline-yes">1x</span>
|
|
375
442
|
<span class="cline-any cline-neutral"> </span>
|
|
376
|
-
<span class="cline-any cline-neutral"> </span
|
|
377
|
-
|
|
443
|
+
<span class="cline-any cline-neutral"> </span>
|
|
444
|
+
<span class="cline-any cline-neutral"> </span>
|
|
445
|
+
<span class="cline-any cline-yes">34x</span>
|
|
446
|
+
<span class="cline-any cline-yes">2x</span>
|
|
447
|
+
<span class="cline-any cline-yes">2x</span>
|
|
448
|
+
<span class="cline-any cline-yes">2x</span>
|
|
449
|
+
<span class="cline-any cline-yes">2x</span>
|
|
450
|
+
<span class="cline-any cline-yes">2x</span>
|
|
451
|
+
<span class="cline-any cline-neutral"> </span>
|
|
452
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
|
|
378
453
|
const {
|
|
379
454
|
generateQueryID,
|
|
380
455
|
getQueryParams,
|
|
381
456
|
isProdAppID,
|
|
382
|
-
} = require("
|
|
383
|
-
const { BaseQueryVerbs } = require("
|
|
384
|
-
const { Thread, ThreadType } = require("
|
|
457
|
+
} = require("../../../db/utils")
|
|
458
|
+
const { BaseQueryVerbs } = require("../../../constants")
|
|
459
|
+
const { Thread, ThreadType } = require("../../../threads")
|
|
460
|
+
const { save: saveDatasource } = require("../datasource")
|
|
461
|
+
const { RestImporter } = require("./import")
|
|
462
|
+
const { invalidateDynamicVariables } = require("../../../threads/utils")
|
|
385
463
|
|
|
386
464
|
const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 })
|
|
387
465
|
|
|
@@ -405,9 +483,49 @@ exports.fetch = async function (ctx) {
|
|
|
405
483
|
include_docs: true,
|
|
406
484
|
})
|
|
407
485
|
)
|
|
486
|
+
|
|
408
487
|
ctx.body = enrichQueries(body.rows.map(row => row.doc))
|
|
409
488
|
}
|
|
410
489
|
|
|
490
|
+
exports.import = <span class="fstat-no" title="function not covered" >as</span>ync ctx => {
|
|
491
|
+
const body = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
|
|
492
|
+
const data = <span class="cstat-no" title="statement not covered" >body.data</span>
|
|
493
|
+
|
|
494
|
+
const importer = <span class="cstat-no" title="statement not covered" >new RestImporter(data)</span>
|
|
495
|
+
<span class="cstat-no" title="statement not covered" > await importer.init()</span>
|
|
496
|
+
|
|
497
|
+
let datasourceId
|
|
498
|
+
<span class="cstat-no" title="statement not covered" > if (!body.datasourceId) {</span>
|
|
499
|
+
// construct new datasource
|
|
500
|
+
const info = <span class="cstat-no" title="statement not covered" >await importer.getInfo()</span>
|
|
501
|
+
let datasource = <span class="cstat-no" title="statement not covered" >{</span>
|
|
502
|
+
type: "datasource",
|
|
503
|
+
source: "REST",
|
|
504
|
+
config: {
|
|
505
|
+
url: info.url,
|
|
506
|
+
defaultHeaders: [],
|
|
507
|
+
},
|
|
508
|
+
name: info.name,
|
|
509
|
+
}
|
|
510
|
+
// save the datasource
|
|
511
|
+
const datasourceCtx = <span class="cstat-no" title="statement not covered" >{ ...ctx }</span>
|
|
512
|
+
<span class="cstat-no" title="statement not covered" > datasourceCtx.request.body.datasource = datasource</span>
|
|
513
|
+
<span class="cstat-no" title="statement not covered" > await saveDatasource(datasourceCtx)</span>
|
|
514
|
+
<span class="cstat-no" title="statement not covered" > datasourceId = datasourceCtx.body.datasource._id</span>
|
|
515
|
+
} else {
|
|
516
|
+
// use existing datasource
|
|
517
|
+
<span class="cstat-no" title="statement not covered" > datasourceId = body.datasourceId</span>
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
const importResult = <span class="cstat-no" title="statement not covered" >await importer.importQueries(ctx.appId, datasourceId)</span>
|
|
521
|
+
|
|
522
|
+
<span class="cstat-no" title="statement not covered" > ctx.body = {</span>
|
|
523
|
+
...importResult,
|
|
524
|
+
datasourceId,
|
|
525
|
+
}
|
|
526
|
+
<span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
|
|
527
|
+
}
|
|
528
|
+
|
|
411
529
|
exports.save = async function (ctx) {
|
|
412
530
|
const db = new CouchDB(ctx.appId)
|
|
413
531
|
const query = ctx.request.body
|
|
@@ -423,47 +541,6 @@ exports.save = async function (ctx) {
|
|
|
423
541
|
ctx.message = `Query ${query.name} saved successfully.`
|
|
424
542
|
}
|
|
425
543
|
|
|
426
|
-
async function enrichQueryFields(fields, parameters = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
427
|
-
const enrichedQuery = {}
|
|
428
|
-
|
|
429
|
-
// enrich the fields with dynamic parameters
|
|
430
|
-
for (let key of Object.keys(fields)) {
|
|
431
|
-
<span class="cstat-no" title="statement not covered" > if (fields[key] == null) {</span>
|
|
432
|
-
<span class="cstat-no" title="statement not covered" > continue</span>
|
|
433
|
-
}
|
|
434
|
-
<span class="cstat-no" title="statement not covered" > if (typeof fields[key] === "object") {</span>
|
|
435
|
-
// enrich nested fields object
|
|
436
|
-
<span class="cstat-no" title="statement not covered" > enrichedQuery[key] = await enrichQueryFields(fields[key], parameters)</span>
|
|
437
|
-
} else <span class="cstat-no" title="statement not covered" >if (typeof fields[key] === "string") {</span>
|
|
438
|
-
// enrich string value as normal
|
|
439
|
-
<span class="cstat-no" title="statement not covered" > enrichedQuery[key] = await processString(fields[key], parameters, {</span>
|
|
440
|
-
noHelpers: true,
|
|
441
|
-
})
|
|
442
|
-
} else {
|
|
443
|
-
<span class="cstat-no" title="statement not covered" > enrichedQuery[key] = fields[key]</span>
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
448
|
-
enrichedQuery.json ||
|
|
449
|
-
enrichedQuery.customData ||
|
|
450
|
-
enrichedQuery.requestBody
|
|
451
|
-
) {
|
|
452
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
453
|
-
<span class="cstat-no" title="statement not covered" > enrichedQuery.json = JSON.parse(</span>
|
|
454
|
-
enrichedQuery.json ||
|
|
455
|
-
enrichedQuery.customData ||
|
|
456
|
-
enrichedQuery.requestBody
|
|
457
|
-
)
|
|
458
|
-
} catch (err) {
|
|
459
|
-
<span class="cstat-no" title="statement not covered" > throw { message: `JSON Invalid - error: ${err}` }</span>
|
|
460
|
-
}
|
|
461
|
-
<span class="cstat-no" title="statement not covered" > delete enrichedQuery.customData</span>
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
return enrichedQuery
|
|
465
|
-
}
|
|
466
|
-
|
|
467
544
|
exports.find = async function (ctx) {
|
|
468
545
|
const db = new CouchDB(ctx.appId)
|
|
469
546
|
const query = enrichQueries(await db.get(ctx.params.queryId))
|
|
@@ -479,54 +556,91 @@ exports.preview = async function (ctx) {
|
|
|
479
556
|
const db = new CouchDB(ctx.appId)
|
|
480
557
|
|
|
481
558
|
const datasource = await db.get(ctx.request.body.datasourceId)
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
const
|
|
559
|
+
// preview may not have a queryId as it hasn't been saved, but if it does
|
|
560
|
+
// this stops dynamic variables from calling the same query
|
|
561
|
+
const { fields, parameters, queryVerb, transformer, queryId } =
|
|
562
|
+
ctx.request.body
|
|
485
563
|
|
|
486
564
|
try {
|
|
487
|
-
const { rows, keys } = await Runner.run({
|
|
565
|
+
const { rows, keys, info, extra } = await Runner.run({
|
|
566
|
+
appId: ctx.appId,
|
|
488
567
|
datasource,
|
|
489
568
|
queryVerb,
|
|
490
|
-
|
|
569
|
+
fields,
|
|
570
|
+
parameters,
|
|
491
571
|
transformer,
|
|
572
|
+
queryId,
|
|
492
573
|
})
|
|
493
574
|
|
|
494
575
|
ctx.body = {
|
|
495
576
|
rows,
|
|
496
577
|
schemaFields: [...new Set(keys)],
|
|
578
|
+
info,
|
|
579
|
+
extra,
|
|
497
580
|
}
|
|
498
581
|
} catch (err) {
|
|
499
582
|
ctx.throw(400, err)
|
|
500
583
|
}
|
|
501
584
|
}
|
|
502
585
|
|
|
503
|
-
|
|
586
|
+
async function execute(ctx, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{ rowsOnly: false })</span> {
|
|
504
587
|
const db = new CouchDB(ctx.appId)
|
|
505
588
|
|
|
506
589
|
const query = await db.get(ctx.params.queryId)
|
|
507
590
|
const datasource = await db.get(query.datasourceId)
|
|
508
|
-
|
|
509
|
-
const enrichedQuery = await enrichQueryFields(
|
|
510
|
-
query.fields,
|
|
511
|
-
ctx.request.body.parameters
|
|
512
|
-
)
|
|
513
591
|
|
|
514
592
|
// call the relevant CRUD method on the integration class
|
|
515
593
|
try {
|
|
516
|
-
const { rows } = await Runner.run({
|
|
594
|
+
const { rows, pagination, extra } = await Runner.run({
|
|
595
|
+
appId: ctx.appId,
|
|
517
596
|
datasource,
|
|
518
597
|
queryVerb: query.queryVerb,
|
|
519
|
-
|
|
598
|
+
fields: query.fields,
|
|
599
|
+
pagination: ctx.request.body.pagination,
|
|
600
|
+
parameters: ctx.request.body.parameters,
|
|
520
601
|
transformer: query.transformer,
|
|
602
|
+
queryId: ctx.params.queryId,
|
|
521
603
|
})
|
|
522
|
-
|
|
604
|
+
if (opts && opts.rowsOnly) {
|
|
605
|
+
ctx.body = rows
|
|
606
|
+
} else <span class="missing-if-branch" title="else path not taken" >E</span>{
|
|
607
|
+
<span class="cstat-no" title="statement not covered" > ctx.body = { data: rows, pagination, ...extra }</span>
|
|
608
|
+
}
|
|
523
609
|
} catch (err) {
|
|
524
610
|
ctx.throw(400, err)
|
|
525
611
|
}
|
|
526
612
|
}
|
|
527
613
|
|
|
614
|
+
exports.executeV1 = async function (ctx) {
|
|
615
|
+
return execute(ctx, { rowsOnly: true })
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
exports.executeV2 = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
619
|
+
<span class="cstat-no" title="statement not covered" > return execute(ctx, { rowsOnly: false })</span>
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
const removeDynamicVariables = async (db, queryId) => {
|
|
623
|
+
const query = await db.get(queryId)
|
|
624
|
+
const datasource = await db.get(query.datasourceId)
|
|
625
|
+
const dynamicVariables = datasource.config.dynamicVariables
|
|
626
|
+
|
|
627
|
+
if (dynamicVariables) {
|
|
628
|
+
// delete dynamic variables from the datasource
|
|
629
|
+
const newVariables = dynamicVariables.filter(dv => dv.queryId !== queryId)
|
|
630
|
+
datasource.config.dynamicVariables = newVariables
|
|
631
|
+
await db.put(datasource)
|
|
632
|
+
|
|
633
|
+
// invalidate the deleted variables
|
|
634
|
+
const variablesToDelete = dynamicVariables.filter(
|
|
635
|
+
dv => dv.queryId === queryId
|
|
636
|
+
)
|
|
637
|
+
await invalidateDynamicVariables(variablesToDelete)
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
|
|
528
641
|
exports.destroy = async function (ctx) {
|
|
529
642
|
const db = new CouchDB(ctx.appId)
|
|
643
|
+
await removeDynamicVariables(db, ctx.params.queryId)
|
|
530
644
|
await db.remove(ctx.params.queryId, ctx.params.revId)
|
|
531
645
|
ctx.message = `Query deleted.`
|
|
532
646
|
ctx.status = 200
|
|
@@ -538,17 +652,17 @@ exports.destroy = async function (ctx) {
|
|
|
538
652
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
539
653
|
Code coverage generated by
|
|
540
654
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
541
|
-
at
|
|
655
|
+
at Thu Jan 13 2022 18:34:51 GMT+0000 (Coordinated Universal Time)
|
|
542
656
|
</div>
|
|
543
657
|
</div>
|
|
544
|
-
<script src="
|
|
658
|
+
<script src="../../../prettify.js"></script>
|
|
545
659
|
<script>
|
|
546
660
|
window.onload = function () {
|
|
547
661
|
prettyPrint();
|
|
548
662
|
};
|
|
549
663
|
</script>
|
|
550
|
-
<script src="
|
|
551
|
-
<script src="
|
|
664
|
+
<script src="../../../sorter.js"></script>
|
|
665
|
+
<script src="../../../block-navigation.js"></script>
|
|
552
666
|
</body>
|
|
553
667
|
</html>
|
|
554
668
|
|