Create auth.ts route

This commit is contained in:
Mathias Wagner
2024-07-20 12:47:19 +02:00
parent f74b949f4c
commit a5eb2e26d0

35
src/routes/v1/auth.ts Normal file
View File

@ -0,0 +1,35 @@
import { Request, Response, Router } from "express";
import { validateSchema } from "@utils/error";
import { loginValidation, tokenValidation, verificationValidation } from "./validations/auth";
import { login, logout, verifySession } from "@controller/auth";
const app: Router = Router();
app.post("/login", async (req: Request, res: Response) => {
if (validateSchema(res, loginValidation, req.body)) return;
const session = await login(req.body, { ip: req.ip, userAgent: req.header("User-Agent") || "None" });
if (session?.code) return res.json(session);
res.header("Authorization", session?.token).json({ ...session, message: "Your session got successfully created" });
});
app.post("/verify", async (req: Request, res: Response) => {
if (validateSchema(res, verificationValidation, req.body)) return;
const session = await verifySession(req.body);
if (session) return res.json(session);
res.json({ message: "Your session got verified" });
});
app.post("/logout", async (req: Request, res: Response) => {
if (validateSchema(res, tokenValidation, req.body)) return;
const session = await logout(req.body.token);
if (session) return res.json(session);
res.json({ message: "Your session got deleted successfully" });
});
export default app;