Member/Ecology revamp.
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

This commit is contained in:
Jennie Robinson Faber 2026-04-14 09:25:09 +01:00
parent fc7ec52574
commit 59d6e97787
31 changed files with 1763 additions and 1010 deletions

View file

@ -2,23 +2,35 @@ import * as z from 'zod'
import WikiArticle from '../../../models/wikiArticle.js'
import { connectDB } from '../../../utils/mongoose.js'
const wikiTagsSchema = z.object({
tags: z.array(z.string())
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, wikiTagsSchema)
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()
await validateTagSlugs(body.tags)
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,
{ tags: body.tags },
update,
{ new: true }
)