forked from BRETT/BRETT
19 lines
535 B
TypeScript
19 lines
535 B
TypeScript
import { z } from 'zod'
|
|
import { settings } from '../../db/schema'
|
|
|
|
const bodySchema = z.object({
|
|
message: z.string().trim().max(500),
|
|
})
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
await requirePermission(event, 'site.manage')
|
|
const { message } = await readValidatedBody(event, bodySchema.parse)
|
|
const db = useDb()
|
|
await db
|
|
.insert(settings)
|
|
.values({ key: 'motd', value: message })
|
|
.onDuplicateKeyUpdate({ set: { value: message } })
|
|
broadcastToAll({ type: 'motd', message })
|
|
return { message }
|
|
})
|