import * as z from 'zod' import WikiArticle from '../../../models/wikiArticle.js' import { connectDB } from '../../../utils/mongoose.js' const wikiUpdateSchema = z.object({ tags: z.array(z.string()).optional(), hidden: z.boolean().optional() }) export default defineEventHandler(async (event) => { await requireAdmin(event) const body = await validateBody(event, wikiUpdateSchema) const id = getRouterParam(event, 'id') if (body.tags === undefined && body.hidden === undefined) { throw createError({ statusCode: 400, statusMessage: 'Nothing to update' }) } await connectDB() const update = {} if (body.tags !== undefined) { await validateTagSlugs(body.tags) update.tags = body.tags } if (body.hidden !== undefined) { update.hidden = body.hidden } const article = await WikiArticle.findByIdAndUpdate( id, update, { new: true } ) if (!article) { throw createError({ statusCode: 404, statusMessage: 'Article not found' }) } return article })