import { eq } from 'drizzle-orm' import { useDB, schema } from '../../utils/db.js' import { requireAdmin } from '../../utils/auth.js' export default defineEventHandler(async (event) => { requireAdmin(event) const body = await readBody(event) if (!body?.key || body?.data === undefined) { throw createError({ statusCode: 422, message: 'key 和 data 不能为空' }) } const db = useDB() const dataStr = typeof body.data === 'string' ? body.data : JSON.stringify(body.data) const now = new Date().toISOString() const result = db.update(schema.siteContent) .set({ data: dataStr, updatedAt: now, }) .where(eq(schema.siteContent.key, body.key)) .run() if (result.changes === 0) { db.insert(schema.siteContent) .values({ key: body.key, label: body.label || body.key, data: dataStr, updatedAt: now, }) .run() } return { success: true } })