import { useValidatedBody, useValidatedParams, z, zh } from 'h3-zod'; import prisma from '~~/lib/prisma'; export default defineEventHandler(async (event) => { const user = await requireUserSession(event); if (user.user.role !== 'ADMIN') { throw createError({ status: 403, statusText: 'Not allowed!' }); } const { huntId } = await useValidatedParams( event, z.object({ huntId: zh.numAsString }) ); const { userId } = await useValidatedBody( event, z.object({ userId: z.int().gt(0) }) ); try { await prisma.huntMember.delete({ where: { memberId_huntId: { memberId: userId, huntId }, hunt: { OR: [ { creatorId: user.user.id }, { members: { some: { memberId: user.user.id } } } ] } }, select: { memberId: true } }); } catch (e) { console.error('Kick member from hunt', huntId, userId, user.user.id, e); throw createError({ status: 404, statusText: 'Not found!', cause: e }); } return { success: true }; });