UNPKG

@botonic/plugin-flow-builder

Version:

Use Flow Builder to show your contents

53 lines 1.93 kB
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