fix(SW-2921): Fixed issue with countryName missing from locations response

* fix(SW-2921): Added more correct cache key to locations endpoint

Approved-by: Joakim Jäderberg
Approved-by: Linus Flood
This commit is contained in:
Erik Tiekstra
2025-05-27 11:46:59 +00:00
parent ec31dcda1a
commit efbed53be4
3 changed files with 10 additions and 3 deletions

View File

@@ -440,7 +440,7 @@ export const locationsSchema = z.object({
if (location.type === "cities") {
return {
...location.attributes,
country: location?.country ?? "",
country: location?.countryName || "",
id: location.id,
type: location.type,
}

View File

@@ -7,7 +7,7 @@ export const locationCitySchema = z.object({
name: z.string().optional().default(""),
isPublished: z.boolean(),
}),
country: z.string().optional().default(""),
countryName: z.string().optional().default(""),
id: z.string().optional().default(""),
type: z.literal("cities"),
})

View File

@@ -253,8 +253,15 @@ export async function getLocations({
serviceToken: string
}) {
const cacheClient = await getCacheClient()
const countryKeys = Object.keys(citiesByCountry ?? {})
let cacheKey = `${lang}:locations`
if (countryKeys.length) {
cacheKey += `:${countryKeys.join(",")}`
}
return await cacheClient.cacheOrGet(
`${lang}:locations`.toLowerCase(),
cacheKey.toLowerCase(),
async () => {
const params = new URLSearchParams({
language: toApiLang(lang),