cairo/lib/modules/auth/auth.router.ts

27 lines
1.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 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));
}
}