diff --git a/lib/graphql/Query/ContentPage/ContentPage.graphql b/lib/graphql/Query/ContentPage/ContentPage.graphql index 63e311c31..20f910aa9 100644 --- a/lib/graphql/Query/ContentPage/ContentPage.graphql +++ b/lib/graphql/Query/ContentPage/ContentPage.graphql @@ -83,16 +83,6 @@ query GetContentPageRefs($locale: String!, $uid: String!) { } } } - blocks { - __typename - ...Accordion_ContentPageRefs - ...CardsGrid_ContentPageRefs - ...Content_ContentPageRefs - ...DynamicContent_ContentPageRefs - ...Shortcuts_ContentPageRefs - ...TextCols_ContentPageRef - ...UspGrid_ContentPageRefs - } sidebar { __typename ...ContentSidebar_ContentPageRefs @@ -107,6 +97,21 @@ query GetContentPageRefs($locale: String!, $uid: String!) { } } +query GetContentPageBlocksRefs($locale: String!, $uid: String!) { + content_page(locale: $locale, uid: $uid) { + blocks { + __typename + ...Accordion_ContentPageRefs + ...CardsGrid_ContentPageRefs + ...Content_ContentPageRefs + ...DynamicContent_ContentPageRefs + ...Shortcuts_ContentPageRefs + ...TextCols_ContentPageRef + ...UspGrid_ContentPageRefs + } + } +} + query GetDaDeEnUrlsContentPage($uid: String!) { de: content_page(locale: "de", uid: $uid) { url diff --git a/server/routers/contentstack/contentPage/utils.ts b/server/routers/contentstack/contentPage/utils.ts index cf46dd879..6e41c92e4 100644 --- a/server/routers/contentstack/contentPage/utils.ts +++ b/server/routers/contentstack/contentPage/utils.ts @@ -1,7 +1,10 @@ import { metrics } from "@opentelemetry/api" import { Lang } from "@/constants/languages" -import { GetContentPageRefs } from "@/lib/graphql/Query/ContentPage/ContentPage.graphql" +import { + GetContentPageBlocksRefs, + GetContentPageRefs, +} from "@/lib/graphql/Query/ContentPage/ContentPage.graphql" import { request } from "@/lib/graphql/request" import { notFound } from "@/server/errors/trpc" @@ -41,18 +44,30 @@ export async function fetchContentPageRefs(lang: Lang, uid: string) { query: { lang, uid }, }) ) - const refsResponse = await request( - GetContentPageRefs, - { locale: lang, uid }, - { - cache: "force-cache", - next: { - tags: [generateTag(lang, uid)], - }, - } - ) - if (!refsResponse.data) { - const notFoundError = notFound(refsResponse) + const [mainRefsResponse, blockRefsResponse] = await Promise.all([ + request( + GetContentPageRefs, + { locale: lang, uid }, + { + cache: "force-cache", + next: { + tags: [generateTag(lang, uid)], + }, + } + ), + request( + GetContentPageBlocksRefs, + { locale: lang, uid }, + { + cache: "force-cache", + next: { + tags: [generateTag(lang, uid)], + }, + } + ), + ]) + if (!mainRefsResponse.data) { + const notFoundError = notFound(mainRefsResponse) getContentPageRefsFailCounter.add(1, { lang, uid, @@ -73,8 +88,14 @@ export async function fetchContentPageRefs(lang: Lang, uid: string) { ) throw notFoundError } - - return refsResponse.data + const responseData = { + ...mainRefsResponse.data, + content_page: { + ...mainRefsResponse.data.content_page, + blocks: blockRefsResponse.data.content_page.blocks, + }, + } + return responseData } export function validateContentPageRefs(