@benshi.ai/js-sdk
Version:
Benshi SDK
40 lines (32 loc) • 1.14 kB
text/typescript
import { injectEvent } from '../../core/injector'
import { hasRepeatedIds } from '../../utils'
import { ContentBlock } from '../Navigation/typings'
import {
LevelProperties, LoyaltyTypes, MilestoneProperties, PromoProperties,
} from './typings'
import LoyaltyPropertiesTI from './typings-ti'
const moduleName = ContentBlock.Loyalty
const ERROR_REPEATEAD_IDS = 'repeated-ids'
const logPromoEvent = (properties: PromoProperties, sendNow = false) => {
if (hasRepeatedIds(properties.items)) {
throw new Error(ERROR_REPEATEAD_IDS)
}
injectEvent(
properties,
[LoyaltyPropertiesTI],
LoyaltyTypes.Promo,
moduleName,
'',
sendNow)
}
const logLevelEvent = (properties: LevelProperties, sendNow = false) => {
injectEvent(properties, [LoyaltyPropertiesTI], LoyaltyTypes.Level, moduleName, '', sendNow)
}
const logMilestoneEvent = (properties: MilestoneProperties, sendNow = false) => {
injectEvent(properties, [LoyaltyPropertiesTI], LoyaltyTypes.Milestone, moduleName, '', sendNow)
}
export default {
logLevelEvent,
logMilestoneEvent,
logPromoEvent
}