Files
web/apps/scandic-web/server/routers/contentstack/languageSwitcher/query.ts
Anton Gunnarsson 846fd904a6 Merged in feat/sw-2859-set-up-shared-trpc-package (pull request #2319)
feat(SW-2859): Create trpc package

* Add isEdge, safeTry and dataCache to new common package

* Add eslint and move prettier config

* Clean up tests

* Create trpc package and move initialization

* Move errors and a few procedures

* Move telemetry to common package

* Move tokenManager to common package

* Add Sentry to procedures

* Clean up procedures

* Fix self-referencing imports

* Add exports to packages and lint rule to prevent relative imports

* Add env to trpc package

* Add eslint to trpc package

* Apply lint rules

* Use direct imports from trpc package

* Add lint-staged config to trpc

* Move lang enum to common

* Restructure trpc package folder structure

* Fix lang imports


Approved-by: Linus Flood
2025-06-18 12:14:20 +00:00

32 lines
996 B
TypeScript

import { router } from "@scandic-hotels/trpc"
import { publicProcedure } from "@scandic-hotels/trpc/procedures"
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"
export const languageSwitcherQueryRouter = router({
get: publicProcedure
.input(getLanguageSwitcherInput)
.query(async ({ input }) => {
const { pathName, lang } = input
const { uid, contentType } = await getUidAndContentTypeByPath(pathName)
let urls: LanguageSwitcherData | null = null
if (!uid || !contentType) {
urls = getNonContentstackUrls(lang, pathName)
} else {
urls = await getUrlsOfAllLanguages(lang, uid, contentType)
}
return {
lang,
urls,
}
}),
})