From 4bc459f0a4ce0d18f53a3c2609111354a5035790 Mon Sep 17 00:00:00 2001 From: Pontus Dreij Date: Mon, 27 Jan 2025 10:22:29 +0100 Subject: [PATCH] fix: Update getRoomsAvailability --- server/routers/hotels/output.ts | 27 +++++++++++++++------------ server/routers/hotels/query.ts | 7 ++++--- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/server/routers/hotels/output.ts b/server/routers/hotels/output.ts index a9e6b938f..83e35c016 100644 --- a/server/routers/hotels/output.ts +++ b/server/routers/hotels/output.ts @@ -477,7 +477,7 @@ export const childrenSchema = z.object({ const occupancySchema = z.object({ adults: z.number(), - children: z.array(childrenSchema), + children: z.array(childrenSchema).default([]), }) const linksSchema = z.object({ @@ -551,17 +551,19 @@ const roomConfigurationSchema = z.object({ roomTypeCode: z.string(), roomType: z.string(), roomsLeft: z.number(), - features: z.array( - z.object({ - inventory: z.number(), - code: z.enum([ - RoomPackageCodeEnum.PET_ROOM, - RoomPackageCodeEnum.ALLERGY_ROOM, - RoomPackageCodeEnum.ACCESSIBILITY_ROOM, - ]), - }) - ), - products: z.array(productSchema), + features: z + .array( + z.object({ + inventory: z.number(), + code: z.enum([ + RoomPackageCodeEnum.PET_ROOM, + RoomPackageCodeEnum.ALLERGY_ROOM, + RoomPackageCodeEnum.ACCESSIBILITY_ROOM, + ]), + }) + ) + .default([]), + products: z.array(productSchema).default([]), }) const rateDefinitionSchema = z.object({ @@ -583,6 +585,7 @@ const roomsAvailabilitySchema = z checkOutDate: z.string(), occupancy: occupancySchema.optional(), hotelId: z.number(), + bookingCode: z.string().optional(), roomConfigurations: z.array(roomConfigurationSchema), rateDefinitions: z.array(rateDefinitionSchema), mustBeGuaranteed: z.boolean().optional(), diff --git a/server/routers/hotels/query.ts b/server/routers/hotels/query.ts index e813be457..767e92435 100644 --- a/server/routers/hotels/query.ts +++ b/server/routers/hotels/query.ts @@ -330,7 +330,7 @@ export const hotelQueryRouter = router({ roomStayEndDate, adults, ...(children && { children }), - bookingCode, + ...(bookingCode && { bookingCode }), } roomsAvailabilityCounter.add(1, { @@ -385,6 +385,7 @@ export const hotelQueryRouter = router({ return null } const apiJson = await apiResponse.json() + const validateAvailabilityData = getRoomsAvailabilitySchema.safeParse(apiJson) if (!validateAvailabilityData.success) { @@ -394,7 +395,7 @@ export const hotelQueryRouter = router({ roomStayEndDate, adults, children, - bookingCode, + bookingCode: bookingCode ?? undefined, error_type: "validation_error", error: JSON.stringify(validateAvailabilityData.error), }) @@ -413,7 +414,7 @@ export const hotelQueryRouter = router({ roomStayEndDate, adults, children, - bookingCode, + bookingCode: bookingCode ?? undefined, }) console.info( "api.hotels.roomsAvailability success",