1
0
Fork 0
mirror of synced 2024-05-18 19:33:49 +12:00
budibase/packages/server/src/api/routes/query.js
2022-11-17 14:59:18 +00:00

65 lines
1.6 KiB
JavaScript

const Router = require("@koa/router")
const queryController = require("../controllers/query")
const authorized = require("../../middleware/authorized")
const {
PermissionLevel,
PermissionType,
BUILDER,
} = require("@budibase/backend-core/permissions")
const {
bodyResource,
bodySubResource,
paramResource,
} = require("../../middleware/resourceId")
const {
generateQueryPreviewValidation,
generateQueryValidation,
} = require("../controllers/query/validation")
const router = new Router()
router
.get("/api/queries", authorized(BUILDER), queryController.fetch)
.post(
"/api/queries",
bodySubResource("datasourceId", "_id"),
authorized(BUILDER),
generateQueryValidation(),
queryController.save
)
.post("/api/queries/import", authorized(BUILDER), queryController.import)
.post(
"/api/queries/preview",
bodyResource("datasourceId"),
authorized(BUILDER),
generateQueryPreviewValidation(),
queryController.preview
)
.get(
"/api/queries/:queryId",
paramResource("queryId"),
authorized(PermissionType.QUERY, PermissionLevel.READ),
queryController.find
)
// DEPRECATED - use new query endpoint for future work
.post(
"/api/queries/:queryId",
paramResource("queryId"),
authorized(PermissionType.QUERY, PermissionLevel.WRITE),
queryController.executeV1
)
.post(
"/api/v2/queries/:queryId",
paramResource("queryId"),
authorized(PermissionType.QUERY, PermissionLevel.WRITE),
queryController.executeV2
)
.delete(
"/api/queries/:queryId/:revId",
paramResource("queryId"),
authorized(BUILDER),
queryController.destroy
)
module.exports = router