Files
graff-mate-server/src/services/auth/login.ts
T
2025-03-20 14:39:30 +05:00

37 lines
840 B
TypeScript

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