@budibase/server 1.0.123 → 1.0.125
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/builder/assets/index.3d890df7.js +1299 -0
- package/builder/assets/index.89795487.css +6 -0
- package/builder/assets/{vendor.8e34a169.js → vendor.5240f480.js} +1 -1
- package/builder/index.html +3 -3
- package/coverage/clover.xml +695 -1678
- package/coverage/coverage-final.json +28 -43
- package/coverage/lcov-report/api/controllers/analytics.js.html +8 -3
- package/coverage/lcov-report/api/controllers/apikeys.js.html +9 -4
- package/coverage/lcov-report/api/controllers/auth.js.html +8 -3
- package/coverage/lcov-report/api/controllers/automation.js.html +8 -3
- package/coverage/lcov-report/api/controllers/backup.js.html +8 -3
- package/coverage/lcov-report/api/controllers/cloud.js.html +8 -3
- package/coverage/lcov-report/api/controllers/component.js.html +8 -3
- package/coverage/lcov-report/api/controllers/datasource.js.html +11 -6
- package/coverage/lcov-report/api/controllers/dev.js.html +8 -3
- package/coverage/lcov-report/api/controllers/index.html +16 -26
- package/coverage/lcov-report/api/controllers/integration.js.html +8 -3
- package/coverage/lcov-report/api/controllers/layout.js.html +8 -3
- package/coverage/lcov-report/api/controllers/metadata.js.html +8 -3
- package/coverage/lcov-report/api/controllers/migrations.js.html +8 -3
- package/coverage/lcov-report/api/controllers/permission.js.html +8 -3
- package/coverage/lcov-report/api/controllers/query/index.html +16 -26
- package/coverage/lcov-report/api/controllers/query/validation.js.html +8 -3
- package/coverage/lcov-report/api/controllers/role.js.html +10 -5
- package/coverage/lcov-report/api/controllers/routing.js.html +9 -4
- package/coverage/lcov-report/api/controllers/row/external.js.html +8 -3
- package/coverage/lcov-report/api/controllers/row/index.html +25 -35
- package/coverage/lcov-report/api/controllers/row/internal.js.html +32 -24
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +21 -16
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -19
- package/coverage/lcov-report/api/controllers/row/utils.js.html +33 -19
- package/coverage/lcov-report/api/controllers/screen.js.html +9 -4
- package/coverage/lcov-report/api/controllers/script.js.html +8 -3
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +55 -50
- package/coverage/lcov-report/api/controllers/table/external.js.html +8 -3
- package/coverage/lcov-report/api/controllers/table/index.html +19 -44
- package/coverage/lcov-report/api/controllers/table/index.js.html +20 -15
- package/coverage/lcov-report/api/controllers/templates.js.html +8 -3
- package/coverage/lcov-report/api/controllers/user.js.html +8 -3
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +8 -3
- package/coverage/lcov-report/api/controllers/view/index.html +8 -3
- package/coverage/lcov-report/api/controllers/view/index.js.html +10 -5
- package/coverage/lcov-report/api/controllers/view/utils.js.html +8 -3
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +8 -3
- package/coverage/lcov-report/api/controllers/webhook.js.html +10 -5
- package/coverage/lcov-report/api/index.html +18 -13
- package/coverage/lcov-report/api/index.js.html +28 -8
- package/coverage/lcov-report/api/routes/analytics.js.html +8 -3
- package/coverage/lcov-report/api/routes/apikeys.js.html +8 -3
- package/coverage/lcov-report/api/routes/auth.js.html +8 -3
- package/coverage/lcov-report/api/routes/automation.js.html +8 -3
- package/coverage/lcov-report/api/routes/backup.js.html +8 -3
- package/coverage/lcov-report/api/routes/cloud.js.html +8 -3
- package/coverage/lcov-report/api/routes/component.js.html +8 -3
- package/coverage/lcov-report/api/routes/datasource.js.html +8 -3
- package/coverage/lcov-report/api/routes/deploy.js.html +8 -3
- package/coverage/lcov-report/api/routes/dev.js.html +9 -4
- package/coverage/lcov-report/api/routes/index.html +13 -68
- package/coverage/lcov-report/api/routes/integration.js.html +8 -3
- package/coverage/lcov-report/api/routes/layout.js.html +8 -3
- package/coverage/lcov-report/api/routes/metadata.js.html +8 -3
- package/coverage/lcov-report/api/routes/migrations.js.html +8 -3
- package/coverage/lcov-report/api/routes/permission.js.html +8 -3
- package/coverage/lcov-report/api/routes/query.js.html +8 -3
- package/coverage/lcov-report/api/routes/role.js.html +8 -3
- package/coverage/lcov-report/api/routes/routing.js.html +8 -3
- package/coverage/lcov-report/api/routes/screen.js.html +8 -3
- package/coverage/lcov-report/api/routes/script.js.html +8 -3
- package/coverage/lcov-report/api/routes/table.js.html +8 -3
- package/coverage/lcov-report/api/routes/templates.js.html +8 -3
- package/coverage/lcov-report/api/routes/user.js.html +8 -3
- package/coverage/lcov-report/api/routes/utils/index.html +8 -3
- package/coverage/lcov-report/api/routes/utils/validators.js.html +8 -3
- package/coverage/lcov-report/api/routes/view.js.html +8 -3
- package/coverage/lcov-report/api/routes/webhook.js.html +8 -3
- package/coverage/lcov-report/automations/actions.js.html +21 -7
- package/coverage/lcov-report/automations/automationUtils.js.html +64 -23
- package/coverage/lcov-report/automations/bullboard.js.html +8 -3
- package/coverage/lcov-report/automations/index.html +27 -37
- package/coverage/lcov-report/automations/index.js.html +8 -3
- package/coverage/lcov-report/automations/steps/bash.js.html +8 -3
- package/coverage/lcov-report/automations/steps/delay.js.html +8 -3
- package/coverage/lcov-report/automations/steps/discord.js.html +8 -3
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +8 -3
- package/coverage/lcov-report/automations/steps/executeScript.js.html +8 -3
- package/coverage/lcov-report/automations/steps/filter.js.html +8 -3
- package/coverage/lcov-report/automations/steps/index.html +31 -41
- package/coverage/lcov-report/automations/steps/integromat.js.html +8 -3
- package/coverage/lcov-report/{api/routes/static.js.html → automations/steps/loop.js.html} +70 -80
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +9 -4
- package/coverage/lcov-report/automations/steps/queryRows.js.html +9 -4
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +8 -3
- package/coverage/lcov-report/automations/steps/serverLog.js.html +8 -3
- package/coverage/lcov-report/automations/steps/slack.js.html +8 -3
- package/coverage/lcov-report/automations/steps/updateRow.js.html +8 -3
- package/coverage/lcov-report/automations/steps/utils.js.html +14 -9
- package/coverage/lcov-report/automations/steps/zapier.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/index.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +8 -3
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +8 -3
- package/coverage/lcov-report/automations/triggers.js.html +16 -11
- package/coverage/lcov-report/block-navigation.js +8 -0
- package/coverage/lcov-report/constants/index.html +12 -7
- package/coverage/lcov-report/constants/index.js.html +55 -32
- package/coverage/lcov-report/constants/layouts.js.html +8 -3
- package/coverage/lcov-report/constants/screens.js.html +8 -3
- package/coverage/lcov-report/db/inMemoryView.js.html +8 -3
- package/coverage/lcov-report/db/index.html +8 -3
- package/coverage/lcov-report/db/index.js.html +9 -4
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +20 -15
- package/coverage/lcov-report/db/linkedRows/index.html +8 -3
- package/coverage/lcov-report/db/linkedRows/index.js.html +22 -17
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +12 -7
- package/coverage/lcov-report/db/newid.js.html +11 -6
- package/coverage/lcov-report/db/utils.js.html +84 -79
- package/coverage/lcov-report/events/AutomationEmitter.js.html +14 -9
- package/coverage/lcov-report/events/index.html +8 -3
- package/coverage/lcov-report/events/index.js.html +9 -4
- package/coverage/lcov-report/events/utils.js.html +18 -13
- package/coverage/lcov-report/index.html +125 -120
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +8 -3
- package/coverage/lcov-report/integrations/tests/index.html +8 -3
- package/coverage/lcov-report/middleware/appInfo.js.html +8 -3
- package/coverage/lcov-report/middleware/builder.js.html +8 -3
- package/coverage/lcov-report/middleware/currentapp.js.html +65 -15
- package/coverage/lcov-report/middleware/index.html +25 -50
- package/coverage/lcov-report/middleware/joi-validator.js.html +9 -4
- package/coverage/lcov-report/middleware/publicApi.js.html +8 -3
- package/coverage/lcov-report/middleware/resourceId.js.html +8 -3
- package/coverage/lcov-report/middleware/selfhost.js.html +9 -4
- package/coverage/lcov-report/middleware/utils.js.html +8 -3
- package/coverage/lcov-report/sorter.js +26 -0
- package/coverage/lcov-report/threads/automation.js.html +581 -90
- package/coverage/lcov-report/threads/index.html +30 -40
- package/coverage/lcov-report/threads/query.js.html +9 -4
- package/coverage/lcov-report/threads/utils.js.html +17 -9
- package/coverage/lcov-report/utilities/bcrypt.js.html +8 -3
- package/coverage/lcov-report/utilities/budibaseDir.js.html +8 -3
- package/coverage/lcov-report/utilities/centralPath.js.html +8 -3
- package/coverage/lcov-report/utilities/csvParser.js.html +10 -5
- package/coverage/lcov-report/utilities/global.js.html +9 -4
- package/coverage/lcov-report/utilities/index.html +8 -3
- package/coverage/lcov-report/utilities/index.js.html +11 -6
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +32 -9
- package/coverage/lcov-report/utilities/queue/index.html +12 -7
- package/coverage/lcov-report/utilities/routing/index.html +8 -3
- package/coverage/lcov-report/utilities/routing/index.js.html +8 -3
- package/coverage/lcov-report/utilities/rowProcessor/index.html +8 -3
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +48 -43
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +18 -13
- package/coverage/lcov-report/utilities/scriptRunner.js.html +8 -3
- package/coverage/lcov-report/utilities/security.js.html +9 -4
- package/coverage/lcov-report/utilities/statusCodes.js.html +8 -3
- package/coverage/lcov-report/utilities/usageQuota/index.html +24 -34
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +44 -39
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +8 -3
- package/coverage/lcov-report/utilities/users.js.html +8 -3
- package/coverage/lcov-report/utilities/workerRequests.js.html +9 -4
- package/coverage/lcov.info +1144 -2875
- package/dist/api/controllers/application.js +145 -73
- package/dist/api/controllers/deploy/index.js +68 -36
- package/dist/api/controllers/public/applications.js +29 -9
- package/dist/api/controllers/public/queries.js +27 -7
- package/dist/api/controllers/public/rows.js +32 -12
- package/dist/api/controllers/public/tables.js +2 -2
- package/dist/api/controllers/public/users.js +8 -8
- package/dist/api/controllers/public/utils.js +1 -1
- package/dist/api/controllers/query/import/index.js +3 -3
- package/dist/api/controllers/query/index.js +57 -44
- package/dist/api/controllers/row/ExternalRequest.js +27 -27
- package/dist/api/controllers/row/index.js +83 -60
- package/dist/api/controllers/row/internal.js +2 -1
- package/dist/api/controllers/row/utils.js +2 -1
- package/dist/api/controllers/static/templates/BudibaseApp.svelte +3 -0
- package/dist/api/controllers/table/bulkFormula.js +2 -1
- package/dist/api/controllers/table/internal.js +41 -35
- package/dist/api/controllers/table/utils.js +271 -229
- package/dist/api/index.js +5 -0
- package/dist/api/routes/application.js +39 -13
- package/dist/api/routes/index.js +61 -56
- package/dist/api/routes/public/index.js +6 -9
- package/dist/api/routes/public/queries.js +1 -1
- package/dist/api/routes/public/rows.js +1 -1
- package/dist/api/routes/public/tables.js +3 -3
- package/dist/api/routes/public/users.js +1 -1
- package/dist/api/routes/row.js +43 -17
- package/dist/api/routes/static.js +40 -13
- package/dist/api/routes/tests/utilities/TestFunctions.js +75 -33
- package/dist/app.js +8 -4
- package/dist/automations/actions.js +3 -0
- package/dist/automations/automationUtils.js +10 -0
- package/dist/automations/steps/createRow.js +12 -12
- package/dist/automations/steps/deleteRow.js +13 -16
- package/dist/automations/steps/loop.js +51 -0
- package/dist/automations/tests/utilities/index.js +13 -11
- package/dist/automations/utils.js +187 -133
- package/dist/constants/index.js +5 -0
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +2 -3
- package/dist/index.js +4 -0
- package/dist/integrations/base/sql.js +2 -2
- package/dist/integrations/base/sqlTable.js +2 -2
- package/dist/integrations/googlesheets.js +1 -1
- package/dist/integrations/index.js +4 -0
- package/dist/integrations/microsoftSqlServer.js +8 -8
- package/dist/integrations/mysql.js +9 -9
- package/dist/integrations/oracle.js +7 -7
- package/dist/integrations/postgres.js +7 -7
- package/dist/integrations/queries/sql.js +2 -2
- package/dist/integrations/redis.js +158 -0
- package/dist/integrations/rest.js +1 -1
- package/dist/middleware/authorized.js +51 -51
- package/dist/middleware/currentapp.js +15 -1
- package/dist/migrations/functions/appUrls.js +1 -1
- package/dist/migrations/functions/developerQuota.js +49 -0
- package/dist/migrations/functions/publishedAppsQuota.js +47 -0
- package/dist/migrations/functions/quotas1.js +6 -2
- package/dist/migrations/functions/usageQuotas/index.js +0 -4
- package/dist/migrations/functions/usageQuotas/syncApps.js +4 -7
- package/dist/migrations/functions/usageQuotas/syncDevelopers.js +24 -0
- package/dist/migrations/functions/usageQuotas/syncPublishedApps.js +26 -0
- package/dist/migrations/functions/usageQuotas/syncRows.js +5 -8
- package/dist/migrations/index.js +17 -1
- package/dist/package.json +14 -8
- package/dist/threads/automation.js +149 -27
- package/dist/threads/index.js +36 -10
- package/dist/threads/utils.js +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/utilities/queue/inMemoryQueue.js +6 -1
- package/nodemon.json +1 -1
- package/package.json +15 -9
- package/scripts/dev/manage.js +2 -0
- package/src/api/controllers/{application.js → application.ts} +118 -51
- package/src/api/controllers/deploy/{index.js → index.ts} +53 -29
- package/src/api/controllers/public/applications.ts +2 -2
- package/src/api/controllers/public/queries.ts +1 -1
- package/src/api/controllers/public/rows.ts +1 -1
- package/src/api/controllers/query/{index.js → index.ts} +51 -48
- package/src/api/controllers/row/ExternalRequest.ts +1 -1
- package/src/api/controllers/row/{index.js → index.ts} +24 -17
- package/src/api/controllers/row/internal.js +2 -1
- package/src/api/controllers/row/utils.js +4 -1
- package/src/api/controllers/static/templates/BudibaseApp.svelte +3 -0
- package/src/api/controllers/table/bulkFormula.js +1 -1
- package/src/api/controllers/table/{internal.js → internal.ts} +30 -26
- package/src/api/controllers/table/{utils.js → utils.ts} +86 -69
- package/src/api/index.js +5 -0
- package/src/api/routes/{application.js → application.ts} +8 -14
- package/src/api/routes/index.ts +60 -0
- package/src/api/routes/public/index.ts +1 -4
- package/src/api/routes/{row.js → row.ts} +7 -15
- package/src/api/routes/{static.js → static.ts} +11 -11
- package/src/api/routes/tests/misc.spec.js +39 -37
- package/src/api/routes/tests/utilities/{TestFunctions.js → TestFunctions.ts} +57 -33
- package/src/app.ts +1 -2
- package/src/automations/actions.js +3 -0
- package/src/automations/automationUtils.js +12 -0
- package/src/automations/steps/{createRow.js → createRow.ts} +9 -15
- package/src/automations/steps/{deleteRow.js → deleteRow.ts} +10 -16
- package/src/automations/steps/loop.js +50 -0
- package/src/automations/tests/automation.spec.js +0 -1
- package/src/automations/tests/{createRow.spec.js → createRow.spec.ts} +4 -15
- package/src/automations/tests/{deleteRow.spec.js → deleteRow.spec.ts} +3 -5
- package/src/automations/tests/utilities/index.js +12 -10
- package/src/automations/{utils.js → utils.ts} +39 -28
- package/src/constants/index.js +6 -0
- package/src/definitions/common.ts +1 -0
- package/src/definitions/datasource.ts +1 -0
- package/src/environment.js +2 -3
- package/src/index.ts +3 -0
- package/src/integrations/index.ts +4 -0
- package/src/integrations/redis.ts +152 -0
- package/src/integrations/tests/redis.spec.js +60 -0
- package/src/middleware/{authorized.js → authorized.ts} +20 -14
- package/src/middleware/currentapp.js +16 -1
- package/src/middleware/tests/currentapp.spec.js +8 -4
- package/src/migrations/functions/developerQuota.ts +15 -0
- package/src/migrations/functions/publishedAppsQuota.ts +13 -0
- package/src/migrations/functions/tests/quotas1.spec.js +0 -2
- package/src/migrations/functions/usageQuotas/index.ts +0 -5
- package/src/migrations/functions/usageQuotas/syncApps.ts +3 -6
- package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
- package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
- package/src/migrations/functions/usageQuotas/syncRows.ts +3 -6
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts +34 -0
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +40 -0
- package/src/migrations/index.ts +13 -1
- package/src/threads/automation.js +196 -34
- package/src/threads/{index.js → index.ts} +18 -14
- package/src/threads/utils.js +1 -0
- package/src/utilities/queue/inMemoryQueue.js +7 -1
- package/tsconfig.build.json +10 -0
- package/tsconfig.json +2 -2
- package/builder/assets/index.68a7f4e3.css +0 -6
- package/builder/assets/index.8d4a5b33.js +0 -1291
- package/coverage/lcov-report/api/controllers/application.js.html +0 -1436
- package/coverage/lcov-report/api/controllers/query/index.js.html +0 -713
- package/coverage/lcov-report/api/controllers/row/index.js.html +0 -524
- package/coverage/lcov-report/api/controllers/table/internal.js.html +0 -620
- package/coverage/lcov-report/api/controllers/table/utils.js.html +0 -1331
- package/coverage/lcov-report/api/routes/application.js.html +0 -179
- package/coverage/lcov-report/api/routes/index.js.html +0 -266
- package/coverage/lcov-report/api/routes/row.js.html +0 -908
- package/coverage/lcov-report/automations/steps/createRow.js.html +0 -380
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +0 -347
- package/coverage/lcov-report/automations/utils.js.html +0 -665
- package/coverage/lcov-report/middleware/authorized.js.html +0 -458
- package/coverage/lcov-report/middleware/usageQuota.js.html +0 -572
- package/coverage/lcov-report/threads/index.js.html +0 -296
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
- package/dist/middleware/usageQuota.js +0 -154
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/utilities/usageQuota/index.js +0 -86
- package/src/api/routes/index.js +0 -62
- package/src/middleware/tests/usageQuota.spec.js +0 -120
- package/src/middleware/usageQuota.js +0 -164
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -41
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -45
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
- package/src/utilities/usageQuota/index.js +0 -93
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,15 +31,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
35
|
exports.destroy = exports.update = exports.read = exports.create = exports.search = void 0;
|
|
16
36
|
const { getAllApps } = require("@budibase/backend-core/db");
|
|
17
37
|
const { updateAppId } = require("@budibase/backend-core/context");
|
|
18
38
|
const utils_1 = require("./utils");
|
|
19
|
-
const
|
|
39
|
+
const controller = __importStar(require("../application"));
|
|
20
40
|
function fixAppID(app, params) {
|
|
21
41
|
if (!params) {
|
|
22
42
|
return app;
|
|
@@ -31,14 +51,14 @@ function setResponseApp(ctx) {
|
|
|
31
51
|
if (ctx.body && ctx.body.appId && (!ctx.params || !ctx.params.appId)) {
|
|
32
52
|
ctx.params = { appId: ctx.body.appId };
|
|
33
53
|
}
|
|
34
|
-
yield
|
|
54
|
+
yield controller.fetchAppPackage(ctx);
|
|
35
55
|
});
|
|
36
56
|
}
|
|
37
57
|
function search(ctx, next) {
|
|
38
58
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
59
|
const { name } = ctx.request.body;
|
|
40
60
|
const apps = yield getAllApps({ all: true });
|
|
41
|
-
ctx.body = utils_1.search(apps, name);
|
|
61
|
+
ctx.body = (0, utils_1.search)(apps, name);
|
|
42
62
|
yield next();
|
|
43
63
|
});
|
|
44
64
|
}
|
|
@@ -48,7 +68,7 @@ function create(ctx, next) {
|
|
|
48
68
|
if (!ctx.request.body || !ctx.request.body.useTemplate) {
|
|
49
69
|
ctx.request.body = Object.assign({ useTemplate: false }, ctx.request.body);
|
|
50
70
|
}
|
|
51
|
-
yield
|
|
71
|
+
yield controller.create(ctx);
|
|
52
72
|
yield setResponseApp(ctx);
|
|
53
73
|
yield next();
|
|
54
74
|
});
|
|
@@ -66,7 +86,7 @@ function update(ctx, next) {
|
|
|
66
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
87
|
ctx.request.body = fixAppID(ctx.request.body, ctx.params);
|
|
68
88
|
updateAppId(ctx.params.appId);
|
|
69
|
-
yield
|
|
89
|
+
yield controller.update(ctx);
|
|
70
90
|
yield setResponseApp(ctx);
|
|
71
91
|
yield next();
|
|
72
92
|
});
|
|
@@ -78,7 +98,7 @@ function destroy(ctx, next) {
|
|
|
78
98
|
// get the app before deleting it
|
|
79
99
|
yield setResponseApp(ctx);
|
|
80
100
|
const body = ctx.body;
|
|
81
|
-
yield
|
|
101
|
+
yield controller.destroy(ctx);
|
|
82
102
|
// overwrite the body again
|
|
83
103
|
ctx.body = body;
|
|
84
104
|
yield next();
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,18 +31,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
35
|
exports.execute = exports.search = void 0;
|
|
16
36
|
const utils_1 = require("./utils");
|
|
17
|
-
const
|
|
37
|
+
const queryController = __importStar(require("../query"));
|
|
18
38
|
function search(ctx, next) {
|
|
19
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
yield
|
|
40
|
+
yield queryController.fetch(ctx);
|
|
21
41
|
const { name } = ctx.request.body;
|
|
22
|
-
ctx.body = utils_1.search(ctx.body, name);
|
|
42
|
+
ctx.body = (0, utils_1.search)(ctx.body, name);
|
|
23
43
|
yield next();
|
|
24
44
|
});
|
|
25
45
|
}
|
|
@@ -27,7 +47,7 @@ exports.search = search;
|
|
|
27
47
|
function execute(ctx, next) {
|
|
28
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
49
|
// don't wrap this, already returns "data"
|
|
30
|
-
yield
|
|
50
|
+
yield queryController.executeV2(ctx);
|
|
31
51
|
yield next();
|
|
32
52
|
});
|
|
33
53
|
}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,12 +31,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
35
|
exports.destroy = exports.update = exports.read = exports.create = exports.search = void 0;
|
|
16
|
-
const
|
|
36
|
+
const rowController = __importStar(require("../row"));
|
|
17
37
|
const utils_1 = require("./utils");
|
|
18
38
|
const utilities_1 = require("../../../utilities");
|
|
19
39
|
// makes sure that the user doesn't need to pass in the type, tableId or _id params for
|
|
@@ -44,12 +64,12 @@ function search(ctx, next) {
|
|
|
44
64
|
sort: sort.column,
|
|
45
65
|
sortType: sort.type,
|
|
46
66
|
sortOrder: sort.order,
|
|
47
|
-
bookmark: utilities_1.convertBookmark(bookmark),
|
|
67
|
+
bookmark: (0, utilities_1.convertBookmark)(bookmark),
|
|
48
68
|
paginate,
|
|
49
69
|
limit,
|
|
50
70
|
query,
|
|
51
71
|
};
|
|
52
|
-
yield
|
|
72
|
+
yield rowController.search(ctx);
|
|
53
73
|
yield next();
|
|
54
74
|
});
|
|
55
75
|
}
|
|
@@ -57,22 +77,22 @@ exports.search = search;
|
|
|
57
77
|
function create(ctx, next) {
|
|
58
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
79
|
ctx.request.body = fixRow(ctx.request.body, ctx.params);
|
|
60
|
-
yield
|
|
80
|
+
yield rowController.save(ctx);
|
|
61
81
|
yield next();
|
|
62
82
|
});
|
|
63
83
|
}
|
|
64
84
|
exports.create = create;
|
|
65
85
|
function read(ctx, next) {
|
|
66
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
yield
|
|
87
|
+
yield rowController.fetchEnrichedRow(ctx);
|
|
68
88
|
yield next();
|
|
69
89
|
});
|
|
70
90
|
}
|
|
71
91
|
exports.read = read;
|
|
72
92
|
function update(ctx, next) {
|
|
73
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
ctx.request.body = yield utils_1.addRev(fixRow(ctx.request.body, ctx.params));
|
|
75
|
-
yield
|
|
94
|
+
ctx.request.body = yield (0, utils_1.addRev)(fixRow(ctx.request.body, ctx.params));
|
|
95
|
+
yield rowController.save(ctx);
|
|
76
96
|
yield next();
|
|
77
97
|
});
|
|
78
98
|
}
|
|
@@ -80,8 +100,8 @@ exports.update = update;
|
|
|
80
100
|
function destroy(ctx, next) {
|
|
81
101
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
102
|
// set the body as expected, with the _id and _rev fields
|
|
83
|
-
ctx.request.body = yield utils_1.addRev(fixRow({ _id: ctx.params.rowId }, ctx.params));
|
|
84
|
-
yield
|
|
103
|
+
ctx.request.body = yield (0, utils_1.addRev)(fixRow({ _id: ctx.params.rowId }, ctx.params));
|
|
104
|
+
yield rowController.destroy(ctx);
|
|
85
105
|
// destroy controller doesn't currently return the row as the body, need to adjust this
|
|
86
106
|
// in the public API to be correct
|
|
87
107
|
ctx.body = ctx.row;
|
|
@@ -31,7 +31,7 @@ function search(ctx, next) {
|
|
|
31
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
32
|
const { name } = ctx.request.body;
|
|
33
33
|
yield table_1.default.fetch(ctx);
|
|
34
|
-
ctx.body = utils_1.search(ctx.body, name);
|
|
34
|
+
ctx.body = (0, utils_1.search)(ctx.body, name);
|
|
35
35
|
yield next();
|
|
36
36
|
});
|
|
37
37
|
}
|
|
@@ -52,7 +52,7 @@ function read(ctx, next) {
|
|
|
52
52
|
exports.read = read;
|
|
53
53
|
function update(ctx, next) {
|
|
54
54
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
ctx.request.body = yield utils_1.addRev(fixTable(ctx.request.body, ctx.params), ctx.params.tableId);
|
|
55
|
+
ctx.request.body = yield (0, utils_1.addRev)(fixTable(ctx.request.body, ctx.params), ctx.params.tableId);
|
|
56
56
|
yield table_1.default.save(ctx);
|
|
57
57
|
yield next();
|
|
58
58
|
});
|
|
@@ -41,20 +41,20 @@ function getUser(ctx, userId) {
|
|
|
41
41
|
else if (!((_a = ctx.params) === null || _a === void 0 ? void 0 : _a.userId)) {
|
|
42
42
|
throw "No user ID provided for getting";
|
|
43
43
|
}
|
|
44
|
-
return workerRequests_1.readGlobalUser(ctx);
|
|
44
|
+
return (0, workerRequests_1.readGlobalUser)(ctx);
|
|
45
45
|
}
|
|
46
46
|
function search(ctx, next) {
|
|
47
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
48
|
const { name } = ctx.request.body;
|
|
49
|
-
const users = yield workerRequests_1.allGlobalUsers(ctx);
|
|
50
|
-
ctx.body = utils_1.search(users, name, "email");
|
|
49
|
+
const users = yield (0, workerRequests_1.allGlobalUsers)(ctx);
|
|
50
|
+
ctx.body = (0, utils_1.search)(users, name, "email");
|
|
51
51
|
yield next();
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
exports.search = search;
|
|
55
55
|
function create(ctx, next) {
|
|
56
56
|
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
const response = yield workerRequests_1.saveGlobalUser(fixUser(ctx));
|
|
57
|
+
const response = yield (0, workerRequests_1.saveGlobalUser)(fixUser(ctx));
|
|
58
58
|
ctx.body = yield getUser(ctx, response._id);
|
|
59
59
|
yield next();
|
|
60
60
|
});
|
|
@@ -62,16 +62,16 @@ function create(ctx, next) {
|
|
|
62
62
|
exports.create = create;
|
|
63
63
|
function read(ctx, next) {
|
|
64
64
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
ctx.body = yield workerRequests_1.readGlobalUser(ctx);
|
|
65
|
+
ctx.body = yield (0, workerRequests_1.readGlobalUser)(ctx);
|
|
66
66
|
yield next();
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
exports.read = read;
|
|
70
70
|
function update(ctx, next) {
|
|
71
71
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const user = yield workerRequests_1.readGlobalUser(ctx);
|
|
72
|
+
const user = yield (0, workerRequests_1.readGlobalUser)(ctx);
|
|
73
73
|
ctx.request.body = Object.assign(Object.assign({}, ctx.request.body), { _rev: user._rev });
|
|
74
|
-
const response = yield workerRequests_1.saveGlobalUser(fixUser(ctx));
|
|
74
|
+
const response = yield (0, workerRequests_1.saveGlobalUser)(fixUser(ctx));
|
|
75
75
|
ctx.body = yield getUser(ctx, response._id);
|
|
76
76
|
yield next();
|
|
77
77
|
});
|
|
@@ -80,7 +80,7 @@ exports.update = update;
|
|
|
80
80
|
function destroy(ctx, next) {
|
|
81
81
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
82
|
const user = yield getUser(ctx);
|
|
83
|
-
yield workerRequests_1.deleteGlobalUser(ctx);
|
|
83
|
+
yield (0, workerRequests_1.deleteGlobalUser)(ctx);
|
|
84
84
|
ctx.body = user;
|
|
85
85
|
yield next();
|
|
86
86
|
});
|
|
@@ -14,7 +14,7 @@ const { getAppDB } = require("@budibase/backend-core/context");
|
|
|
14
14
|
const utils_1 = require("../../../integrations/utils");
|
|
15
15
|
function addRev(body, tableId) {
|
|
16
16
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
if (!body._id || (tableId && utils_1.isExternalTable(tableId))) {
|
|
17
|
+
if (!body._id || (tableId && (0, utils_1.isExternalTable)(tableId))) {
|
|
18
18
|
return body;
|
|
19
19
|
}
|
|
20
20
|
const db = getAppDB();
|
|
@@ -35,7 +35,7 @@ class RestImporter {
|
|
|
35
35
|
let queries = yield this.source.getQueries(datasourceId);
|
|
36
36
|
// validate queries
|
|
37
37
|
const errorQueries = [];
|
|
38
|
-
const schema = validation_1.queryValidation();
|
|
38
|
+
const schema = (0, validation_1.queryValidation)();
|
|
39
39
|
queries = queries
|
|
40
40
|
.filter(query => {
|
|
41
41
|
const validation = schema.validate(query);
|
|
@@ -46,11 +46,11 @@ class RestImporter {
|
|
|
46
46
|
return true;
|
|
47
47
|
})
|
|
48
48
|
.map(query => {
|
|
49
|
-
query._id = utils_1.generateQueryID(query.datasourceId);
|
|
49
|
+
query._id = (0, utils_1.generateQueryID)(query.datasourceId);
|
|
50
50
|
return query;
|
|
51
51
|
});
|
|
52
52
|
// persist queries
|
|
53
|
-
const db = context_1.getAppDB();
|
|
53
|
+
const db = (0, context_1.getAppDB)();
|
|
54
54
|
const response = yield db.bulkDocs(queries);
|
|
55
55
|
// create index to seperate queries and errors
|
|
56
56
|
const queryIndex = queries.reduce((acc, query) => {
|
|
@@ -8,41 +8,45 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.destroy = exports.executeV2 = exports.executeV1 = exports.preview = exports.find = exports.save = exports.import = exports.fetch = void 0;
|
|
13
|
+
const utils_1 = require("../../../db/utils");
|
|
14
|
+
const constants_1 = require("../../../constants");
|
|
15
|
+
const threads_1 = require("../../../threads");
|
|
16
|
+
const datasource_1 = require("../datasource");
|
|
17
|
+
const import_1 = require("./import");
|
|
18
|
+
const utils_2 = require("../../../threads/utils");
|
|
19
|
+
const environment_1 = require("../../../environment");
|
|
20
|
+
const context_1 = require("@budibase/backend-core/context");
|
|
21
|
+
const pro_1 = require("@budibase/pro");
|
|
22
|
+
const Runner = new threads_1.Thread(threads_1.ThreadType.QUERY, {
|
|
23
|
+
timeoutMs: environment_1.QUERY_THREAD_TIMEOUT || 10000,
|
|
21
24
|
});
|
|
22
25
|
// simple function to append "readable" to all read queries
|
|
23
26
|
function enrichQueries(input) {
|
|
24
27
|
const wasArray = Array.isArray(input);
|
|
25
28
|
const queries = wasArray ? input : [input];
|
|
26
29
|
for (let query of queries) {
|
|
27
|
-
if (query.queryVerb === BaseQueryVerbs.READ) {
|
|
30
|
+
if (query.queryVerb === constants_1.BaseQueryVerbs.READ) {
|
|
28
31
|
query.readable = true;
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
return wasArray ? queries : queries[0];
|
|
32
35
|
}
|
|
33
|
-
|
|
36
|
+
function fetch(ctx) {
|
|
34
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const db = getAppDB();
|
|
36
|
-
const body = yield db.allDocs(getQueryParams(null, {
|
|
38
|
+
const db = (0, context_1.getAppDB)();
|
|
39
|
+
const body = yield db.allDocs((0, utils_1.getQueryParams)(null, {
|
|
37
40
|
include_docs: true,
|
|
38
41
|
}));
|
|
39
|
-
ctx.body = enrichQueries(body.rows.map(row => row.doc));
|
|
42
|
+
ctx.body = enrichQueries(body.rows.map((row) => row.doc));
|
|
40
43
|
});
|
|
41
|
-
}
|
|
42
|
-
exports.
|
|
44
|
+
}
|
|
45
|
+
exports.fetch = fetch;
|
|
46
|
+
const _import = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
47
|
const body = ctx.request.body;
|
|
44
48
|
const data = body.data;
|
|
45
|
-
const importer = new RestImporter(data);
|
|
49
|
+
const importer = new import_1.RestImporter(data);
|
|
46
50
|
yield importer.init();
|
|
47
51
|
let datasourceId;
|
|
48
52
|
if (!body.datasourceId) {
|
|
@@ -60,7 +64,7 @@ exports.import = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
60
64
|
// save the datasource
|
|
61
65
|
const datasourceCtx = Object.assign({}, ctx);
|
|
62
66
|
datasourceCtx.request.body.datasource = datasource;
|
|
63
|
-
yield
|
|
67
|
+
yield (0, datasource_1.save)(datasourceCtx);
|
|
64
68
|
datasourceId = datasourceCtx.body.datasource._id;
|
|
65
69
|
}
|
|
66
70
|
else {
|
|
@@ -71,40 +75,43 @@ exports.import = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
71
75
|
ctx.body = Object.assign(Object.assign({}, importResult), { datasourceId });
|
|
72
76
|
ctx.status = 200;
|
|
73
77
|
});
|
|
74
|
-
exports.
|
|
78
|
+
exports.import = _import;
|
|
79
|
+
function save(ctx) {
|
|
75
80
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
const db = getAppDB();
|
|
81
|
+
const db = (0, context_1.getAppDB)();
|
|
77
82
|
const query = ctx.request.body;
|
|
78
83
|
if (!query._id) {
|
|
79
|
-
query._id = generateQueryID(query.datasourceId);
|
|
84
|
+
query._id = (0, utils_1.generateQueryID)(query.datasourceId);
|
|
80
85
|
}
|
|
81
86
|
const response = yield db.put(query);
|
|
82
87
|
query._rev = response.rev;
|
|
83
88
|
ctx.body = query;
|
|
84
89
|
ctx.message = `Query ${query.name} saved successfully.`;
|
|
85
90
|
});
|
|
86
|
-
}
|
|
87
|
-
exports.
|
|
91
|
+
}
|
|
92
|
+
exports.save = save;
|
|
93
|
+
function find(ctx) {
|
|
88
94
|
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
-
const db = getAppDB();
|
|
95
|
+
const db = (0, context_1.getAppDB)();
|
|
90
96
|
const query = enrichQueries(yield db.get(ctx.params.queryId));
|
|
91
97
|
// remove properties that could be dangerous in real app
|
|
92
|
-
if (isProdAppID(ctx.appId)) {
|
|
98
|
+
if ((0, utils_1.isProdAppID)(ctx.appId)) {
|
|
93
99
|
delete query.fields;
|
|
94
100
|
delete query.parameters;
|
|
95
101
|
}
|
|
96
102
|
ctx.body = query;
|
|
97
103
|
});
|
|
98
|
-
}
|
|
99
|
-
exports.
|
|
104
|
+
}
|
|
105
|
+
exports.find = find;
|
|
106
|
+
function preview(ctx) {
|
|
100
107
|
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
const db = getAppDB();
|
|
108
|
+
const db = (0, context_1.getAppDB)();
|
|
102
109
|
const datasource = yield db.get(ctx.request.body.datasourceId);
|
|
103
110
|
// preview may not have a queryId as it hasn't been saved, but if it does
|
|
104
111
|
// this stops dynamic variables from calling the same query
|
|
105
112
|
const { fields, parameters, queryVerb, transformer, queryId } = ctx.request.body;
|
|
106
113
|
try {
|
|
107
|
-
const
|
|
114
|
+
const runFn = () => Runner.run({
|
|
108
115
|
appId: ctx.appId,
|
|
109
116
|
datasource,
|
|
110
117
|
queryVerb,
|
|
@@ -113,6 +120,7 @@ exports.preview = function (ctx) {
|
|
|
113
120
|
transformer,
|
|
114
121
|
queryId,
|
|
115
122
|
});
|
|
123
|
+
const { rows, keys, info, extra } = yield pro_1.quotas.addQuery(runFn);
|
|
116
124
|
ctx.body = {
|
|
117
125
|
rows,
|
|
118
126
|
schemaFields: [...new Set(keys)],
|
|
@@ -124,10 +132,11 @@ exports.preview = function (ctx) {
|
|
|
124
132
|
ctx.throw(400, err);
|
|
125
133
|
}
|
|
126
134
|
});
|
|
127
|
-
}
|
|
135
|
+
}
|
|
136
|
+
exports.preview = preview;
|
|
128
137
|
function execute(ctx, opts = { rowsOnly: false }) {
|
|
129
138
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
const db = getAppDB();
|
|
139
|
+
const db = (0, context_1.getAppDB)();
|
|
131
140
|
const query = yield db.get(ctx.params.queryId);
|
|
132
141
|
const datasource = yield db.get(query.datasourceId);
|
|
133
142
|
const enrichedParameters = ctx.request.body.parameters || {};
|
|
@@ -141,7 +150,7 @@ function execute(ctx, opts = { rowsOnly: false }) {
|
|
|
141
150
|
}
|
|
142
151
|
// call the relevant CRUD method on the integration class
|
|
143
152
|
try {
|
|
144
|
-
const
|
|
153
|
+
const runFn = () => Runner.run({
|
|
145
154
|
appId: ctx.appId,
|
|
146
155
|
datasource,
|
|
147
156
|
queryVerb: query.queryVerb,
|
|
@@ -151,6 +160,7 @@ function execute(ctx, opts = { rowsOnly: false }) {
|
|
|
151
160
|
transformer: query.transformer,
|
|
152
161
|
queryId: ctx.params.queryId,
|
|
153
162
|
});
|
|
163
|
+
const { rows, pagination, extra } = yield pro_1.quotas.addQuery(runFn);
|
|
154
164
|
if (opts && opts.rowsOnly) {
|
|
155
165
|
ctx.body = rows;
|
|
156
166
|
}
|
|
@@ -163,36 +173,39 @@ function execute(ctx, opts = { rowsOnly: false }) {
|
|
|
163
173
|
}
|
|
164
174
|
});
|
|
165
175
|
}
|
|
166
|
-
|
|
176
|
+
function executeV1(ctx) {
|
|
167
177
|
return __awaiter(this, void 0, void 0, function* () {
|
|
168
178
|
return execute(ctx, { rowsOnly: true });
|
|
169
179
|
});
|
|
170
|
-
}
|
|
171
|
-
exports.
|
|
180
|
+
}
|
|
181
|
+
exports.executeV1 = executeV1;
|
|
182
|
+
function executeV2(ctx) {
|
|
172
183
|
return __awaiter(this, void 0, void 0, function* () {
|
|
173
184
|
return execute(ctx, { rowsOnly: false });
|
|
174
185
|
});
|
|
175
|
-
}
|
|
186
|
+
}
|
|
187
|
+
exports.executeV2 = executeV2;
|
|
176
188
|
const removeDynamicVariables = (queryId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
177
|
-
const db = getAppDB();
|
|
189
|
+
const db = (0, context_1.getAppDB)();
|
|
178
190
|
const query = yield db.get(queryId);
|
|
179
191
|
const datasource = yield db.get(query.datasourceId);
|
|
180
192
|
const dynamicVariables = datasource.config.dynamicVariables;
|
|
181
193
|
if (dynamicVariables) {
|
|
182
194
|
// delete dynamic variables from the datasource
|
|
183
|
-
datasource.config.dynamicVariables = dynamicVariables.filter(dv => dv.queryId !== queryId);
|
|
195
|
+
datasource.config.dynamicVariables = dynamicVariables.filter((dv) => dv.queryId !== queryId);
|
|
184
196
|
yield db.put(datasource);
|
|
185
197
|
// invalidate the deleted variables
|
|
186
|
-
const variablesToDelete = dynamicVariables.filter(dv => dv.queryId === queryId);
|
|
187
|
-
yield invalidateDynamicVariables(variablesToDelete);
|
|
198
|
+
const variablesToDelete = dynamicVariables.filter((dv) => dv.queryId === queryId);
|
|
199
|
+
yield (0, utils_2.invalidateDynamicVariables)(variablesToDelete);
|
|
188
200
|
}
|
|
189
201
|
});
|
|
190
|
-
|
|
202
|
+
function destroy(ctx) {
|
|
191
203
|
return __awaiter(this, void 0, void 0, function* () {
|
|
192
|
-
const db = getAppDB();
|
|
204
|
+
const db = (0, context_1.getAppDB)();
|
|
193
205
|
yield removeDynamicVariables(ctx.params.queryId);
|
|
194
206
|
yield db.remove(ctx.params.queryId, ctx.params.revId);
|
|
195
207
|
ctx.message = `Query deleted.`;
|
|
196
208
|
ctx.status = 200;
|
|
197
209
|
});
|
|
198
|
-
}
|
|
210
|
+
}
|
|
211
|
+
exports.destroy = destroy;
|