ghostguild-org/server/api/admin/wiki/[id].patch.js
Jennie Robinson Faber 59d6e97787
Some checks failed
Test / vitest (push) Failing after 7m23s
Test / playwright (push) Has been skipped
Test / visual (push) Has been skipped
Test / Notify on failure (push) Successful in 2s
Member/Ecology revamp.
2026-04-14 09:25:09 +01:00

42 lines
1,016 B
JavaScript

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
})