import { Lang } from "@/constants/languages" import { batchEdgeRequest } from "@/lib/graphql/batchEdgeRequest" import { EntryByUrlBatch1, EntryByUrlBatch2, } 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 variables = { locale: lang, url } const response = await batchEdgeRequest([ { document: EntryByUrlBatch1, variables, }, { document: EntryByUrlBatch2, variables, }, ]) 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, } }