fix: cache revalidation logic for language switcher

This commit is contained in:
Christel Westerberg
2024-06-12 14:39:02 +02:00
parent 603d100b5b
commit 030bac87bd
3 changed files with 29 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ import { Lang } from "@/constants/languages"
import { env } from "@/env/server"
import { internalServerError } from "@/server/errors/next"
import { affix as breadcrumbsAffix } from "@/server/routers/contentstack/breadcrumbs/utils"
import { languageSwitcherAffix } from "@/server/routers/contentstack/config/utils"
import {
generateRefsResponseTag,
@@ -67,6 +68,11 @@ export async function POST(request: NextRequest) {
const refsTag = generateRefsResponseTag(entry.locale, entry.uid)
const refTag = generateRefTag(entry.locale, content_type.uid, entry.uid)
const tag = generateTag(entry.locale, entry.uid)
const languageSwitcherTag = generateTag(
entry.locale,
entry.uid,
languageSwitcherAffix
)
console.info(`Revalidating refsTag: ${refsTag}`)
revalidateTag(refsTag)
@@ -77,6 +83,9 @@ export async function POST(request: NextRequest) {
console.info(`Revalidating tag: ${tag}`)
revalidateTag(tag)
console.info(`Revalidating language switcher tag: ${languageSwitcherTag}`)
revalidateTag(languageSwitcherTag)
if (entry.breadcrumbs) {
const breadcrumbsRefsTag = generateRefsResponseTag(
entry.locale,

View File

@@ -39,6 +39,7 @@ import {
validateHeaderConfigSchema,
validateLanguageSwitcherData,
} from "./output"
import { languageSwitcherAffix } from "./utils"
import {
LanguageSwitcherData,
@@ -144,6 +145,18 @@ export const configQueryRouter = router({
languageSwitcher: contentstackProcedure.query(async ({ ctx }) => {
const variables = { uid: ctx.uid, locale: ctx.lang }
let urls: LanguageSwitcherData
const tagsDaDeEn = [
generateTag(Lang.da, ctx.uid, languageSwitcherAffix),
generateTag(Lang.de, ctx.uid, languageSwitcherAffix),
generateTag(Lang.en, ctx.uid, languageSwitcherAffix),
]
const tagsFiNoSv = [
generateTag(Lang.fi, ctx.uid, languageSwitcherAffix),
generateTag(Lang.no, ctx.uid, languageSwitcherAffix),
generateTag(Lang.sv, ctx.uid, languageSwitcherAffix),
]
switch (ctx.contentType) {
case PageTypeEnum.accountPage:
const accountPageRes = await batchRequest<LanguageSwitcherQueryDataRaw>(
@@ -151,10 +164,12 @@ export const configQueryRouter = router({
{
document: GetDaDeEnUrlsAccountPage,
variables,
tags: tagsDaDeEn,
},
{
document: GetFiNoSvUrlsAccountPage,
variables,
tags: tagsFiNoSv,
},
]
)
@@ -184,10 +199,12 @@ export const configQueryRouter = router({
{
document: GetDaDeEnUrlsLoyaltyPage,
variables,
tags: tagsDaDeEn,
},
{
document: GetFiNoSvUrlsLoyaltyPage,
variables,
tags: tagsFiNoSv,
},
]
)
@@ -222,10 +239,12 @@ export const configQueryRouter = router({
{
document: GetDaDeEnUrlsCurrentBlocksPage,
variables,
tags: tagsDaDeEn,
},
{
document: GetFiNoSvUrlsCurrentBlocksPage,
variables,
tags: tagsFiNoSv,
},
])

View File

@@ -0,0 +1 @@
export const languageSwitcherAffix = "languageSwitcher"