21 lines
615 B
TypeScript
21 lines
615 B
TypeScript
import { useDb } from '~~/server/database/client';
|
|
import { participants } from '~~/server/database/schema';
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const slug = getRouterParam(event, 'slug')!;
|
|
await getPotOrThrow(slug);
|
|
|
|
const body = await readBody(event);
|
|
const name = typeof body?.name === 'string' ? body.name.trim() : '';
|
|
if (!name) {
|
|
throw createError({ statusCode: 400, statusMessage: 'name is required' });
|
|
}
|
|
|
|
const db = useDb(event);
|
|
const [participant] = await db
|
|
.insert(participants)
|
|
.values({ potSlug: slug, name })
|
|
.returning();
|
|
return participant;
|
|
});
|