Files
graff-mate-server/src/services/auth/login.ts
T
2025-06-19 14:03:04 +05:00

37 lines
874 B
TypeScript

import { eq } from "drizzle-orm";
import db from "../../db";
import { tokensTable, managersTable } from "../../db/schema";
import { status } from "elysia";
import { generateToken } from "../../utils/generateToken";
export default async function login({
email,
password,
}: {
email: string;
password: string;
}) {
try {
const manager = await db.query.managersTable.findFirst({
where: eq(managersTable.email, email),
});
if (!manager || !Bun.password.verifySync(password, manager.password))
return status(401, { error: "Wrong credentials" });
const token = await generateToken(manager.id);
await db.insert(tokensTable).values({
token,
managerId: manager.id,
});
return {
token,
};
} catch (error) {
console.log((error as Error).message);
return status(500, "Internal Server Error");
}
}