import { SingleChapterResult } from "./types/slightlyDifferentStory"; import { IChapter } from "@models/stories/chapter"; import { IStory } from "@models/stories"; import { messages } from "@server/constants"; import { IUser } from "@models/user"; export const storyMiddleware = defineNuxtRouteMiddleware(async (to, from) => { const { getSession } = useAuth(); await getSession({ force: true }); const { data } = useAuth(); console.log("to n from", to, from, data); const { data: story, error } = await useApiFetch( to.path, ); if (error.value) { return showError(error.value); } else if (!story.value) { return showError({ statusCode: 404, message: messages[404] }); } console.log("fns", story, error); if (!data?.value?.user && story.value?.currentChapter.loggedInOnly) { return navigateTo("/login"); } }); export const storyEditMiddleware = defineNuxtRouteMiddleware( async (to, from) => { const { data: curU } = useAuth(); const rtr = useRoute(); const { data: storyInfo } = await useApiFetch< ({ chapters: (IChapter & { text: string })[] } & IStory) | null >(`/story/${rtr.params.id}/full`); if (!storyInfo.value) { return showError({ statusCode: 404, message: messages[404] }); } if ( curU.value?.user?._id !== (storyInfo.value?.author as IUser)._id && curU.value?.user?._id !== (storyInfo.value?.coAuthor as IUser)?._id ) { return showError({ statusCode: 403, message: messages[403], }); } }, );