Merged in feat/sw-3545-update-sas-userinfo-tracking (pull request #2982)
feat(SW-3545): Update partner-sas userinfo tracking * Update loginType to eurobonus * Remove tracking booking code properties when disabled * Add EB user data to tracking * Fix type issue Approved-by: Joakim Jäderberg
This commit is contained in:
@@ -163,5 +163,5 @@ export async function cancelBooking(
|
||||
// ToDo - Update the function to return true for Scandic site and
|
||||
// in case of Partner sites fetch the Scandic Curity token for linked user and service token for unlinked user
|
||||
export function isPartnerLoggedInUser(session: Session) {
|
||||
return session.token.loginType === LoginTypeEnum.sas
|
||||
return session.token.loginType === LoginTypeEnum.eurobonus
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ const outputSchema = z.object({
|
||||
const sasLogger = createLogger("SAS")
|
||||
const url = new URL("/api/scandic-partnership/v1/profile", env.SAS_API_ENDPOINT)
|
||||
|
||||
const requiredLoginType: LoginType[] = ["sas"]
|
||||
const requiredLoginType: LoginType[] = ["eurobonus"]
|
||||
|
||||
export const getEuroBonusProfile = protectedProcedure
|
||||
.output(outputSchema)
|
||||
|
||||
@@ -28,18 +28,37 @@ type TrackingSDKChannel =
|
||||
| "homepage"
|
||||
| "promo-campaign"
|
||||
|
||||
type UserDataError = {
|
||||
loginStatus: "Error"
|
||||
}
|
||||
|
||||
type UserDataNonLoggedIn = {
|
||||
loginStatus: "Non-logged in"
|
||||
memberType: "scandic-friends" | "sas-eurobonus"
|
||||
}
|
||||
|
||||
type UserDataScandicLoggedIn = {
|
||||
loginStatus: "logged in"
|
||||
loginType?: LoginType
|
||||
memberId?: string
|
||||
membershipNumber?: string
|
||||
memberLevel?: MembershipLevel
|
||||
loginAction?: "login success"
|
||||
memberType: "scandic-friends"
|
||||
}
|
||||
|
||||
type UserDataEurobonusLoggedIn = {
|
||||
loginStatus: "logged in"
|
||||
loginType?: LoginType
|
||||
eurobonusNumber?: string
|
||||
tier?: string
|
||||
linkStatus?: string
|
||||
loginAction?: "login success"
|
||||
memberType: "sas-eurobonus"
|
||||
}
|
||||
|
||||
export type TrackingUserData =
|
||||
| {
|
||||
loginStatus: "logged in"
|
||||
loginType?: LoginType
|
||||
memberId?: string
|
||||
membershipNumber?: string
|
||||
memberLevel?: MembershipLevel
|
||||
loginAction?: "login success"
|
||||
memberType: "scandic-friends" | "sas-eurobonus"
|
||||
}
|
||||
| {
|
||||
loginStatus: "Non-logged in"
|
||||
memberType: "scandic-friends" | "sas-eurobonus"
|
||||
}
|
||||
| { loginStatus: "Error" }
|
||||
| UserDataScandicLoggedIn
|
||||
| UserDataEurobonusLoggedIn
|
||||
| UserDataNonLoggedIn
|
||||
| UserDataError
|
||||
|
||||
@@ -2,6 +2,7 @@ import { createCounter } from "@scandic-hotels/common/telemetry"
|
||||
|
||||
import { safeProtectedProcedure } from "../../../procedures"
|
||||
import { isValidSession } from "../../../utils/session"
|
||||
import { getEuroBonusProfileData } from "../../partners/sas/getEuroBonusProfile"
|
||||
import { getFriendsMembership } from "../helpers"
|
||||
import { getVerifiedUser } from "../utils/getVerifiedUser"
|
||||
|
||||
@@ -95,11 +96,19 @@ async function getSasEurobonusUserTrackingData(session: Session | null) {
|
||||
}
|
||||
|
||||
try {
|
||||
const eurobonusProfile = await getEuroBonusProfileData({
|
||||
accessToken: session.token.access_token,
|
||||
loginType: "eurobonus",
|
||||
})
|
||||
|
||||
const loggedInUserTrackingData: TrackingUserData = {
|
||||
loginStatus: "logged in",
|
||||
loginType: session.token.loginType,
|
||||
loginAction: "login success",
|
||||
memberType: "sas-eurobonus",
|
||||
eurobonusNumber: eurobonusProfile.eurobonusNumber,
|
||||
tier: eurobonusProfile.tier,
|
||||
linkStatus: eurobonusProfile.linkStatus,
|
||||
}
|
||||
|
||||
return loggedInUserTrackingData
|
||||
|
||||
Reference in New Issue
Block a user