@botonic/plugin-flow-builder
Version:
Use Flow Builder to show your contents
62 lines • 2.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isKnowledgeBasesAllowed = exports.isSmartIntentsAllowed = exports.isKeywordsAllowed = exports.inputHasTextData = exports.getValueFromKeyPath = exports.resolveGetAccessToken = void 0;
const core_1 = require("@botonic/core");
const helpers_1 = require("./helpers");
const types_1 = require("./types");
function getAccessTokenFromSession(session) {
if (!session._access_token) {
throw new Error('No access token found in session');
}
return session._access_token;
}
function resolveGetAccessToken(getAccessToken) {
switch (process.env.NODE_ENV) {
case types_1.ProcessEnvNodeEnvs.PRODUCTION:
return getAccessTokenFromSession;
case types_1.ProcessEnvNodeEnvs.DEVELOPMENT:
return getAccessToken;
default:
throw new Error('No method defined for getting access token');
}
}
exports.resolveGetAccessToken = resolveGetAccessToken;
function getValueFromKeyPath(request, keyPath) {
if (keyPath.startsWith('input.') || keyPath.startsWith('session.')) {
return keyPath
.split('.')
.reduce((object, key) => resolveObjectKey(object, key), request);
}
return keyPath
.split('.')
.reduce((object, key) => resolveObjectKey(object, key), request.session.user.extra_data);
}
exports.getValueFromKeyPath = getValueFromKeyPath;
function resolveObjectKey(object, key) {
if (object && object[key] !== undefined) {
return object[key];
}
return undefined;
}
function inputHasTextData(input) {
return input.data !== undefined && input.type === core_1.INPUT.TEXT;
}
exports.inputHasTextData = inputHasTextData;
function isNluAllowed(request, nluFlag) {
const shadowing = Boolean(request.session._shadowing);
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
return !shadowing || (shadowing && flowBuilderPlugin.inShadowing[nluFlag]);
}
function isKeywordsAllowed(request) {
return isNluAllowed(request, 'allowKeywords');
}
exports.isKeywordsAllowed = isKeywordsAllowed;
function isSmartIntentsAllowed(request) {
return isNluAllowed(request, 'allowSmartIntents');
}
exports.isSmartIntentsAllowed = isSmartIntentsAllowed;
function isKnowledgeBasesAllowed(request) {
return isNluAllowed(request, 'allowKnowledgeBases');
}
exports.isKnowledgeBasesAllowed = isKnowledgeBasesAllowed;
//# sourceMappingURL=utils.js.map