import { storyQuerier } from "@server/dbHelpers";
import { chapterTransformer } from "@server/dbHelpers";
import isLoggedIn from "@server/middlewareButNotReally/isLoggedIn";
import { messages } from "@server/constants";

export default eventHandler(async (ev) => {
	isLoggedIn(ev);
	const s = await storyQuerier(ev);
	const hidden = s.chapters.some((a) => a.hidden);
	if (
		hidden &&
		ev.context.currentUser?._id !== s.author._id &&
		!ev.context.currentUser?.profile.isAdmin
	) {
		throw createError({
			statusCode: 403,
			message: messages[403],
		});
	}
	const story = s.toObject();

	for (let i = 0; i < story.chapters.length; i++) {
		story.chapters[i] = (await chapterTransformer(s, ev, i)).currentChapter;
	}
	return story;
});
