Merged in feat/SW-1652-confirmation-page (pull request #1483)

Feat/SW-1652 confirmation page

* feat(SW-1652): handle linkedReservations fetching

* fix: add missing translations

* feat: add linkedReservation retry functionality

* chore: align naming


Approved-by: Simon.Emanuelsson
This commit is contained in:
Arvid Norlin
2025-03-07 12:47:04 +00:00
parent 7fa86a2077
commit ec60e9abdd
34 changed files with 474 additions and 303 deletions

View File

@@ -123,6 +123,7 @@ export const createRefIdInput = z.object({
// Query
const confirmationNumberInput = z.object({
confirmationNumber: z.string(),
lang: z.nativeEnum(Lang).optional(),
})
export const bookingConfirmationInput = confirmationNumberInput

View File

@@ -79,7 +79,7 @@ const guestSchema = z.object({
phoneNumber: phoneValidator().nullable().default(""),
})
const packageSchema = z
export const packageSchema = z
.object({
type: z.string().nullable(),
description: z.string().nullable().default(""),
@@ -198,7 +198,7 @@ export const bookingConfirmationSchema = z
canChangeDate: z.boolean(),
bookingCode: z.string().nullable(),
computedReservationStatus: z.string().nullable().default(""),
confirmationNumber: z.string().nullable().default(""),
confirmationNumber: nullableStringValidator,
createDateTime: z.date({ coerce: true }),
currencyCode: z.string(),
guest: guestSchema,

View File

@@ -41,9 +41,14 @@ const getBookingStatusFailCounter = meter.createCounter(
export const bookingQueryRouter = router({
confirmation: safeProtectedServiceProcedure
.input(bookingConfirmationInput)
.query(async function ({ ctx, input: { confirmationNumber } }) {
.query(async function ({
ctx,
input: { confirmationNumber, lang: inputLang },
}) {
getBookingConfirmationCounter.add(1, { confirmationNumber })
let lang = ctx.lang ?? inputLang
const token = ctx.session?.token.access_token ?? ctx.serviceToken
const apiResponse = await api.get(
@@ -105,7 +110,7 @@ export const bookingQueryRouter = router({
{
hotelId: booking.data.hotelId,
isCardOnlyPayment: false,
language: ctx.lang,
language: lang,
},
ctx.serviceToken
)