fix: booking confirmation validation

This commit is contained in:
Christel Westerberg
2024-11-01 10:24:56 +01:00
parent cdc5652347
commit 644ce369aa
5 changed files with 145 additions and 118 deletions

View File

@@ -44,14 +44,18 @@ const childrenAgesSchema = z.object({
const guestSchema = z.object({
firstName: z.string(),
lastName: z.string(),
email: z.string().nullable(),
phoneNumber: z.string().nullable(),
})
const packagesSchema = z.object({
accessibility: z.boolean(),
allergyFriendly: z.boolean(),
breakfast: z.boolean(),
petFriendly: z.boolean(),
})
const packagesSchema = z.array(
z.object({
accessibility: z.boolean().optional(),
allergyFriendly: z.boolean().optional(),
breakfast: z.boolean().optional(),
petFriendly: z.boolean().optional(),
})
)
export const bookingConfirmationSchema = z
.object({
@@ -66,7 +70,7 @@ export const bookingConfirmationSchema = z
confirmationNumber: z.string(),
currencyCode: z.string(),
guest: guestSchema,
hasPayRouting: z.boolean(),
hasPayRouting: z.boolean().optional(),
hotelId: z.string(),
packages: packagesSchema,
rateCode: z.string(),

View File

@@ -4,6 +4,7 @@ import * as api from "@/lib/api"
import { badRequestError, serverErrorByStatus } from "@/server/errors/trpc"
import { router, serviceProcedure } from "@/server/trpc"
import { getHotelData } from "../hotels/query"
import { bookingConfirmationInput, getBookingStatusInput } from "./input"
import { bookingConfirmationSchema, createBookingSchema } from "./output"
@@ -81,6 +82,11 @@ export const bookingQueryRouter = router({
throw badRequestError()
}
const hotelData = await getHotelData(
{ hotelId: booking.data.hotelId, language: ctx.lang },
ctx.serviceToken
)
getBookingConfirmationSuccessCounter.add(1, { confirmationNumber })
console.info(
"api.booking.confirmation success",
@@ -91,6 +97,7 @@ export const bookingQueryRouter = router({
return {
...booking.data,
hotel: hotelData,
temp: {
breakfastFrom: "06:30",
breakfastTo: "11:00",
@@ -127,11 +134,6 @@ export const bookingQueryRouter = router({
memberbershipNumber: "19822",
phoneNumber: "+46702446688",
},
hotel: {
email: "bookings@scandichotels.com",
name: "Downtown Camper by Scandic",
phoneNumber: "+4689001350",
},
}
}),
status: serviceProcedure.input(getBookingStatusInput).query(async function ({