import { defineEventHandler, readBody } from "h3"; export default defineEventHandler(async (event) => { const { userId } = await readBody(event); try { const currentSession = await getUserSession(event); if (!currentSession?.user) { throw new Error("Authentication requise"); } const response = await useGraphqlMutation("userSwitchTo", { userId }); if (response.errors?.length) { throw new Error(response.errors[0]?.message); } if (!response.data.userSwitchTo) { throw new Error("Le changement d'utilisateur a échoué"); } const { authToken, refreshToken, user } = response.data.userSwitchTo; await setUserSession(event, { user, secure: { authToken, refreshToken }, loggedInAt: new Date().toISOString(), switchedBy: currentSession.user.id, }); return { success: true }; } catch (error) { const message = error instanceof Error ? error.message : "Le changement d'utilisateur a échoué"; return { success: false, message }; } });