Merged in revert-pr-1925 (pull request #1927)

Revert "Feat/sw 2323 find booking (pull request #1925)"

Approved-by: Anton Gunnarsson
This commit is contained in:
Linus Flood
2025-05-02 13:05:42 +00:00
parent 87efb72ff2
commit 6979ac0c3b
69 changed files with 883 additions and 1508 deletions

View File

@@ -6,7 +6,6 @@ import { Typography } from "@scandic-hotels/design-system/Typography"
import { env } from "@/env/server"
import { dt } from "@/lib/dt"
import {
findBooking,
getAncillaryPackages,
getBookingConfirmation,
getLinkedReservations,
@@ -14,8 +13,8 @@ import {
getProfileSafely,
getSavedPaymentCardsSafely,
} from "@/lib/trpc/memoizedRequests"
import { decrypt } from "@/server/routers/utils/encryption"
import { auth } from "@/auth"
import AdditionalInfoForm from "@/components/HotelReservation/FindMyBooking/AdditionalInfoForm"
import accessBooking, {
ACCESS_GRANTED,
@@ -33,8 +32,6 @@ import Image from "@/components/Image"
import { getIntl } from "@/i18n"
import { setLang } from "@/i18n/serverContext"
import MyStayProvider from "@/providers/MyStay"
import { parseRefId } from "@/utils/refId"
import { isValidSession } from "@/utils/session"
import { getCurrentWebUrl } from "@/utils/url"
import styles from "./page.module.css"
@@ -47,47 +44,27 @@ export default async function MyStay({
searchParams,
}: PageArgs<LangParams, { RefId?: string }>) {
setLang(params.lang)
const refId = searchParams.RefId
if (!refId) {
notFound()
}
const session = await auth()
const isLoggedIn = isValidSession(session)
const { confirmationNumber, lastName } = parseRefId(refId)
const bv = cookies().get("bv")?.value
let bookingConfirmation
if (isLoggedIn) {
bookingConfirmation = await getBookingConfirmation(refId, params.lang)
} else if (bv) {
const params = new URLSearchParams(bv)
const firstName = params.get("firstName")
const email = params.get("email")
if (firstName && email) {
bookingConfirmation = await findBooking(
confirmationNumber,
lastName,
firstName,
email
)
} else {
return <RenderAdditionalInfoForm refId={refId} lastName={lastName} />
}
} else {
return <RenderAdditionalInfoForm refId={refId} lastName={lastName} />
const value = decrypt(refId)
if (!value) {
return notFound()
}
const [confirmationNumber, lastName] = value.split(",")
const bookingConfirmation = await getBookingConfirmation(confirmationNumber)
if (!bookingConfirmation) {
return notFound()
}
const { booking, hotelData } = bookingConfirmation
const { hotel } = hotelData
const { additionalData, booking, hotel, roomCategories } = bookingConfirmation
const user = await getProfileSafely()
const bv = cookies().get("bv")?.value
const intl = await getIntl()
const access = accessBooking(booking.guest, lastName, user, bv)
@@ -97,7 +74,9 @@ export default async function MyStay({
const fromDate = dt(booking.checkInDate).format("YYYY-MM-DD")
const toDate = dt(booking.checkOutDate).format("YYYY-MM-DD")
const linkedReservationsPromise = getLinkedReservations(refId, params.lang)
const linkedReservationsPromise = getLinkedReservations({
rooms: booking.linkedReservations,
})
const packagesInput = {
adults: booking.adults,
@@ -119,9 +98,9 @@ export default async function MyStay({
(pkg) => pkg.code === BreakfastPackageEnum.REGULAR_BREAKFAST
)
const breakfastIncluded = booking.rateDefinition.breakfastIncluded
const shouldFetchBreakfastPackages =
const alreadyHasABreakfastSelection =
!hasBreakfastPackage && !breakfastIncluded
if (shouldFetchBreakfastPackages) {
if (alreadyHasABreakfastSelection) {
void getPackages(packagesInput)
}
void getSavedPaymentCardsSafely(savedPaymentCardsInput)
@@ -133,7 +112,7 @@ export default async function MyStay({
})
let breakfastPackages = null
if (shouldFetchBreakfastPackages) {
if (alreadyHasABreakfastSelection) {
breakfastPackages = await getPackages(packagesInput)
}
const savedCreditCards = await getSavedPaymentCardsSafely(
@@ -142,7 +121,7 @@ export default async function MyStay({
const imageSrc =
hotel.hotelContent.images.imageSizes.large ??
hotelData.additionalData.gallery?.heroImages[0]?.imageSizes.large ??
additionalData.gallery?.heroImages[0]?.imageSizes.large ??
hotel.galleryImages[0]?.imageSizes.large
const baseUrl = env.PUBLIC_URL || "https://www.scandichotels.com"
@@ -159,7 +138,7 @@ export default async function MyStay({
lang={params.lang}
linkedReservationsPromise={linkedReservationsPromise}
refId={refId}
roomCategories={hotelData.roomCategories}
roomCategories={roomCategories}
savedCreditCards={savedCreditCards}
>
<main className={styles.main}>
@@ -218,7 +197,10 @@ export default async function MyStay({
return (
<main className={styles.main}>
<div className={styles.form}>
<AdditionalInfoForm refId={refId} lastName={lastName} />
<AdditionalInfoForm
confirmationNumber={confirmationNumber}
lastName={lastName}
/>
</div>
</main>
)
@@ -250,19 +232,3 @@ export default async function MyStay({
return notFound()
}
function RenderAdditionalInfoForm({
refId,
lastName,
}: {
refId: string
lastName: string
}) {
return (
<main className={styles.main}>
<div className={styles.form}>
<AdditionalInfoForm refId={refId} lastName={lastName} />
</div>
</main>
)
}