UNPKG

@botonic/plugin-flow-builder

Version:

Use Flow Builder to show your contents

36 lines 1.84 kB
import { __awaiter, __rest } from "tslib"; import { EventAction } from '@botonic/core'; import { getCommonFlowContentEventArgsForContentId, trackEvent, } from '../tracking'; export function getContentsByFallback({ cmsApi, flowBuilderPlugin, request, }) { return __awaiter(this, void 0, void 0, function* () { const fallbackNode = yield getFallbackNode(cmsApi, request); const fallbackContents = yield flowBuilderPlugin.getContentsByNode(fallbackNode); return fallbackContents; }); } function getFallbackNode(cmsApi, request) { var _a; return __awaiter(this, void 0, void 0, function* () { if (((_a = request.session.user.extra_data) === null || _a === void 0 ? void 0 : _a.isFirstFallbackOption) === undefined) { request.session.user.extra_data = Object.assign(Object.assign({}, request.session.user.extra_data), { isFirstFallbackOption: true }); } const isFirstFallbackOption = !!request.session.user.extra_data.isFirstFallbackOption; const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption); request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption; const { flowId, flowName, flowNodeId, flowNodeContentId } = getCommonFlowContentEventArgsForContentId(request, fallbackNode.id); const event = { action: EventAction.Fallback, flowId, flowName, flowNodeId, flowNodeContentId, userInput: request.input.data, fallbackOut: isFirstFallbackOption ? 1 : 2, fallbackMessageId: request.input.message_id, }; const { action } = event, eventArgs = __rest(event, ["action"]); yield trackEvent(request, action, eventArgs); return fallbackNode; }); } //# sourceMappingURL=fallback.js.map