UNPKG

asksuite-core

Version:
67 lines (52 loc) 1.84 kB
const _ = require('lodash'); const AWSS3Caller = require('./services/AWSS3Caller'); class AsksuiteTreeManagerGeneralUtils { constructor() {} static getLanguagesByCompany(company) { if (company && !_.isEmpty(company.languages)) { return company.languages; } const languages = []; let flag = null; let languageFlag = null; const regex = /https:\/\/lipis\.github\.io\/flag-icon-css\/flags\/4x3\/(\w+)\.svg/; if (company && company.languageFlags) { const addLanguage = (attrLanguageFlag, defaultFlag, prefixLanguage, defaultLanguage) => { if ((languageFlag = _.get(company.languageFlags, attrLanguageFlag, ''))) { flag = _.get(languageFlag.match(regex), '1', defaultFlag); languages.push(`${prefixLanguage}-${flag}`); } else { languages.push(defaultLanguage); } }; addLanguage('pt_br', 'br', 'pt', 'pt-br'); languages.push('en-us'); addLanguage('es', 'es', 'es', 'es-es'); } else { return ['pt-br', 'en-us', 'es-es']; } return languages; } static resolveDefaultLanguage(languages, language) { if (languages.includes(language)) { return language; } return _.find(languages, l => l.substring(0, 2) === language.substring(0, 2)) || language; } static getCachedChatTree(config, chatTreeId, language) { if (!config || !config.USE_S3_CACHE_CHAT_TREES) { return null; } const awsS3Caller = new AWSS3Caller(config.CORE_LAMBDA_AWS); const prefix = _.get(config, 'LAMBDA_TREE_MANAGER_CONFIG.PREFIX_FILES') || ''; return awsS3Caller .getObject( config.BUCKET_S3_CACHE_CHAT_TREES, `${prefix}${chatTreeId}/${language}/chattree.json`, ) .catch(() => null); } } module.exports = { AsksuiteTreeManagerGeneralUtils, };