27 lines
1.1 KiB
TypeScript
27 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));
|
||
|
}
|
||
|
}
|