Merged in feat/SW-910-membershipnumber-non-happy-path (pull request #1358)

fix(SW-910): handle MembershipFailedError

* fix(SW-910): handle MembershipFailedError


Approved-by: Tobias Johansson
This commit is contained in:
Arvid Norlin
2025-02-24 15:55:31 +00:00
parent c0cfa342cc
commit cf3268bda3
3 changed files with 34 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ import { redirect } from "next/navigation"
import {
BOOKING_CONFIRMATION_NUMBER,
MEMBERSHIP_FAILED_ERROR,
PaymentErrorCodeEnum,
} from "@/constants/booking"
import {
@@ -31,7 +32,17 @@ export default async function PaymentCallbackPage({
const confirmationNumber = searchParams.confirmationNumber
if (status === "success" && confirmationNumber) {
const confirmationUrl = `${bookingConfirmation(lang)}?${BOOKING_CONFIRMATION_NUMBER}=${confirmationNumber}`
const bookingStatus = await serverClient().booking.status({
confirmationNumber,
})
const membershipFailedError = bookingStatus.errors.find(
(e) => e.errorCode === MEMBERSHIP_FAILED_ERROR
)
const errorParam = membershipFailedError
? `&errorCode=${membershipFailedError.errorCode}`
: ""
const confirmationUrl = `${bookingConfirmation(lang)}?${BOOKING_CONFIRMATION_NUMBER}=${confirmationNumber}${errorParam}`
console.log(`[payment-callback] redirecting to: ${confirmationUrl}`)
redirect(confirmationUrl)