Files
wp-headless/wp-content/themes/moonshine/server/api/login.post.ts
Pascal Martineau 2b2a1c1ad6
Some checks failed
Deployment / wordpress (push) Successful in 6s
Deployment / nuxt (push) Has been cancelled
feat: Replace eslint => oxlint + oxfmt
2026-02-01 21:53:40 -05:00

22 lines
844 B
TypeScript

export default defineEventHandler(async (event) => {
try {
const variables = await readBody<AuthLoginForm>(event);
const { data } = await useGraphQLOperation(event, "AuthLogin", variables);
if (!data?.login) {
throw new Error("INVALID_LOGIN");
}
if (!(await handleLogin(event, data))) {
throw new Error("LOGIN_FAILED");
}
return { success: true, message: "Connexion réussie" };
} catch (error) {
const messages = {
INVALID_LOGIN: "Identifiants invalides. Veuillez réessayer.",
LOGIN_FAILED: "Une erreur est survenue lors de la connexion. Veuillez réessayer plus tard.",
};
const message =
error instanceof Error && error.message in messages ? error.message : "LOGIN_FAILED";
return { success: false, message: messages[message as keyof typeof messages] };
}
});