Merged in feat/SW-1845-metadata-hreflang (pull request #1504)

feat(SW-1845): Added alternates to metadata

* feat(SW-1845): Added alternates to metadata


Approved-by: Linus Flood
This commit is contained in:
Erik Tiekstra
2025-03-10 10:15:02 +00:00
parent 393546d35d
commit 131cbfcda3
3 changed files with 110 additions and 42 deletions
@@ -1,15 +1,12 @@
import { baseUrls } from "@/constants/routes/baseUrls"
import { findMyBooking } from "@/constants/routes/findMyBooking"
import { hotelreservation } from "@/constants/routes/hotelReservation"
import { publicProcedure, router } from "@/server/trpc"
import { getUidAndContentTypeByPath } from "@/services/cms/getUidAndContentTypeByPath"
import { getNonContentstackUrls } from "../metadata/output"
import { getLanguageSwitcherInput } from "./input"
import { getUrlsOfAllLanguages } from "./utils"
import type { LanguageSwitcherData } from "@/types/requests/languageSwitcher"
import type { Lang } from "@/constants/languages"
export const languageSwitcherQueryRouter = router({
get: publicProcedure
@@ -17,29 +14,14 @@ export const languageSwitcherQueryRouter = router({
.query(async ({ input }) => {
const { pathName, lang } = input
const { uid, contentType } = await getUidAndContentTypeByPath(pathName)
let urls: LanguageSwitcherData | null = null
if (!uid || !contentType) {
// we have pages that are not currently routed within contentstack context,
// therefor this fix is needed for some of these pages
if (Object.values(findMyBooking).includes(pathName)) {
const urls: LanguageSwitcherData = {}
return {
lang,
urls: Object.entries(findMyBooking).reduce((acc, [lang, url]) => {
acc[lang as Lang] = { url }
return urls
}, urls),
}
}
if (pathName.startsWith(hotelreservation(lang))) {
return { lang, urls: baseUrls }
}
return { lang, urls: { [lang]: { url: pathName } } }
urls = getNonContentstackUrls(lang, pathName)
} else {
urls = await getUrlsOfAllLanguages(lang, uid, contentType)
}
const urls = await getUrlsOfAllLanguages(lang, uid, contentType)
return {
lang,
urls,