UNPKG

@botonic/plugin-flow-builder

Version:

Botonic plugin for **Hubtype Flow Builder**: run and bridge flow-driven logic from bots on the **current** line.

40 lines 2.09 kB
import { __awaiter, __rest } from "tslib"; import { EventAction } from '@botonic/shared'; import { getCommonFlowContentEventArgsForContentId, trackEvent, } from '../tracking'; export function getContentsByFallback(_a) { return __awaiter(this, arguments, void 0, function* ({ cmsApi, flowBuilderPlugin, botonicContext: context, }) { const fallbackNode = yield getFallbackNode(cmsApi, context); const fallbackContents = yield flowBuilderPlugin.getContentsByNode(fallbackNode); return fallbackContents; }); } function getFallbackNode(cmsApi, botonicContext) { return __awaiter(this, void 0, void 0, function* () { var _a, _b, _c; let extraData = (_a = botonicContext.session.user.extraData) !== null && _a !== void 0 ? _a : {}; if (extraData.isFirstFallbackOption === undefined) { extraData = Object.assign(Object.assign({}, extraData), { isFirstFallbackOption: true }); } const isFirstFallbackOption = !!extraData.isFirstFallbackOption; const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption); extraData = Object.assign(Object.assign({}, extraData), { isFirstFallbackOption: !isFirstFallbackOption }); yield botonicContext.updateBotSession({ user: { extraData }, }); const { flowId, flowName, flowNodeId, flowNodeContentId } = yield getCommonFlowContentEventArgsForContentId(botonicContext, fallbackNode.id); const event = { action: EventAction.Fallback, flowId, flowName, flowNodeId, flowNodeContentId, userInput: (_b = botonicContext.input.text) !== null && _b !== void 0 ? _b : '', fallbackOut: isFirstFallbackOption ? 1 : 2, fallbackMessageId: (_c = botonicContext.input.dbId) !== null && _c !== void 0 ? _c : '', }; const { action } = event, eventArgs = __rest(event, ["action"]); yield trackEvent(botonicContext, action, eventArgs); return fallbackNode; }); } //# sourceMappingURL=fallback.js.map