2021-01-07 01:28:51 +13:00
|
|
|
const Router = require("@koa/router")
|
|
|
|
const queryController = require("../controllers/query")
|
|
|
|
const authorized = require("../../middleware/authorized")
|
2021-01-12 10:01:21 +13:00
|
|
|
const {
|
|
|
|
PermissionLevels,
|
|
|
|
PermissionTypes,
|
2021-05-15 02:43:41 +12:00
|
|
|
BUILDER,
|
2022-01-11 08:33:00 +13:00
|
|
|
} = require("@budibase/backend-core/permissions")
|
2021-02-09 06:22:07 +13:00
|
|
|
const {
|
|
|
|
bodyResource,
|
|
|
|
bodySubResource,
|
|
|
|
paramResource,
|
|
|
|
} = require("../../middleware/resourceId")
|
2021-11-29 23:37:31 +13:00
|
|
|
const {
|
|
|
|
generateQueryPreviewValidation,
|
|
|
|
generateQueryValidation,
|
|
|
|
} = require("../controllers/query/validation")
|
2020-12-19 07:19:43 +13:00
|
|
|
|
2022-09-23 01:59:28 +12:00
|
|
|
const router = new Router()
|
2020-12-19 07:19:43 +13:00
|
|
|
|
2021-01-07 01:28:51 +13:00
|
|
|
router
|
|
|
|
.get("/api/queries", authorized(BUILDER), queryController.fetch)
|
2021-01-12 10:01:21 +13:00
|
|
|
.post(
|
|
|
|
"/api/queries",
|
2021-02-09 06:22:07 +13:00
|
|
|
bodySubResource("datasourceId", "_id"),
|
2021-01-12 10:01:21 +13:00
|
|
|
authorized(BUILDER),
|
|
|
|
generateQueryValidation(),
|
|
|
|
queryController.save
|
|
|
|
)
|
2021-11-29 23:37:31 +13:00
|
|
|
.post("/api/queries/import", authorized(BUILDER), queryController.import)
|
2021-01-12 10:01:21 +13:00
|
|
|
.post(
|
|
|
|
"/api/queries/preview",
|
2021-02-09 06:22:07 +13:00
|
|
|
bodyResource("datasourceId"),
|
2021-01-12 10:01:21 +13:00
|
|
|
authorized(BUILDER),
|
|
|
|
generateQueryPreviewValidation(),
|
|
|
|
queryController.preview
|
|
|
|
)
|
2021-02-06 05:45:23 +13:00
|
|
|
.get(
|
|
|
|
"/api/queries/:queryId",
|
2021-11-10 05:25:23 +13:00
|
|
|
paramResource("queryId"),
|
2021-02-06 05:45:23 +13:00
|
|
|
authorized(PermissionTypes.QUERY, PermissionLevels.READ),
|
|
|
|
queryController.find
|
|
|
|
)
|
2021-12-17 00:41:28 +13:00
|
|
|
// DEPRECATED - use new query endpoint for future work
|
2021-01-12 10:01:21 +13:00
|
|
|
.post(
|
|
|
|
"/api/queries/:queryId",
|
2021-02-09 06:22:07 +13:00
|
|
|
paramResource("queryId"),
|
2021-01-12 10:01:21 +13:00
|
|
|
authorized(PermissionTypes.QUERY, PermissionLevels.WRITE),
|
2021-12-17 00:41:28 +13:00
|
|
|
queryController.executeV1
|
|
|
|
)
|
|
|
|
.post(
|
|
|
|
"/api/v2/queries/:queryId",
|
|
|
|
paramResource("queryId"),
|
|
|
|
authorized(PermissionTypes.QUERY, PermissionLevels.WRITE),
|
|
|
|
queryController.executeV2
|
2021-01-12 10:01:21 +13:00
|
|
|
)
|
2021-01-13 06:45:43 +13:00
|
|
|
.delete(
|
|
|
|
"/api/queries/:queryId/:revId",
|
2021-02-09 06:22:07 +13:00
|
|
|
paramResource("queryId"),
|
2021-01-13 06:45:43 +13:00
|
|
|
authorized(BUILDER),
|
|
|
|
queryController.destroy
|
|
|
|
)
|
2020-12-19 07:19:43 +13:00
|
|
|
|
2021-01-07 01:28:51 +13:00
|
|
|
module.exports = router
|