Merged in feat/sw-3556-sas-userinfo-scandic-keys (pull request #3033)
feat(SW-3556): Add Scandic user details to tracking userinfo if linked * Add scandic details to userinfo if linked Approved-by: Hrishikesh Vaipurkar
This commit is contained in:
@@ -55,6 +55,9 @@ type UserDataEurobonusLoggedIn = {
|
||||
linkStatus?: string
|
||||
loginAction?: "login success"
|
||||
memberType: "sas-eurobonus"
|
||||
memberId?: string
|
||||
membershipNumber?: string
|
||||
memberLevel?: MembershipLevel
|
||||
}
|
||||
|
||||
export type TrackingUserData =
|
||||
|
||||
@@ -15,7 +15,8 @@ export const userTrackingInfo = safeProtectedProcedure.query(async function ({
|
||||
ctx,
|
||||
}) {
|
||||
if (ctx.app === "partner-sas") {
|
||||
return getSasEurobonusUserTrackingData(ctx.session)
|
||||
const scandicUserToken = await ctx.getScandicUserToken()
|
||||
return getSasEurobonusUserTrackingData(ctx.session, scandicUserToken)
|
||||
}
|
||||
|
||||
if (ctx.app === "scandic-web") {
|
||||
@@ -81,7 +82,10 @@ async function getScandicFriendsUserTrackingData(session: Session | null) {
|
||||
}
|
||||
}
|
||||
|
||||
async function getSasEurobonusUserTrackingData(session: Session | null) {
|
||||
async function getSasEurobonusUserTrackingData(
|
||||
session: Session | null,
|
||||
scandicUserToken: string | null
|
||||
) {
|
||||
const notLoggedInUserTrackingData: TrackingUserData = {
|
||||
loginStatus: "Non-logged in",
|
||||
memberType: "sas-eurobonus",
|
||||
@@ -92,10 +96,13 @@ async function getSasEurobonusUserTrackingData(session: Session | null) {
|
||||
}
|
||||
|
||||
try {
|
||||
const eurobonusProfile = await getEuroBonusProfileData({
|
||||
accessToken: session.token.access_token,
|
||||
loginType: "eurobonus",
|
||||
})
|
||||
const [eurobonusProfile, scandicData] = await Promise.all([
|
||||
getEuroBonusProfileData({
|
||||
accessToken: session.token.access_token,
|
||||
loginType: "eurobonus",
|
||||
}),
|
||||
getScandicFriendsDataHelper(scandicUserToken),
|
||||
])
|
||||
|
||||
const loggedInUserTrackingData: TrackingUserData = {
|
||||
loginStatus: "logged in",
|
||||
@@ -105,6 +112,9 @@ async function getSasEurobonusUserTrackingData(session: Session | null) {
|
||||
eurobonusNumber: eurobonusProfile.eurobonusNumber,
|
||||
tier: eurobonusProfile.tier,
|
||||
linkStatus: eurobonusProfile.linkStatus,
|
||||
memberId: scandicData?.memberId,
|
||||
membershipNumber: scandicData?.membershipNumber,
|
||||
memberLevel: scandicData?.memberLevel,
|
||||
}
|
||||
|
||||
return loggedInUserTrackingData
|
||||
@@ -112,3 +122,23 @@ async function getSasEurobonusUserTrackingData(session: Session | null) {
|
||||
return notLoggedInUserTrackingData
|
||||
}
|
||||
}
|
||||
|
||||
async function getScandicFriendsDataHelper(scandicUserToken: string | null) {
|
||||
if (!scandicUserToken) return null
|
||||
|
||||
const verifiedUserData = await getVerifiedUser({
|
||||
token: { access_token: scandicUserToken },
|
||||
})
|
||||
|
||||
if (!verifiedUserData || !verifiedUserData.loyalty) {
|
||||
return null
|
||||
}
|
||||
|
||||
const membership = getFriendsMembership(verifiedUserData.loyalty)
|
||||
|
||||
return {
|
||||
memberId: verifiedUserData.profileId,
|
||||
membershipNumber: membership?.membershipNumber,
|
||||
memberLevel: membership?.membershipLevel,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user