import {compare} from 'bcrypt';
import {generateSession} from "~/server/utils/generateSession";
import prisma from "~/lib/prisma";
import {EventHandlerRequest, H3Event} from "h3";
export default defineEventHandler(async (event: H3Event<EventHandlerRequest>) => {
const userExists = await prisma.user.count();
if (!userExists) {
throw createError({statusCode: 403, statusMessage: 'No users exist'});
}
const {email, password} = await readBody(event);
const user = await prisma.user.findUnique({
where: {email},
});
if (!user || !(await compare(password, user.password))) {
throw createError({statusCode: 401, statusMessage: 'Invalid credentials'});
}
await generateSession(user, event);
return {
id: user.id,
email: user.email,
name: user.name,
};
});