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 { env } from "@/env/server"
|
||||||
import { internalServerError } from "@/server/errors/next"
|
import { internalServerError } from "@/server/errors/next"
|
||||||
import { affix as breadcrumbsAffix } from "@/server/routers/contentstack/breadcrumbs/utils"
|
import { affix as breadcrumbsAffix } from "@/server/routers/contentstack/breadcrumbs/utils"
|
||||||
|
import { languageSwitcherAffix } from "@/server/routers/contentstack/config/utils"
|
||||||
|
|
||||||
import {
|
import {
|
||||||
generateRefsResponseTag,
|
generateRefsResponseTag,
|
||||||
@@ -67,6 +68,11 @@ export async function POST(request: NextRequest) {
|
|||||||
const refsTag = generateRefsResponseTag(entry.locale, entry.uid)
|
const refsTag = generateRefsResponseTag(entry.locale, entry.uid)
|
||||||
const refTag = generateRefTag(entry.locale, content_type.uid, entry.uid)
|
const refTag = generateRefTag(entry.locale, content_type.uid, entry.uid)
|
||||||
const tag = generateTag(entry.locale, entry.uid)
|
const tag = generateTag(entry.locale, entry.uid)
|
||||||
|
const languageSwitcherTag = generateTag(
|
||||||
|
entry.locale,
|
||||||
|
entry.uid,
|
||||||
|
languageSwitcherAffix
|
||||||
|
)
|
||||||
|
|
||||||
console.info(`Revalidating refsTag: ${refsTag}`)
|
console.info(`Revalidating refsTag: ${refsTag}`)
|
||||||
revalidateTag(refsTag)
|
revalidateTag(refsTag)
|
||||||
@@ -77,6 +83,9 @@ export async function POST(request: NextRequest) {
|
|||||||
console.info(`Revalidating tag: ${tag}`)
|
console.info(`Revalidating tag: ${tag}`)
|
||||||
revalidateTag(tag)
|
revalidateTag(tag)
|
||||||
|
|
||||||
|
console.info(`Revalidating language switcher tag: ${languageSwitcherTag}`)
|
||||||
|
revalidateTag(languageSwitcherTag)
|
||||||
|
|
||||||
if (entry.breadcrumbs) {
|
if (entry.breadcrumbs) {
|
||||||
const breadcrumbsRefsTag = generateRefsResponseTag(
|
const breadcrumbsRefsTag = generateRefsResponseTag(
|
||||||
entry.locale,
|
entry.locale,
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import {
|
|||||||
validateHeaderConfigSchema,
|
validateHeaderConfigSchema,
|
||||||
validateLanguageSwitcherData,
|
validateLanguageSwitcherData,
|
||||||
} from "./output"
|
} from "./output"
|
||||||
|
import { languageSwitcherAffix } from "./utils"
|
||||||
|
|
||||||
import {
|
import {
|
||||||
LanguageSwitcherData,
|
LanguageSwitcherData,
|
||||||
@@ -144,6 +145,18 @@ export const configQueryRouter = router({
|
|||||||
languageSwitcher: contentstackProcedure.query(async ({ ctx }) => {
|
languageSwitcher: contentstackProcedure.query(async ({ ctx }) => {
|
||||||
const variables = { uid: ctx.uid, locale: ctx.lang }
|
const variables = { uid: ctx.uid, locale: ctx.lang }
|
||||||
let urls: LanguageSwitcherData
|
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) {
|
switch (ctx.contentType) {
|
||||||
case PageTypeEnum.accountPage:
|
case PageTypeEnum.accountPage:
|
||||||
const accountPageRes = await batchRequest<LanguageSwitcherQueryDataRaw>(
|
const accountPageRes = await batchRequest<LanguageSwitcherQueryDataRaw>(
|
||||||
@@ -151,10 +164,12 @@ export const configQueryRouter = router({
|
|||||||
{
|
{
|
||||||
document: GetDaDeEnUrlsAccountPage,
|
document: GetDaDeEnUrlsAccountPage,
|
||||||
variables,
|
variables,
|
||||||
|
tags: tagsDaDeEn,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
document: GetFiNoSvUrlsAccountPage,
|
document: GetFiNoSvUrlsAccountPage,
|
||||||
variables,
|
variables,
|
||||||
|
tags: tagsFiNoSv,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@@ -184,10 +199,12 @@ export const configQueryRouter = router({
|
|||||||
{
|
{
|
||||||
document: GetDaDeEnUrlsLoyaltyPage,
|
document: GetDaDeEnUrlsLoyaltyPage,
|
||||||
variables,
|
variables,
|
||||||
|
tags: tagsDaDeEn,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
document: GetFiNoSvUrlsLoyaltyPage,
|
document: GetFiNoSvUrlsLoyaltyPage,
|
||||||
variables,
|
variables,
|
||||||
|
tags: tagsFiNoSv,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@@ -222,10 +239,12 @@ export const configQueryRouter = router({
|
|||||||
{
|
{
|
||||||
document: GetDaDeEnUrlsCurrentBlocksPage,
|
document: GetDaDeEnUrlsCurrentBlocksPage,
|
||||||
variables,
|
variables,
|
||||||
|
tags: tagsDaDeEn,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
document: GetFiNoSvUrlsCurrentBlocksPage,
|
document: GetFiNoSvUrlsCurrentBlocksPage,
|
||||||
variables,
|
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