import { z } from "zod" import { Lang } from "@scandic-hotels/common/constants/language" import { createRefIdPlugin } from "../../../plugins/refIdToConfirmationNumber" import { safeProtectedServiceProcedure } from "../../../procedures" import { getBookingStatus } from "../../../services/booking/getBookingStatus" import { encrypt } from "../../../utils/encryption" const getBookingStatusInput = z.object({ lang: z.nativeEnum(Lang).optional(), }) const refIdPlugin = createRefIdPlugin() export const getBookingStatusRoute = safeProtectedServiceProcedure .input(getBookingStatusInput) .concat(refIdPlugin.toConfirmationNumber) .query(async function ({ ctx, input }) { const lang = input.lang ?? ctx.lang const { confirmationNumber } = ctx const booking = await getBookingStatus( { confirmationNumber, lang }, ctx.serviceToken ) const expire = Math.floor(Date.now() / 1000) + 60 // 1 minute expiry return { booking, sig: encrypt(expire.toString()), } })