18 lines
584 B
TypeScript
18 lines
584 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()
|
|
const [participant] = await db.insert(participants).values({ potSlug: slug, name }).returning()
|
|
return participant
|
|
})
|