@intuitionrobotics/permissions
Version:
50 lines • 2.65 kB
JavaScript
// Hand-wired handler(fn) routes for the permissions lib.
import { Router } from "express";
import { handler, RemoteProxy, useMiddleware } from "@intuitionrobotics/thunderstorm/backend";
import { assert } from "./v1/permissions/assert.js";
import apis from "./v1/permissions/assign/apis.js";
import { appPermissions } from "./v1/permissions/assign/app-permissions.js";
import apis2 from "./v1/permissions/manage/apis.js";
import apis3 from "./v1/permissions/tags/apis.js";
import { userUrlsPermissions } from "./v1/permissions/user-urls-permissions.js";
import { registerExternalProject } from "./v1/register/register-external-project.js";
import { registerProject } from "./v1/register/register-project.js";
import { testPermissions } from "./v1/test/test-permissions.js";
import { userCfByShareGroups } from "./v1/user-custom-fields/user-cf-by-share-groups.js";
import { usersCfByShareGroups } from "./v1/user-custom-fields/users-cf-by-share-groups.js";
// `assign/apis.ts`, `manage/apis.ts`, `tags/apis.ts` default-export arrays of
// DB-API-generator CRUD routes. Each element carries its own .relativePath and
// .method, so iterate and mount with the route's own URL fragment.
const assign = Router();
for (const api of apis)
assign[api.method](`/${api.relativePath}`, api.handler);
assign.post("/app-permissions", handler(appPermissions));
const manage = Router();
for (const api of apis2)
manage[api.method](`/${api.relativePath}`, api.handler);
const tags = Router();
for (const api of apis3)
tags[api.method](`/${api.relativePath}`, api.handler);
const permissions = Router();
permissions.post("/assert", handler(assert));
permissions.use("/assign", assign);
permissions.use("/manage", manage);
permissions.use("/tags", tags);
permissions.post("/user-urls-permissions", handler(userUrlsPermissions));
const register = Router();
register.post("/register-external-project", handler(registerExternalProject));
register.get("/register-project", handler(registerProject));
const test = Router();
test.get("/test-permissions", handler(testPermissions));
const userCustomFields = Router();
userCustomFields.post("/user-cf-by-share-groups", handler(userCfByShareGroups));
// Gate preserved from the class's setMiddlewares(RemoteProxy.Middleware).
userCustomFields.post("/users-cf-by-share-groups", useMiddleware(RemoteProxy.Middleware), handler(usersCfByShareGroups));
const v1 = Router();
v1.use("/permissions", permissions);
v1.use("/register", register);
v1.use("/test", test);
v1.use("/user-custom-fields", userCustomFields);
export const permissionsRoutes = Router();
permissionsRoutes.use("/v1", v1);
//# sourceMappingURL=routes.js.map