import { GetHotelPage } from "@/lib/graphql/Query/HotelPage.graphql" import { request } from "@/lib/graphql/request" import { notFound } from "@/server/errors/trpc" import { contentstackBaseProcedure, router } from "@/server/trpc" import { HotelPage, HotelPageDataRaw, validateHotelPageSchema } from "./output" export const hotelPageQueryRouter = router({ get: contentstackBaseProcedure.query(async ({ ctx }) => { const { lang, uid } = ctx console.info( "contentstack.hotelPage start", JSON.stringify({ query: { lang, uid }, }) ) const response = await request(GetHotelPage, { locale: lang, uid, }) if (!response.data) { const notFoundError = notFound(response) console.error( "contentstack.hotelPage not found error", JSON.stringify({ query: { lang, uid }, error: { code: notFoundError.code }, }) ) throw notFoundError } const validatedHotelPage = validateHotelPageSchema.safeParse(response.data) if (!validatedHotelPage.success) { console.error( "contentstack.hotelPage validation error", JSON.stringify({ query: { lang, uid }, error: validatedHotelPage.error, }) ) return null } const hotelPage = { ...validatedHotelPage.data.hotel_page, } as HotelPage console.info( "contentstack.hotelPage success", JSON.stringify({ query: { lang, uid }, }) ) return hotelPage }), })