fix(SW-614): move filtering logic to routes

This commit is contained in:
Tobias Johansson
2024-10-28 11:06:47 +01:00
parent 7819db2bb2
commit 60ceeaf9c3
5 changed files with 52 additions and 20 deletions

View File

@@ -26,6 +26,7 @@ export const getRoomsAvailabilityInputSchema = z.object({
promotionCode: z.string().optional(),
reservationProfileType: z.string().optional().default(""),
attachedProfileId: z.string().optional().default(""),
rateCode: z.string().optional(),
})
export const getRatesInputSchema = z.object({
@@ -35,6 +36,7 @@ export const getRatesInputSchema = z.object({
export const getlHotelDataInputSchema = z.object({
hotelId: z.string(),
language: z.string(),
isCardOnlyPayment: z.boolean().optional(),
include: z
.array(z.enum(["RoomCategories", "NearbyHotels", "Restaurants", "City"]))
.optional(),

View File

@@ -578,6 +578,7 @@ const roomsAvailabilitySchema = z
hotelId: z.number(),
roomConfigurations: z.array(roomConfigurationSchema),
rateDefinitions: z.array(rateDefinitionSchema),
mustBeGuaranteed: z.boolean().optional(),
}),
relationships: linksSchema.optional(),
type: z.string().optional(),

View File

@@ -430,6 +430,7 @@ export const hotelQueryRouter = router({
promotionCode,
reservationProfileType,
attachedProfileId,
rateCode,
} = input
const params: Record<string, string | number | undefined> = {
@@ -534,6 +535,14 @@ export const hotelQueryRouter = router({
query: { hotelId, params: params },
})
)
if (rateCode) {
validateAvailabilityData.data.mustBeGuaranteed =
validateAvailabilityData.data.rateDefinitions.filter(
(rate) => rate.rateCode === rateCode
)[0].mustBeGuaranteed
}
return validateAvailabilityData.data
}),
}),
@@ -577,7 +586,7 @@ export const hotelQueryRouter = router({
get: serviceProcedure
.input(getlHotelDataInputSchema)
.query(async ({ ctx, input }) => {
const { hotelId, language, include } = input
const { hotelId, language, include, isCardOnlyPayment } = input
const params: Record<string, string> = {
hotelId,
@@ -669,6 +678,11 @@ export const hotelQueryRouter = router({
})
)
if (isCardOnlyPayment) {
validateHotelData.data.data.attributes.merchantInformationData.alternatePaymentOptions =
[]
}
return validateHotelData.data
}),
}),