import type { H3Event, EventHandlerRequest } from "h3"; import { Challenge } from "@models/challenges/gen"; import { Story } from "@models/stories"; import isIdNan from "@server/middlewareButNotReally/isIdNan"; export default async function (ev: H3Event) { const id = isIdNan(ev); 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 == null) throw createError({ statusCode: 404, message: "Not found." }); return story; }