UNPKG

@botonic/plugin-hubtype-analytics

Version:

Plugin for tracking in the Hubtype backend to see the results in the Hubtype Dashbord

104 lines (81 loc) 3.18 kB
/* eslint-disable complexity */ import { HtEvent, HtEventAiAgent, HtEventBotAction, HtEventConditionalChannel, HtEventConditionalCountry, HtEventConditionalCustom, HtEventConditionalQueueStatus, HtEventCustom, HtEventFallback, HtEventFeedback, HtEventFeedbackKnowledgebase, HtEventFlow, HtEventHandoff, HtEventHandoffOption, HtEventIntentSmart, HtEventKeyword, HtEventKnowledgeBase, HtEventRedirectFlow, HtEventWebviewActionTriggered, HtEventWebviewEnd, HtEventWebviewStep, } from './event-models' import { HtEventCaptureUserInput } from './event-models/ht-event-capture-user-input' import { EventAction, HtEventProps, RequestData } from './types' export function createHtEvent( requestData: RequestData, htEventProps: HtEventProps ): HtEvent { switch (htEventProps.action) { case EventAction.FeedbackCase: case EventAction.FeedbackConversation: case EventAction.FeedbackMessage: case EventAction.FeedbackWebview: return new HtEventFeedback(htEventProps, requestData) case EventAction.FeedbackKnowledgebase: return new HtEventFeedbackKnowledgebase(htEventProps, requestData) case EventAction.FlowNode: return new HtEventFlow(htEventProps, requestData) case EventAction.HandoffOption: return new HtEventHandoffOption(htEventProps, requestData) case EventAction.HandoffSuccess: case EventAction.HandoffFail: return new HtEventHandoff(htEventProps, requestData) case EventAction.Keyword: return new HtEventKeyword(htEventProps, requestData) case EventAction.IntentSmart: return new HtEventIntentSmart(htEventProps, requestData) case EventAction.Knowledgebase: return new HtEventKnowledgeBase(htEventProps, requestData) case EventAction.Fallback: return new HtEventFallback(htEventProps, requestData) case EventAction.WebviewStep: return new HtEventWebviewStep(htEventProps, requestData) case EventAction.WebviewEnd: return new HtEventWebviewEnd(htEventProps, requestData) case EventAction.Custom: return new HtEventCustom(htEventProps, requestData) case EventAction.AiAgent: return new HtEventAiAgent(htEventProps, requestData) case EventAction.ConditionalCountry: return new HtEventConditionalCountry(htEventProps, requestData) case EventAction.ConditionalQueueStatus: return new HtEventConditionalQueueStatus(htEventProps, requestData) case EventAction.ConditionalCustom: return new HtEventConditionalCustom(htEventProps, requestData) case EventAction.ConditionalChannel: return new HtEventConditionalChannel(htEventProps, requestData) case EventAction.BotAction: return new HtEventBotAction(htEventProps, requestData) case EventAction.WebviewActionTriggered: return new HtEventWebviewActionTriggered(htEventProps, requestData) case EventAction.RedirectFlow: return new HtEventRedirectFlow(htEventProps, requestData) case EventAction.CaptureUserInput: return new HtEventCaptureUserInput(htEventProps, requestData) default: return new HtEvent(htEventProps, requestData) } }