37 lines
874 B
TypeScript
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");
|
|
}
|
|
}
|