2021-04-19 22:34:07 +12:00
|
|
|
const Router = require("@koa/router")
|
2021-08-05 20:59:08 +12:00
|
|
|
const controller = require("../../controllers/global/workspaces")
|
2022-07-22 22:50:51 +12:00
|
|
|
const { joiValidator } = require("@budibase/backend-core/auth")
|
|
|
|
const { adminOnly } = require("@budibase/backend-core/auth")
|
2021-04-19 22:34:07 +12:00
|
|
|
const Joi = require("joi")
|
|
|
|
|
2022-09-23 01:59:28 +12:00
|
|
|
const router = new Router()
|
2021-04-19 22:34:07 +12:00
|
|
|
|
2021-08-05 20:59:08 +12:00
|
|
|
function buildWorkspaceSaveValidation() {
|
2021-04-19 22:34:07 +12:00
|
|
|
// prettier-ignore
|
|
|
|
return joiValidator.body(Joi.object({
|
2021-04-20 03:16:46 +12:00
|
|
|
_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()
|
2022-07-22 22:50:51 +12:00
|
|
|
.pattern(/.*/, Joi.string())
|
|
|
|
.required()
|
|
|
|
.unknown(true),
|
2021-04-20 03:16:46 +12:00
|
|
|
}).unknown(true).optional(),
|
|
|
|
}).required().unknown(true))
|
2021-04-19 22:34:07 +12:00
|
|
|
}
|
|
|
|
|
|
|
|
router
|
2021-05-20 02:09:57 +12:00
|
|
|
.post(
|
2021-08-05 20:59:08 +12:00
|
|
|
"/api/global/workspaces",
|
2021-05-20 02:09:57 +12:00
|
|
|
adminOnly,
|
2021-08-05 20:59:08 +12:00
|
|
|
buildWorkspaceSaveValidation(),
|
2021-05-20 02:09:57 +12:00
|
|
|
controller.save
|
|
|
|
)
|
2021-08-05 20:59:08 +12:00
|
|
|
.delete("/api/global/workspaces/:id", adminOnly, controller.destroy)
|
|
|
|
.get("/api/global/workspaces", controller.fetch)
|
|
|
|
.get("/api/global/workspaces/:id", controller.find)
|
2021-04-19 22:34:07 +12:00
|
|
|
|
|
|
|
module.exports = router
|