cairo/lib/modules/projects/project.router.ts

25 lines
1 KiB
TypeScript
Raw Normal View History

2024-08-24 12:41:04 -06:00
import { VixpressRoute } from "@dunemask/vix";
import { contract } from "@dunemask/vix/express";
import { Router } from "express";
import ProjectController from "./project.controller";
import { ProjectContract } from "@lib/contracts/project.contracts";
import RouteGuard from "@lib/vix/RouteGuard";
export class ProjectRoute extends VixpressRoute {
async configureRoutes(router: Router) {
const jsonOpts = { limit: "20mb" };
const cBase = { json: jsonOpts, reqParams: ProjectContract.ProjectParams };
// Controllers
const projController = this.useController(ProjectController);
// Configuration
const projCreate = { ...cBase, reqBody: ProjectContract.Create };
const projList = { reqParams: ProjectContract.ProjectParams, resBody: ProjectContract.ListProjects };
2024-08-24 12:41:04 -06:00
// Middleware
// Routes
router.post("/create", RouteGuard.MangeProjectsCreate, contract(projController.create, projCreate));
router.get("/list", RouteGuard.ManageProjectsRead, contract(projController.list, projList));
2024-08-24 12:41:04 -06:00
}
}