UNPKG

@botonic/plugin-flow-builder

Version:

Use Flow Builder to show your contents

40 lines 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getContentsByFallback = void 0; const tslib_1 = require("tslib"); const core_1 = require("@botonic/core"); const tracking_1 = require("../tracking"); function getContentsByFallback({ cmsApi, flowBuilderPlugin, request, }) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const fallbackNode = yield getFallbackNode(cmsApi, request); const fallbackContents = yield flowBuilderPlugin.getContentsByNode(fallbackNode); return fallbackContents; }); } exports.getContentsByFallback = getContentsByFallback; function getFallbackNode(cmsApi, request) { var _a; return tslib_1.__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 } = (0, tracking_1.getCommonFlowContentEventArgsForContentId)(request, fallbackNode.id); const event = { action: core_1.EventAction.Fallback, flowId, flowName, flowNodeId, flowNodeContentId, userInput: request.input.data, fallbackOut: isFirstFallbackOption ? 1 : 2, fallbackMessageId: request.input.message_id, }; const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]); yield (0, tracking_1.trackEvent)(request, action, eventArgs); return fallbackNode; }); } //# sourceMappingURL=fallback.js.map