1
0
Fork 0
mirror of synced 2024-09-27 23:01:51 +12:00
budibase/packages/worker/src/api/routes/admin/templates.js

38 lines
1.3 KiB
JavaScript
Raw Normal View History

const Router = require("@koa/router")
const controller = require("../../controllers/admin/templates")
2021-04-22 05:15:57 +12:00
const joiValidator = require("../../../middleware/joi-validator")
const Joi = require("joi")
const { TemplatePurpose, TemplateTypes } = require("../../../constants")
const adminOnly = require("../../../middleware/adminOnly")
const router = Router()
2021-04-22 05:15:57 +12:00
function buildTemplateSaveValidation() {
// prettier-ignore
return joiValidator.body(Joi.object({
_id: Joi.string().allow(null, ""),
_rev: Joi.string().allow(null, ""),
ownerId: Joi.string().allow(null, ""),
name: Joi.string().allow(null, ""),
contents: Joi.string().required(),
purpose: Joi.string().required().valid(...Object.values(TemplatePurpose)),
type: Joi.string().required().valid(...Object.values(TemplateTypes)),
}).required().unknown(true).optional())
}
router
2021-04-22 05:15:57 +12:00
.get("/api/admin/template/definitions", controller.definitions)
.post(
"/api/admin/template",
adminOnly,
buildTemplateSaveValidation(),
controller.save
)
2021-04-22 05:15:57 +12:00
.get("/api/admin/template", controller.fetch)
.get("/api/admin/template/:type", controller.fetchByType)
.get("/api/admin/template/:ownerId", controller.fetchByOwner)
.get("/api/admin/template/:id", controller.find)
.delete("/api/admin/template/:id/:rev", adminOnly, controller.destroy)
module.exports = router