import { checkUser, createLoginController } from "@/contexts/auth"; import { createIdentityController } from "@/contexts/auth/infrastructure/express/controllers/identity"; import Express from "express"; import passport from "passport"; export const authRouter = (appRouter: Express.Router) => { const authRoutes: Express.Router = Express.Router({ mergeParams: true }); //appRouter.use(registerMiddleware("isUser", isUser)); //appRouter.use(registerMiddleware("isAdmin", isAdmin)); authRoutes.post( "/login", passport.authenticate("local-email", { session: false }), (req: Express.Request, res: Express.Response, next: Express.NextFunction) => createLoginController(res.locals["context"]).execute(req, res, next) ); authRoutes.post("/logout", checkUser, (req: Express.Request, res: Express.Response) => { req.logout(function (err) { if (err) { return res.status(500).json(); } return res.status(200).json(); }); }); authRoutes.post("/register"); authRoutes.get( "/identity", checkUser, (req: Express.Request, res: Express.Response, next: Express.NextFunction) => createIdentityController(res.locals["context"]).execute(req, res, next) ); appRouter.use("/auth", authRoutes); };