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 { 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 } }