c586690b63fde058892ea64f707be5c46fea2ff0
[motion2.git] / server / app.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x8375=['./config/pm2','./config/pm2/config','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','./config/schedule/cloud-provider','sequelize','seedDB','default','listen','then','info','start','filter','exitCode','number','length','map','pm2_env','online','join','Offline\x20apps:','None','log','App\x20Ready!','Server\x20failed\x20to\x20start\x20due\x20to\x20error!','error','exit','lodash','./mysqldb','./config/seedDB','./rpc','./config/environment','./config/logger','app'];(function(_0x531125,_0x398535){var _0x529a09=function(_0x3e54b0){while(--_0x3e54b0){_0x531125['push'](_0x531125['shift']());}};_0x529a09(++_0x398535);}(_0x8375,0xa8));var _0x5837=function(_0x4808cd,_0x1522c2){_0x4808cd=_0x4808cd-0x0;var _0x560440=_0x8375[_0x4808cd];return _0x560440;};'use strict';var _=require(_0x5837('0x0'));var db=require(_0x5837('0x1'))['db'];var seedDb=require(_0x5837('0x2'));var checkLicense=require('./config/license');var rpc=require(_0x5837('0x3'));var config=require(_0x5837('0x4'));var logger=require(_0x5837('0x5'))(_0x5837('0x6'));var pm2=require(_0x5837('0x7'));var pm2Config=require(_0x5837('0x8'));var schedule=require('./config/schedule');var chat=require(_0x5837('0x9'));var whatsapp=require(_0x5837('0xa'));var transcribe=require(_0x5837('0xb'));var provider=require(_0x5837('0xc'));function main(){return db[_0x5837('0xd')]['sync']()['then'](function(){if(config[_0x5837('0xe')]){return seedDb[_0x5837('0xf')]();}})['then'](function(){return checkLicense[_0x5837('0xf')]();})['then'](function(){return rpc[_0x5837('0x10')]();})[_0x5837('0x11')](function(_0x11cd29){logger[_0x5837('0x12')](_0x11cd29);return chat[_0x5837('0x13')]();})[_0x5837('0x11')](function(){return whatsapp['start']();})[_0x5837('0x11')](function(){return schedule[_0x5837('0x13')]();})[_0x5837('0x11')](function(){return transcribe[_0x5837('0x13')]();})[_0x5837('0x11')](function(){return provider['start']();})['then'](function(_0x5a23d2){logger[_0x5837('0x12')](_0x5a23d2);return pm2[_0x5837('0x13')](pm2Config);})[_0x5837('0x11')](function(_0xa5718d){var _0x17601e=_0xa5718d[_0x5837('0x14')](function(_0x206f02){return typeof _0x206f02[_0x5837('0x15')]===_0x5837('0x16')&&_0x206f02['exitCode']>=0x0;});if(_0x17601e[_0x5837('0x17')]>0x0){throw new Error(_0x17601e[_0x5837('0x17')]+'\x20processes\x20failed\x20at\x20startup:\x20'+_[_0x5837('0x18')](_0x17601e,function(_0x2297b4){return'\x22'+_0x2297b4[_0x5837('0x19')]['name']+'\x22';}));}logger['info']('Online\x20apps:',_[_0x5837('0x18')](_[_0x5837('0x14')](_0xa5718d,{'status':_0x5837('0x1a')}),'name')[_0x5837('0x1b')]());logger[_0x5837('0x12')](_0x5837('0x1c'),_[_0x5837('0x18')](_['filter'](_0xa5718d,function(_0x4908c2){return _0x4908c2['status']!==_0x5837('0x1a');}),'name')[_0x5837('0x1b')]()||_0x5837('0x1d'));console[_0x5837('0x1e')](_0x5837('0x1f'));})['catch'](function(_0x5aa887){console[_0x5837('0x1e')](_0x5837('0x20'),_0x5aa887);logger[_0x5837('0x21')]('Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s',_0x5aa887);process[_0x5837('0x22')](0x1);});}main();