import { defineEventHandler, readBody } from "h3"; export default defineEventHandler(async (event) => { const { email, password } = await readBody(event); try { const response = await useGraphqlMutation("login", { email, password }); if (response.errors.length) { throw new Error(response.errors[0]?.message); } if (!response.data.login) { throw new Error("Login failed: Invalid credentials"); } const { authToken, refreshToken, user } = response.data.login; await setUserSession(event, { user, secure: { authToken, refreshToken }, loggedInAt: new Date().toISOString(), }); return { success: true }; } catch (error) { const messages: Record = { invalid_email: "Courriel et/ou mot de passe invalide(s).", incorrect_password: "Courriel et/ou mot de passe invalide(s).", }; const message = error instanceof Error && messages[error.message] ? messages[error.message] : "Une erreur est survenue."; return { success: false, message }; } });