import { Lang } from "@/constants/languages" import { edgeRequest } from "@/lib/graphql/edgeRequest" import { ResolveEntryByUrl } from "@/lib/graphql/Query/ResolveEntry.graphql" import { internalServerError } from "@/server/errors/next" import { validateEntryResolveSchema } from "@/types/requests/entry" export async function resolve(url: string, lang = Lang.en) { const response = await edgeRequest( ResolveEntryByUrl, { locale: lang, url, }, { next: { revalidate: 3600, }, } ) const validatedData = validateEntryResolveSchema.safeParse(response.data) if (!validatedData.success) { throw internalServerError(validatedData.error) } for (const value of Object.values(validatedData.data)) { if (value.total) { const { content_type_uid, uid } = value.items[0].system return { contentType: content_type_uid, uid, } } } return { contentType: null, uid: null, } }