Merged in fix/languageswitcher-cache (pull request #242)
bug: cache revalidation logic for language switcher Approved-by: Michael Zetterberg Approved-by: Simon.Emanuelsson
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
])
|
||||
|
||||
|
||||
1
server/routers/contentstack/config/utils.ts
Normal file
1
server/routers/contentstack/config/utils.ts
Normal file
@@ -0,0 +1 @@
|
||||
export const languageSwitcherAffix = "languageSwitcher"
|
||||
Reference in New Issue
Block a user