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
|
linkStatus?: string
|
||||||
loginAction?: "login success"
|
loginAction?: "login success"
|
||||||
memberType: "sas-eurobonus"
|
memberType: "sas-eurobonus"
|
||||||
|
memberId?: string
|
||||||
|
membershipNumber?: string
|
||||||
|
memberLevel?: MembershipLevel
|
||||||
}
|
}
|
||||||
|
|
||||||
export type TrackingUserData =
|
export type TrackingUserData =
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ export const userTrackingInfo = safeProtectedProcedure.query(async function ({
|
|||||||
ctx,
|
ctx,
|
||||||
}) {
|
}) {
|
||||||
if (ctx.app === "partner-sas") {
|
if (ctx.app === "partner-sas") {
|
||||||
return getSasEurobonusUserTrackingData(ctx.session)
|
const scandicUserToken = await ctx.getScandicUserToken()
|
||||||
|
return getSasEurobonusUserTrackingData(ctx.session, scandicUserToken)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx.app === "scandic-web") {
|
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 = {
|
const notLoggedInUserTrackingData: TrackingUserData = {
|
||||||
loginStatus: "Non-logged in",
|
loginStatus: "Non-logged in",
|
||||||
memberType: "sas-eurobonus",
|
memberType: "sas-eurobonus",
|
||||||
@@ -92,10 +96,13 @@ async function getSasEurobonusUserTrackingData(session: Session | null) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const eurobonusProfile = await getEuroBonusProfileData({
|
const [eurobonusProfile, scandicData] = await Promise.all([
|
||||||
accessToken: session.token.access_token,
|
getEuroBonusProfileData({
|
||||||
loginType: "eurobonus",
|
accessToken: session.token.access_token,
|
||||||
})
|
loginType: "eurobonus",
|
||||||
|
}),
|
||||||
|
getScandicFriendsDataHelper(scandicUserToken),
|
||||||
|
])
|
||||||
|
|
||||||
const loggedInUserTrackingData: TrackingUserData = {
|
const loggedInUserTrackingData: TrackingUserData = {
|
||||||
loginStatus: "logged in",
|
loginStatus: "logged in",
|
||||||
@@ -105,6 +112,9 @@ async function getSasEurobonusUserTrackingData(session: Session | null) {
|
|||||||
eurobonusNumber: eurobonusProfile.eurobonusNumber,
|
eurobonusNumber: eurobonusProfile.eurobonusNumber,
|
||||||
tier: eurobonusProfile.tier,
|
tier: eurobonusProfile.tier,
|
||||||
linkStatus: eurobonusProfile.linkStatus,
|
linkStatus: eurobonusProfile.linkStatus,
|
||||||
|
memberId: scandicData?.memberId,
|
||||||
|
membershipNumber: scandicData?.membershipNumber,
|
||||||
|
memberLevel: scandicData?.memberLevel,
|
||||||
}
|
}
|
||||||
|
|
||||||
return loggedInUserTrackingData
|
return loggedInUserTrackingData
|
||||||
@@ -112,3 +122,23 @@ async function getSasEurobonusUserTrackingData(session: Session | null) {
|
|||||||
return notLoggedInUserTrackingData
|
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