diff --git a/app/api/web/revalidate/route.ts b/app/api/web/revalidate/route.ts index 5fd43a0b6..b1373eb5e 100644 --- a/app/api/web/revalidate/route.ts +++ b/app/api/web/revalidate/route.ts @@ -6,6 +6,7 @@ import { z } from "zod" import { Lang } from "@/constants/languages" import { env } from "@/env/server" import { internalServerError } from "@/server/errors/next" +import { affix as bookingwidgetAffix } from "@/server/routers/contentstack/bookingwidget/utils" import { affix as breadcrumbsAffix } from "@/server/routers/contentstack/breadcrumbs/utils" import { languageSwitcherAffix } from "@/server/routers/contentstack/languageSwitcher/utils" @@ -29,6 +30,11 @@ const validateJsonBody = z.object({ locale: z.nativeEnum(Lang), uid: z.string(), url: z.string().optional(), + page_settings: z + .object({ + hide_booking_widget: z.boolean(), + }) + .optional(), }), }), }) @@ -105,6 +111,17 @@ export async function POST(request: NextRequest) { revalidateTag(breadcrumbsTag) } + if (entry.page_settings?.hide_booking_widget) { + const bookingwidgetTag = generateTag( + entry.locale, + entry.uid, + bookingwidgetAffix + ) + + console.info(`Revalidating breadcrumbsTag: ${bookingwidgetTag}`) + revalidateTag(bookingwidgetTag) + } + return Response.json({ revalidated: true, now: Date.now() }) } catch (error) { console.error("Failed to revalidate tag(s)") diff --git a/server/routers/contentstack/base/query.ts b/server/routers/contentstack/base/query.ts index 27fb0368b..e8570e192 100644 --- a/server/routers/contentstack/base/query.ts +++ b/server/routers/contentstack/base/query.ts @@ -1,5 +1,4 @@ import { metrics } from "@opentelemetry/api" -import { ValueOf } from "next/dist/shared/lib/constants" import { GetContactConfig } from "@/lib/graphql/Query/ContactConfig.graphql" import { @@ -14,11 +13,7 @@ import { request } from "@/lib/graphql/request" import { notFound } from "@/server/errors/trpc" import { contentstackBaseProcedure, router } from "@/server/trpc" -import { - generateRefsResponseTag, - generateRefTag, - generateTag, -} from "@/utils/generateTag" +import { generateRefsResponseTag, generateTag } from "@/utils/generateTag" import { langInput } from "./input" import { @@ -33,8 +28,6 @@ import { validateHeaderConfigSchema, } from "./output" -import { ContentTypeEnum } from "@/types/requests/contentType" - const meter = metrics.getMeter("trpc.contentstack.base") // OpenTelemetry metrics: ContactConfig const getContactConfigCounter = meter.createCounter( diff --git a/server/routers/contentstack/bookingwidget/query.ts b/server/routers/contentstack/bookingwidget/query.ts index ee98b2f58..89f8d68b6 100644 --- a/server/routers/contentstack/bookingwidget/query.ts +++ b/server/routers/contentstack/bookingwidget/query.ts @@ -16,6 +16,7 @@ import { validateBookingWidgetToggleSchema, ValidateBookingWidgetToggleType, } from "./output" +import { affix as bookingwidgetAffix } from "./utils" import { ContentTypeEnum } from "@/types/requests/contentType" @@ -65,7 +66,7 @@ export const bookingwidgetQueryRouter = router({ }, { next: { - tags: [generateTag(lang, uid, "bookingwidget")], + tags: [generateTag(lang, uid, bookingwidgetAffix)], }, } ) diff --git a/server/routers/contentstack/bookingwidget/utils.ts b/server/routers/contentstack/bookingwidget/utils.ts new file mode 100644 index 000000000..af79363f0 --- /dev/null +++ b/server/routers/contentstack/bookingwidget/utils.ts @@ -0,0 +1 @@ +export const affix = "bookingwidget"