feat(SW-3473): Rework booking-flow tracking provider * Remove tracking context and import instead * Remove unused file Approved-by: Joakim Jäderberg
68 lines
1.6 KiB
TypeScript
68 lines
1.6 KiB
TypeScript
import { trackEvent } from "@scandic-hotels/tracking/base"
|
|
|
|
import type {
|
|
PaymentEvent,
|
|
PaymentFailEvent,
|
|
} from "@scandic-hotels/tracking/types"
|
|
|
|
function isPaymentFailEvent(event: PaymentEvent): event is PaymentFailEvent {
|
|
return "errorMessage" in event
|
|
}
|
|
|
|
export function trackUpdatePaymentMethod({ method }: { method: string }) {
|
|
trackEvent({
|
|
event: "paymentSelection",
|
|
hotelInfo: {
|
|
hotelId: "", // TODO: Needs to be verified with analytics if this should even be here
|
|
},
|
|
cta: {
|
|
name: method,
|
|
},
|
|
})
|
|
}
|
|
|
|
export function trackPaymentEvent(paymentEvent: PaymentEvent) {
|
|
const paymentAttempt = {
|
|
event: paymentEvent.event,
|
|
hotelInfo: {
|
|
hotelId: paymentEvent.hotelId,
|
|
},
|
|
paymentInfo: {
|
|
isSavedCard: paymentEvent.isSavedCreditCard,
|
|
status: paymentEvent.status,
|
|
type: paymentEvent.method,
|
|
smsEnable: paymentEvent.smsEnable,
|
|
errorMessage: isPaymentFailEvent(paymentEvent)
|
|
? paymentEvent.errorMessage
|
|
: undefined,
|
|
},
|
|
}
|
|
trackEvent(paymentAttempt)
|
|
}
|
|
|
|
export function trackGlaSaveCardAttempt({
|
|
hotelId,
|
|
hasSavedCreditCard,
|
|
creditCardType,
|
|
lateArrivalGuarantee,
|
|
}: {
|
|
hotelId: string
|
|
hasSavedCreditCard: boolean
|
|
creditCardType?: string
|
|
lateArrivalGuarantee: "mandatory" | "yes" | "no" | "na"
|
|
}) {
|
|
trackEvent({
|
|
event: "glaCardSaveAttempt",
|
|
hotelInfo: {
|
|
hotelId,
|
|
lateArrivalGuarantee,
|
|
guaranteedProduct: "room",
|
|
},
|
|
paymentInfo: {
|
|
status: "glacardsaveattempt",
|
|
isSavedCreditCard: hasSavedCreditCard,
|
|
type: creditCardType,
|
|
},
|
|
})
|
|
}
|