cairo/lib/modules/auth/auth.router.ts
Dunemask 0fc5f05b6a
Some checks failed
Deploy Edge / deploy-edge (push) Failing after 2s
S3 Repo Backup / s3-repo-backup (push) Failing after 2s
[INIT] Initial Project Structure
2024-08-24 12:41:04 -06:00

26 lines
1.1 KiB
TypeScript

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