1
0
Fork 0
mirror of synced 2024-09-21 20:01:32 +12:00
budibase/packages/server/src/api/routes/query.ts

63 lines
1.6 KiB
TypeScript
Raw Normal View History

import Router from "@koa/router"
import * as queryController from "../controllers/query"
import authorized from "../../middleware/authorized"
import { permissions } from "@budibase/backend-core"
import {
bodyResource,
bodySubResource,
paramResource,
} from "../../middleware/resourceId"
import {
generateQueryValidation,
generateQueryPreviewValidation,
} from "../controllers/query/validation"
2023-11-21 09:52:29 +13:00
const { BUILDER, PermissionType, PermissionLevel } = permissions
2020-12-19 07:19:43 +13:00
const router: 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",
bodySubResource("datasourceId", "_id"),
2021-01-12 10:01:21 +13:00
authorized(BUILDER),
generateQueryValidation(),
queryController.save
)
.post("/api/queries/import", authorized(BUILDER), queryController.import)
2021-01-12 10:01:21 +13:00
.post(
"/api/queries/preview",
bodyResource("datasourceId"),
2021-01-12 10:01:21 +13:00
authorized(BUILDER),
generateQueryPreviewValidation(),
queryController.preview
)
.get(
"/api/queries/:queryId",
paramResource("queryId"),
2022-11-18 03:59:18 +13:00
authorized(PermissionType.QUERY, PermissionLevel.READ),
queryController.find
)
// DEPRECATED - use new query endpoint for future work
2021-01-12 10:01:21 +13:00
.post(
"/api/queries/:queryId",
paramResource("queryId"),
2022-11-18 03:59:18 +13:00
authorized(PermissionType.QUERY, PermissionLevel.WRITE),
queryController.executeV1
)
.delete(
"/api/queries/:queryId/:revId",
paramResource("queryId"),
authorized(BUILDER),
queryController.destroy
)
.post(
"/api/v2/queries/:queryId",
paramResource("queryId"),
authorized(PermissionType.QUERY, PermissionLevel.WRITE),
queryController.executeV2 as any
)
2020-12-19 07:19:43 +13:00
export default router