canvas-backend/src/api/auth/auth.route.ts
2025-02-11 17:53:22 +06:00

47 lines
1.3 KiB
TypeScript

import Elysia, { t } from "elysia";
import { generateToken, getUserData, updateUser } from "./auth.controller";
import { verifyAuth } from "../../middlewares/auth.middlewares";
export const authRoute = new Elysia({
prefix: "/auth",
tags: ["Auth"],
detail: {
description: "Routes for managing users",
}
})
authRoute.get("/user/:userId", async ({ params: { userId } }) => await getUserData(userId), {
params: t.Object({
userId: t.String()
})
});
authRoute.post("/user/update/:userId", async ({ params: { userId }, body }) => await updateUser(userId, body), {
params: t.Object({
userId: t.String()
}),
body: t.Object({
paid_status: t.String(),
package_expire_date: t.String(),
})
});
authRoute.get("/generate-token/:userId", async (context) => await generateToken(context));
authRoute.get("/user/me", async ({ cookie }) => {
const authData = await verifyAuth(cookie);
if (authData.status !== 200) {
return authData;
}
else {
const userId: string | any = authData.userId;
const response = await getUserData(userId);
if (response?.status === 200) {
return { ...response.data, token: authData.token, status: 200, message: "User data fetched successfully" };
}
else {
return response;
}
}
})