@botonic/plugin-flow-builder
Version:
Use Flow Builder to show your contents
27 lines • 1.39 kB
JavaScript
import { __awaiter } from "tslib";
import { EventAction, 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;
yield trackEvent(request, EventAction.Fallback, {
userInput: request.input.data,
fallbackOut: isFirstFallbackOption ? 1 : 2,
fallbackMessageId: request.input.message_id,
});
return fallbackNode;
});
}
//# sourceMappingURL=fallback.js.map