fix: proper cache keys for refs

This commit is contained in:
Michael Zetterberg
2025-03-24 16:32:43 +01:00
parent 0e2192be0f
commit d236a6e8fd
8 changed files with 37 additions and 16 deletions

View File

@@ -5,7 +5,11 @@ import { request } from "@/lib/graphql/request"
import { notFound } from "@/server/errors/trpc" import { notFound } from "@/server/errors/trpc"
import { getCacheClient } from "@/services/dataCache" import { getCacheClient } from "@/services/dataCache"
import { generateTag, generateTagsFromSystem } from "@/utils/generateTag" import {
generateRefsResponseTag,
generateTag,
generateTagsFromSystem,
} from "@/utils/generateTag"
import { collectionPageRefsSchema } from "./output" import { collectionPageRefsSchema } from "./output"
@@ -44,7 +48,7 @@ export async function fetchCollectionPageRefs(lang: Lang, uid: string) {
) )
const cacheClient = await getCacheClient() const cacheClient = await getCacheClient()
const cacheKey = generateTag(lang, uid) const cacheKey = generateRefsResponseTag(lang, uid)
const refsResponse = await cacheClient.cacheOrGet( const refsResponse = await cacheClient.cacheOrGet(
cacheKey, cacheKey,
async () => async () =>

View File

@@ -7,7 +7,11 @@ import {
} from "@/lib/graphql/Query/ContentPage/ContentPage.graphql" } from "@/lib/graphql/Query/ContentPage/ContentPage.graphql"
import { notFound } from "@/server/errors/trpc" import { notFound } from "@/server/errors/trpc"
import { generateTag, generateTagsFromSystem } from "@/utils/generateTag" import {
generateRefsResponseTag,
generateTag,
generateTagsFromSystem,
} from "@/utils/generateTag"
import { contentPageRefsSchema } from "./output" import { contentPageRefsSchema } from "./output"
@@ -50,7 +54,7 @@ export async function fetchContentPageRefs(lang: Lang, uid: string) {
document: GetContentPageRefs, document: GetContentPageRefs,
variables: { locale: lang, uid }, variables: { locale: lang, uid },
cacheOptions: { cacheOptions: {
key: generateTag(lang, uid), key: generateRefsResponseTag(lang, uid),
ttl: "max", ttl: "max",
}, },
}, },

View File

@@ -6,7 +6,7 @@ import { request } from "@/lib/graphql/request"
import { notFound } from "@/server/errors/trpc" import { notFound } from "@/server/errors/trpc"
import { contentStackUidWithServiceProcedure, router } from "@/server/trpc" import { contentStackUidWithServiceProcedure, router } from "@/server/trpc"
import { generateTag } from "@/utils/generateTag" import { generateRefsResponseTag } from "@/utils/generateTag"
import { getCityByCityIdentifier } from "../../hotels/utils" import { getCityByCityIdentifier } from "../../hotels/utils"
import { import {
@@ -46,7 +46,7 @@ export const destinationCityPageQueryRouter = router({
GetDestinationCityPageRefs, GetDestinationCityPageRefs,
{ locale: lang, uid }, { locale: lang, uid },
{ {
key: generateTag(lang, uid), key: generateRefsResponseTag(lang, uid),
ttl: "max", ttl: "max",
} }
) )

View File

@@ -10,7 +10,7 @@ import {
router, router,
} from "@/server/trpc" } from "@/server/trpc"
import { generateTag } from "@/utils/generateTag" import { generateRefsResponseTag } from "@/utils/generateTag"
import { getCityPagesInput } from "./input" import { getCityPagesInput } from "./input"
import { import {
@@ -51,7 +51,7 @@ export const destinationCountryPageQueryRouter = router({
GetDestinationCountryPageRefs, GetDestinationCountryPageRefs,
{ locale: lang, uid }, { locale: lang, uid },
{ {
key: generateTag(lang, uid), key: generateRefsResponseTag(lang, uid),
ttl: "max", ttl: "max",
} }
) )

View File

@@ -10,7 +10,7 @@ import {
serviceProcedure, serviceProcedure,
} from "@/server/trpc" } from "@/server/trpc"
import { generateTag } from "@/utils/generateTag" import { generateRefsResponseTag, generateTag } from "@/utils/generateTag"
import { safeTry } from "@/utils/safeTry" import { safeTry } from "@/utils/safeTry"
import { import {
@@ -64,7 +64,7 @@ export const destinationOverviewPageQueryRouter = router({
uid, uid,
}, },
{ {
key: generateTag(lang, uid), key: generateRefsResponseTag(lang, uid),
ttl: "max", ttl: "max",
} }
) )

View File

@@ -4,7 +4,11 @@ import { GetHotelPageUrls } from "@/lib/graphql/Query/HotelPage/HotelPageUrl.gra
import { request } from "@/lib/graphql/request" import { request } from "@/lib/graphql/request"
import { notFound } from "@/server/errors/trpc" import { notFound } from "@/server/errors/trpc"
import { generateTag, generateTagsFromSystem } from "@/utils/generateTag" import {
generateRefsResponseTag,
generateTag,
generateTagsFromSystem,
} from "@/utils/generateTag"
import { import {
batchedHotelPageUrlsSchema, batchedHotelPageUrlsSchema,
@@ -46,7 +50,7 @@ export async function fetchHotelPageRefs(lang: Lang, uid: string) {
GetHotelPageRefs, GetHotelPageRefs,
{ locale: lang, uid }, { locale: lang, uid },
{ {
key: generateTag(lang, uid), key: generateRefsResponseTag(lang, uid),
ttl: "max", ttl: "max",
} }
) )

View File

@@ -11,7 +11,10 @@ import { request } from "@/lib/graphql/request"
import { notFound } from "@/server/errors/trpc" import { notFound } from "@/server/errors/trpc"
import { getCacheClient } from "@/services/dataCache" import { getCacheClient } from "@/services/dataCache"
import { generateLoyaltyConfigTag, generateTag } from "@/utils/generateTag" import {
generateLoyaltyConfigTag,
generateRefsResponseTag,
} from "@/utils/generateTag"
import { import {
type ApiReward, type ApiReward,
@@ -243,7 +246,9 @@ export async function getCmsRewards(lang: Lang, rewardIds: string[]) {
rewardIds, rewardIds,
}, },
{ {
key: rewardIds.map((rewardId) => generateTag(lang, rewardId)), key: rewardIds.map((rewardId) =>
generateRefsResponseTag(lang, rewardId)
),
ttl: "max", ttl: "max",
} }
) )

View File

@@ -6,7 +6,11 @@ import { request } from "@/lib/graphql/request"
import { notFound } from "@/server/errors/trpc" import { notFound } from "@/server/errors/trpc"
import { contentstackExtendedProcedureUID, router } from "@/server/trpc" import { contentstackExtendedProcedureUID, router } from "@/server/trpc"
import { generateTag, generateTagsFromSystem } from "@/utils/generateTag" import {
generateRefsResponseTag,
generateTag,
generateTagsFromSystem,
} from "@/utils/generateTag"
import { startPageRefsSchema, startPageSchema } from "./output" import { startPageRefsSchema, startPageSchema } from "./output"
import { import {
@@ -46,7 +50,7 @@ export const startPageQueryRouter = router({
uid, uid,
}, },
{ {
key: generateTag(lang, uid), key: generateRefsResponseTag(lang, uid),
ttl: "max", ttl: "max",
} }
) )