Files
web/packages/trpc/lib/utils/getUserPointsBalance.ts
Anton Gunnarsson c435cdba68 Merged in fix/sw-3551-rsc-bookingflowconfig (pull request #2988)
fix(SW-3551): Fix issue with BookingConfigProvider in RSC

* wip move config to pages

* Move config providing to pages
2025-10-22 07:04:21 +00:00

39 lines
1.0 KiB
TypeScript

import { getEuroBonusProfileData } from "../routers/partners/sas/getEuroBonusProfile"
import { getVerifiedUser } from "../routers/user/utils/getVerifiedUser"
import { isValidSession } from "./session"
import type { Session } from "next-auth"
export async function getUserPointsBalance(
session: Session | null
): Promise<number | undefined> {
if (!isValidSession(session)) return undefined
const verifiedUser =
session.token.loginType === "eurobonus"
? await getEuroBonusProfileSafely(session)
: await getVerifiedUser({ session })
if (!verifiedUser || "error" in verifiedUser) {
return undefined
}
const points =
"points" in verifiedUser
? verifiedUser.points.total
: verifiedUser.data.membership?.currentPoints
return points ?? 0
}
async function getEuroBonusProfileSafely(session: Session) {
try {
return await getEuroBonusProfileData({
accessToken: session.token.access_token,
loginType: session.token.loginType,
})
} catch (_error) {
return undefined
}
}