fix: Update getRoomsAvailability

This commit is contained in:
Pontus Dreij
2025-01-27 10:22:29 +01:00
parent bebf6c99c3
commit 4bc459f0a4
2 changed files with 19 additions and 15 deletions

View File

@@ -477,7 +477,7 @@ export const childrenSchema = z.object({
const occupancySchema = z.object({ const occupancySchema = z.object({
adults: z.number(), adults: z.number(),
children: z.array(childrenSchema), children: z.array(childrenSchema).default([]),
}) })
const linksSchema = z.object({ const linksSchema = z.object({
@@ -551,17 +551,19 @@ const roomConfigurationSchema = z.object({
roomTypeCode: z.string(), roomTypeCode: z.string(),
roomType: z.string(), roomType: z.string(),
roomsLeft: z.number(), roomsLeft: z.number(),
features: z.array( features: z
z.object({ .array(
inventory: z.number(), z.object({
code: z.enum([ inventory: z.number(),
RoomPackageCodeEnum.PET_ROOM, code: z.enum([
RoomPackageCodeEnum.ALLERGY_ROOM, RoomPackageCodeEnum.PET_ROOM,
RoomPackageCodeEnum.ACCESSIBILITY_ROOM, RoomPackageCodeEnum.ALLERGY_ROOM,
]), RoomPackageCodeEnum.ACCESSIBILITY_ROOM,
}) ]),
), })
products: z.array(productSchema), )
.default([]),
products: z.array(productSchema).default([]),
}) })
const rateDefinitionSchema = z.object({ const rateDefinitionSchema = z.object({
@@ -583,6 +585,7 @@ const roomsAvailabilitySchema = z
checkOutDate: z.string(), checkOutDate: z.string(),
occupancy: occupancySchema.optional(), occupancy: occupancySchema.optional(),
hotelId: z.number(), hotelId: z.number(),
bookingCode: z.string().optional(),
roomConfigurations: z.array(roomConfigurationSchema), roomConfigurations: z.array(roomConfigurationSchema),
rateDefinitions: z.array(rateDefinitionSchema), rateDefinitions: z.array(rateDefinitionSchema),
mustBeGuaranteed: z.boolean().optional(), mustBeGuaranteed: z.boolean().optional(),

View File

@@ -330,7 +330,7 @@ export const hotelQueryRouter = router({
roomStayEndDate, roomStayEndDate,
adults, adults,
...(children && { children }), ...(children && { children }),
bookingCode, ...(bookingCode && { bookingCode }),
} }
roomsAvailabilityCounter.add(1, { roomsAvailabilityCounter.add(1, {
@@ -385,6 +385,7 @@ export const hotelQueryRouter = router({
return null return null
} }
const apiJson = await apiResponse.json() const apiJson = await apiResponse.json()
const validateAvailabilityData = const validateAvailabilityData =
getRoomsAvailabilitySchema.safeParse(apiJson) getRoomsAvailabilitySchema.safeParse(apiJson)
if (!validateAvailabilityData.success) { if (!validateAvailabilityData.success) {
@@ -394,7 +395,7 @@ export const hotelQueryRouter = router({
roomStayEndDate, roomStayEndDate,
adults, adults,
children, children,
bookingCode, bookingCode: bookingCode ?? undefined,
error_type: "validation_error", error_type: "validation_error",
error: JSON.stringify(validateAvailabilityData.error), error: JSON.stringify(validateAvailabilityData.error),
}) })
@@ -413,7 +414,7 @@ export const hotelQueryRouter = router({
roomStayEndDate, roomStayEndDate,
adults, adults,
children, children,
bookingCode, bookingCode: bookingCode ?? undefined,
}) })
console.info( console.info(
"api.hotels.roomsAvailability success", "api.hotels.roomsAvailability success",