@botonic/plugin-flow-builder
Version:
Use Flow Builder to show your contents
53 lines • 1.93 kB
JavaScript
import { INPUT } from '@botonic/core';
import { getFlowBuilderPlugin } from './helpers';
import { ProcessEnvNodeEnvs } from './types';
function getAccessTokenFromSession(session) {
if (!session._access_token) {
throw new Error('No access token found in session');
}
return session._access_token;
}
export function resolveGetAccessToken(getAccessToken) {
switch (process.env.NODE_ENV) {
case ProcessEnvNodeEnvs.PRODUCTION:
return getAccessTokenFromSession;
case ProcessEnvNodeEnvs.DEVELOPMENT:
return getAccessToken;
default:
throw new Error('No method defined for getting access token');
}
}
export 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);
}
function resolveObjectKey(object, key) {
if (object && object[key] !== undefined) {
return object[key];
}
return undefined;
}
export function inputHasTextData(input) {
return input.data !== undefined && input.type === INPUT.TEXT;
}
function isNluAllowed(request, nluFlag) {
const shadowing = Boolean(request.session._shadowing);
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
return !shadowing || (shadowing && flowBuilderPlugin.inShadowing[nluFlag]);
}
export function isKeywordsAllowed(request) {
return isNluAllowed(request, 'allowKeywords');
}
export function isSmartIntentsAllowed(request) {
return isNluAllowed(request, 'allowSmartIntents');
}
export function isKnowledgeBasesAllowed(request) {
return isNluAllowed(request, 'allowKnowledgeBases');
}
//# sourceMappingURL=utils.js.map