import type { H3Event, EventHandlerRequest } from "h3"; import type { Document } from "mongoose"; import { isFicmasHidden } from "~/lib/functions"; import { IStory } from "~/models/stories"; import { messages } from "../constants"; export default async function ( event: H3Event, story: IStory, ) { let ret: any = {}; let num: number = event.context.chapterIndex; if (story.ficmas != null) { if (isFicmasHidden(story)) { ret = { statusCode: 423, message: `TOP SECRET! This story is part of an ongoing challenge. You'll be able to read it after the challenge's reveal date.`, }; } } if ( story.chapters[num]?.hidden || (event.context.currentUser?._id !== story.author._id && !event.context.currentUser?.profile.isAdmin) ) { ret.statusCode = 403; ret.message = messages[403]; } return !!Object.keys(ret).length ? ret : null; }