38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
const Router = require("@koa/router")
|
|
const controller = require("../../controllers/global/groups")
|
|
const joiValidator = require("../../../middleware/joi-validator")
|
|
const adminOnly = require("../../../middleware/adminOnly")
|
|
const Joi = require("joi")
|
|
|
|
const router = Router()
|
|
|
|
function buildGroupSaveValidation() {
|
|
// prettier-ignore
|
|
return joiValidator.body(Joi.object({
|
|
_id: Joi.string().optional(),
|
|
_rev: Joi.string().optional(),
|
|
color: Joi.string().required(),
|
|
icon: Joi.string().required(),
|
|
name: Joi.string().required(),
|
|
role: Joi.string().optional(),
|
|
users: Joi.array().optional(),
|
|
apps: Joi.array().optional(),
|
|
roles: Joi.object().optional(),
|
|
createdAt: Joi.string().optional(),
|
|
updatedAt: Joi.string().optional(),
|
|
}).required())
|
|
}
|
|
|
|
router
|
|
.post(
|
|
"/api/global/groups",
|
|
adminOnly,
|
|
buildGroupSaveValidation(),
|
|
controller.save
|
|
)
|
|
.get("/api/global/groups", controller.fetch)
|
|
.delete("/api/global/groups/:id/:rev", adminOnly, controller.destroy)
|
|
.get("/api/global/groups/:id", adminOnly, controller.find)
|
|
|
|
module.exports = router
|