Files
web/packages/trpc/lib/routers/hotels/locations/urls.ts
Joakim Jäderberg 8b94540d19 Merged in chore/redirect-counter (pull request #3302)
Counter name is now searchable and add counter for redirects

* refactor: createCounter() only takes one argument, the name of the counter. Makes it easier to search for

* feat: add counter when we do a redirect from redirect-service


Approved-by: Linus Flood
2025-12-08 10:24:05 +00:00

50 lines
1.3 KiB
TypeScript

import { z } from "zod"
import { Lang } from "@scandic-hotels/common/constants/language"
import { createCounter } from "@scandic-hotels/common/telemetry"
import { publicProcedure } from "../../../procedures"
import { getCityPageUrls } from "../../contentstack/destinationCityPage/utils"
import { getHotelPageUrls } from "../../contentstack/hotelPage/utils"
const getLocationsUrlsInput = z.object({
lang: z.nativeEnum(Lang),
})
export const urls = publicProcedure
.input(getLocationsUrlsInput)
.query(async ({ input }) => {
const { lang } = input
const locationsUrlsCounter = createCounter("trpc.hotel.locations.urls")
const metricsLocationsUrls = locationsUrlsCounter.init({
lang,
})
metricsLocationsUrls.start()
const [hotelPageUrlsResult, cityPageUrlsResult] = await Promise.allSettled([
getHotelPageUrls(lang),
getCityPageUrls(lang),
])
if (
hotelPageUrlsResult.status === "rejected" ||
cityPageUrlsResult.status === "rejected"
) {
metricsLocationsUrls.dataError(`Failed to get data for page URLs`, {
hotelPageUrlsResult,
cityPageUrlsResult,
})
return null
}
metricsLocationsUrls.success()
return {
hotels: hotelPageUrlsResult.value,
cities: cityPageUrlsResult.value,
}
})