20 lines
564 B
TypeScript
20 lines
564 B
TypeScript
import { readBody, createError } from 'h3'
|
|
import { prisma } from '../../utils/db'
|
|
import { requireUser } from '../../utils/auth'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const user = await requireUser(event)
|
|
const body = await readBody<{ name?: string }>(event)
|
|
const name = body.name?.trim()
|
|
|
|
if (!name || name.length > 40) {
|
|
throw createError({ statusCode: 400, statusMessage: 'Invalid name' })
|
|
}
|
|
|
|
return prisma.user.update({
|
|
where: { id: user.id },
|
|
data: { name },
|
|
select: { id: true, email: true, name: true }
|
|
})
|
|
})
|