18 行
774 B
JavaScript

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 id = Number(getRouterParam(event, 'id'))
const db = useDB()
const item = db.select().from(schema.stories).where(eq(schema.stories.id, id)).get()
if (!item) throw createError({ statusCode: 404, message: '故事不存在' })
return {
...item,
tags: (() => { try { return JSON.parse(item.tags || '[]') } catch { return [] } })(),
sections: (() => { try { return JSON.parse(item.sections || '[]') } catch { return [] } })(),
keyMoments: (() => { try { return JSON.parse(item.keyMoments || '[]') } catch { return [] } })(),
}
})