import { VixpressRoute } from "@dunemask/vix"; import { contract } from "@dunemask/vix/express"; import RouteGuard from "@lib/vix/RouteGuard"; import { Router } from "express"; import AuthController from "./auth.controller"; import { AuthContract } from "@lib/contracts/auth.contracts"; import { ProjectContract } from "@lib/contracts/project.contracts"; export class AuthRoute extends VixpressRoute { async configureRoutes(router: Router) { const jsonOpts = { limit: "20mb" }; const cBase = { json: jsonOpts, reqParams: ProjectContract.ProjectParams }; // Controllers const authController = this.useController(AuthController); // Configuration const loginCreds = { ...cBase, reqBody: AuthContract.Login, resBody: AuthContract.LoginCredentials }; const credRes = { ...cBase, resBody: AuthContract.Credentials }; // Middleware // Routes router.get("/verify", RouteGuard.User, authController.verify); router.post("/login", contract(authController.login, loginCreds)); router.get("/credentials", RouteGuard.User, contract(authController.credentials, credRes)); } }