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:
Anton Gunnarsson
2025-10-17 09:35:37 +00:00
parent c01f440651
commit 710309b7eb
17 changed files with 100 additions and 41 deletions

View File

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

View File

@@ -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)

View File

@@ -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

View File

@@ -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