import type { H3Event, EventHandlerRequest } from "h3"; import { Challenge } from "~/models/challenges/gen"; import { Story } from "~/models/stories"; export default async function (ev: H3Event) { const id = parseInt(getRouterParam(ev, "id") as string); const chapterIndex = ev.context.chapterIndex; if (isNaN(id) || isNaN(chapterIndex)) throw createError({ statusCode: 404, message: "Not found.", }); const story = await Story.findById(id) .populate("author", "username profile blocked") .populate("coAuthor", "username profile") .populate("chapters.bands") .populate({ path: "ficmas", populate: { path: "wisher", select: "_id username" }, }) .populate({ path: "challenge", model: Challenge }) .exec(); if (!story) throw createError({ statusCode: 404, message: "Not found." }); return story; }