asksuite-core
Version:
67 lines (52 loc) • 1.84 kB
JavaScript
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,
};