diff --git a/server/routers/hotels/input.ts b/server/routers/hotels/input.ts index e1bba237c..2158c6b7a 100644 --- a/server/routers/hotels/input.ts +++ b/server/routers/hotels/input.ts @@ -1,8 +1,8 @@ import { z } from "zod" -import { Lang, toUppercaseLang } from "@/constants/languages" +import { Lang } from "@/constants/languages" export const getHotelInputSchema = z.object({ hotelId: z.string(), - language: z.nativeEnum(Lang).transform((val) => toUppercaseLang(val)), + language: z.nativeEnum(Lang), }) diff --git a/server/routers/hotels/query.ts b/server/routers/hotels/query.ts index 71b7d4de0..7afa53651 100644 --- a/server/routers/hotels/query.ts +++ b/server/routers/hotels/query.ts @@ -5,6 +5,7 @@ import { publicProcedure, router } from "@/server/trpc" import { getHotelInputSchema } from "./input" import { getHotelDataSchema } from "./output" import tempHotelData from "./tempHotelData.json" +import { toApiLang } from "./utils" export const hotelQueryRouter = router({ getHotel: publicProcedure @@ -13,8 +14,9 @@ export const hotelQueryRouter = router({ const { hotelId, language } = input const params = new URLSearchParams() + const apiLang = toApiLang(language) params.set("hotelId", hotelId.toString()) - params.set("language", language.toString()) + params.set("language", apiLang) // TODO: Enable once we have authorized API access. // const apiResponse = await api.get( diff --git a/server/routers/hotels/utils.ts b/server/routers/hotels/utils.ts new file mode 100644 index 000000000..b9b9e9814 --- /dev/null +++ b/server/routers/hotels/utils.ts @@ -0,0 +1,22 @@ +import { Lang } from "@/constants/languages" + +const langMap: { [key in Lang]: string } = { + [Lang.en]: "En", + [Lang.sv]: "Sv", + [Lang.no]: "No", + [Lang.fi]: "Fi", + [Lang.da]: "Da", + [Lang.de]: "De", +} + +/** + * Helper function to convert Lang enum to uppercase + * Needed for the Hotel endpoint. + */ +export const toApiLang = (lang: Lang): string => { + const result = langMap[lang] + if (!result) { + throw new Error("Invalid language") + } + return result +}