18 行
774 B
JavaScript
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 [] } })(),
|
|
}
|
|
})
|