1
0
Fork 0
mirror of synced 2024-09-28 07:11:40 +12:00
budibase/packages/worker/src/api/routes/admin/groups.js
Martin McKeaveney 4b5d302819 group CRUD
2021-04-19 16:16:46 +01:00

38 lines
1.1 KiB
JavaScript

const Router = require("@koa/router")
const controller = require("../../controllers/admin/groups")
const joiValidator = require("../../../middleware/joi-validator")
const { authenticated } = require("@budibase/auth")
const Joi = require("joi")
const router = Router()
function buildGroupSaveValidation() {
// prettier-ignore
return joiValidator.body(Joi.object({
_id: Joi.string().optional(),
_rev: Joi.string().optional(),
name: Joi.string().required(),
users: Joi.array().required(),
managers: Joi.array().required(),
roles: Joi.object({
default: Joi.string().optional(),
app: Joi.object()
.pattern(/.*/, Joi.string())
.required()
.unknown(true),
}).unknown(true).optional(),
}).required().unknown(true))
}
router
.post(
"/api/admin/groups",
buildGroupSaveValidation(),
authenticated,
controller.save
)
.delete("/api/admin/groups/:id", authenticated, controller.destroy)
.get("/api/admin/groups", authenticated, controller.fetch)
.get("/api/admin/groups/:id", authenticated, controller.find)
module.exports = router