asksuite-core
Version:
59 lines (50 loc) • 1.67 kB
JavaScript
const AskstoreUtils = require('./util/AskstoreUtils');
const ChatTreeModifiersUtils = require('./util/ChatTreeModifiersUtils');
const PackageModifiersUtils = require('./util/PackageModifiersUtils');
class TreeCompiler {
constructor(configuration, awsLambdaCaller) {
this.configuration = configuration;
this.awsLambdaCaller = awsLambdaCaller;
}
compile(chatTree, company) {
return new Promise((resolve, reject) => {
const executor = async () => {
try {
const apps = await AskstoreUtils.getInstalledApps(
chatTree.chatTreeId,
this.configuration,
);
const modifiers = await ChatTreeModifiersUtils.getChatTreeModifiers(
chatTree.chatTreeId,
this.configuration,
);
const packages = await PackageModifiersUtils.getPackageModifiers(
chatTree.chatTreeId,
this.configuration,
);
const result = await this.awsLambdaCaller.call(
{
tree: chatTree,
apps,
modifiers,
packages,
company,
},
'asksuite-tree-manager-dev-tree-compiler',
);
if (result.statusCode === 200) {
resolve(JSON.parse(result.body));
} else {
console.log('Erro no lambda asksuite-tree-manager-dev-tree-compiler', result);
reject(result);
}
} catch (e) {
console.log('Erro ao invocar asksuite-tree-manager-dev-tree-compiler', e);
reject();
}
};
executor();
});
}
}
module.exports = TreeCompiler;