fix: support original_url

This commit is contained in:
Christel Westerberg
2024-05-28 14:57:39 +02:00
parent 28efca98b9
commit 88dde3def4
8 changed files with 70 additions and 35 deletions

View File

@@ -190,10 +190,10 @@ export type AccountPageRefsDataRaw = z.infer<
>
export const validateLanguageSwitcherData = z.object({
en: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
da: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
de: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
fi: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
sv: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
no: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
en: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
da: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
de: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
fi: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
sv: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
no: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
})

View File

@@ -156,21 +156,22 @@ export const accountPageQueryRouter = router({
},
])
const urls = Object.keys(res.data).reduce<LanguageSwitcherData>(
(acc, key) => {
const item = res.data[key as Lang]?.items[0]
const url = item ? `/${key}${item.url}` : undefined
return { ...acc, [key]: { url, isExternal: false } }
},
{} as LanguageSwitcherData
)
const validatedLanguageSwitcherData =
validateLanguageSwitcherData.safeParse(res.data)
validateLanguageSwitcherData.safeParse(urls)
if (!validatedLanguageSwitcherData.success) {
throw internalServerError(validatedLanguageSwitcherData.error)
}
const urls = Object.keys(
validatedLanguageSwitcherData.data
).reduce<LanguageSwitcherData>((acc, key) => {
const items = validatedLanguageSwitcherData.data[key as Lang].items
const url = items.length ? items[0]?.url : undefined
return { ...acc, [key]: { url } }
}, {} as LanguageSwitcherData)
return { lang: ctx.lang, urls }
}),
})

View File

@@ -308,10 +308,10 @@ export type LoyaltyPageRefsDataRaw = z.infer<
>
export const validateLanguageSwitcherData = z.object({
en: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
da: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
de: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
fi: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
sv: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
no: z.object({ items: z.array(z.object({ url: z.string() }).nullable()) }),
en: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
da: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
de: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
fi: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
sv: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
no: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(),
})

View File

@@ -197,21 +197,28 @@ export const loyaltyPageQueryRouter = router({
},
])
const urls = Object.keys(res.data).reduce<LanguageSwitcherData>(
(acc, key) => {
const item = res.data[key as Lang]?.items[0]
const url = item
? item.web?.original_url || `/${key}${item.url}`
: undefined
return {
...acc,
[key]: { url, isExternal: !!item?.web?.original_url },
}
},
{} as LanguageSwitcherData
)
const validatedLanguageSwitcherData =
validateLanguageSwitcherData.safeParse(res.data)
validateLanguageSwitcherData.safeParse(urls)
if (!validatedLanguageSwitcherData.success) {
throw internalServerError(validatedLanguageSwitcherData.error)
}
const urls = Object.keys(
validatedLanguageSwitcherData.data
).reduce<LanguageSwitcherData>((acc, key) => {
const items = validatedLanguageSwitcherData.data[key as Lang].items
const url = items.length ? items[0]?.url : undefined
return { ...acc, [key]: { url } }
}, {} as LanguageSwitcherData)
return { lang: ctx.lang, urls }
}),
})