Reviewed-on: https://forgejo.dunemask.dev///elysium/cairo/pulls/1 Co-authored-by: Dunemask <dunemask@gmail.com> Co-committed-by: Dunemask <dunemask@gmail.com>
24 lines
1 KiB
TypeScript
24 lines
1 KiB
TypeScript
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 };
|
|
// Middleware
|
|
|
|
// Routes
|
|
router.post("/create", RouteGuard.MangeProjectsCreate, contract(projController.create, projCreate));
|
|
router.get("/list", RouteGuard.ManageProjectsRead, contract(projController.list, projList));
|
|
}
|
|
}
|