cairo/lib/modules/projects/project.router.ts
Dunemask a293eadbde
All checks were successful
S3 Repo Backup / s3-repo-backup (push) Successful in 45s
Deploy Edge / deploy-edge (push) Successful in 3m55s
[FEATURE] New Project Display (#1)
Reviewed-on: https://forgejo.dunemask.dev///elysium/cairo/pulls/1
Co-authored-by: Dunemask <dunemask@gmail.com>
Co-committed-by: Dunemask <dunemask@gmail.com>
2024-09-03 02:35:38 +00:00

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));
}
}