36 lines
1.0 KiB
TypeScript

import { usePrisma } from "../../../../utils/prisma";
/** POST /api/games/challenge/[id]/live-toggle — toggle isLive flag */
export default defineEventHandler(async (event) => {
const user = await requireUser(event);
const id = getRouterParam(event, "id");
if (!id) throw createError({ statusCode: 400, message: "id fehlt" });
const db = usePrisma();
const challenge = await db.gameChallenge.findUnique({
where: { id },
select: {
challengerId: true,
opponentId: true,
isLive: true,
status: true,
},
});
if (!challenge)
throw createError({ statusCode: 404, message: "Challenge nicht gefunden" });
// Only participants can toggle
if (challenge.challengerId !== user.id && challenge.opponentId !== user.id) {
throw createError({ statusCode: 403, message: "Nicht berechtigt" });
}
const updated = await db.gameChallenge.update({
where: { id },
data: { isLive: !challenge.isLive },
select: { isLive: true },
});
return { isLive: updated.isLive };
});