From 57c4148ba4325a1642bfaf8b5e7b043e63883178 Mon Sep 17 00:00:00 2001 From: Kush Patel <68998452+libkush@users.noreply.github.com> Date: Tue, 4 Feb 2025 20:21:38 +0530 Subject: [PATCH] feat: add /user/verify route --- src/routes/user/index.ts | 9 +++++++++ src/routes/user/routes.ts | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/routes/user/index.ts b/src/routes/user/index.ts index fc031e4..a6119d4 100644 --- a/src/routes/user/index.ts +++ b/src/routes/user/index.ts @@ -8,6 +8,7 @@ import { getUserById, promoteUser, updateUser, + verifyToken, } from "./routes.js"; import { Role, Prisma } from "@prisma/client"; import { checkRole, getCurrentUser } from "../../lib/auth-provider.js"; @@ -27,6 +28,14 @@ userRouter.openapi(getUser, async (ctx) => { return ctx.json(user, 200); }); +userRouter.openapi(verifyToken, async (ctx) => { + const _userId = getCurrentUser(ctx).userId; + if (!_userId) { + return ctx.text("Unverified token", 401); + } + return ctx.text("Token verified", 200); +}); + userRouter.openapi(getAllUsers, async (ctx) => { if (!checkRole([Role.ADMIN, Role.SUPER_ADMIN], ctx)) { return ctx.text("Forbidden", 403); diff --git a/src/routes/user/routes.ts b/src/routes/user/routes.ts index 18f0235..c70f591 100644 --- a/src/routes/user/routes.ts +++ b/src/routes/user/routes.ts @@ -26,6 +26,25 @@ export const getUser = createRoute({ }, }); +export const verifyToken = createRoute({ + method: "get", + path: "/verify", + tags: ["Users"], + security: [ + { + Bearer: [], + }, + ], + responses: { + 200: { + description: "Token verified.", + }, + 401: { + description: "Token absent or unverified (possibly expired).", + }, + }, +}); + export const getUserById = createRoute({ method: "get", path: "/{id}",