ea3eac26c359e11b13828716af3ad790807bf03c
[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 _0x5294=['map','pm2_env','name','Online\x20apps:','filter','join','Offline\x20apps:','status','online','None','log','catch','error','exit','lodash','./mysqldb','./config/seedDB','./config/license','./rpc','./config/environment','app','./config/pm2','./config/pm2/config','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','./config/schedule/cloud-provider','sync','then','seedDB','listen','info','start','exitCode','number','length','\x20processes\x20failed\x20at\x20startup:\x20'];(function(_0x2e11ab,_0x4e146e){var _0x1dd724=function(_0x4c6abb){while(--_0x4c6abb){_0x2e11ab['push'](_0x2e11ab['shift']());}};_0x1dd724(++_0x4e146e);}(_0x5294,0x111));var _0x4529=function(_0x2b5eae,_0x55010d){_0x2b5eae=_0x2b5eae-0x0;var _0x5f3ac9=_0x5294[_0x2b5eae];return _0x5f3ac9;};'use strict';var _=require(_0x4529('0x0'));var db=require(_0x4529('0x1'))['db'];var seedDb=require(_0x4529('0x2'));var checkLicense=require(_0x4529('0x3'));var rpc=require(_0x4529('0x4'));var config=require(_0x4529('0x5'));var logger=require('./config/logger')(_0x4529('0x6'));var pm2=require(_0x4529('0x7'));var pm2Config=require(_0x4529('0x8'));var schedule=require('./config/schedule');var chat=require(_0x4529('0x9'));var whatsapp=require(_0x4529('0xa'));var transcribe=require(_0x4529('0xb'));var provider=require(_0x4529('0xc'));function main(){return db['sequelize'][_0x4529('0xd')]()[_0x4529('0xe')](function(){if(config[_0x4529('0xf')]){return seedDb['default']();}})['then'](function(){return checkLicense['default']();})[_0x4529('0xe')](function(){return rpc[_0x4529('0x10')]();})[_0x4529('0xe')](function(_0x579574){logger[_0x4529('0x11')](_0x579574);return chat[_0x4529('0x12')]();})[_0x4529('0xe')](function(){return whatsapp[_0x4529('0x12')]();})[_0x4529('0xe')](function(){return schedule[_0x4529('0x12')]();})['then'](function(){return transcribe['start']();})[_0x4529('0xe')](function(){return provider[_0x4529('0x12')]();})['then'](function(_0x2539ea){logger['info'](_0x2539ea);return pm2[_0x4529('0x12')](pm2Config);})[_0x4529('0xe')](function(_0x19dff1){var _0x3313e0=_0x19dff1['filter'](function(_0x3fa1a0){return typeof _0x3fa1a0[_0x4529('0x13')]===_0x4529('0x14')&&_0x3fa1a0['exitCode']>=0x0;});if(_0x3313e0[_0x4529('0x15')]>0x0){throw new Error(_0x3313e0[_0x4529('0x15')]+_0x4529('0x16')+_[_0x4529('0x17')](_0x3313e0,function(_0x4e17dd){return'\x22'+_0x4e17dd[_0x4529('0x18')][_0x4529('0x19')]+'\x22';}));}logger['info'](_0x4529('0x1a'),_[_0x4529('0x17')](_[_0x4529('0x1b')](_0x19dff1,{'status':'online'}),'name')[_0x4529('0x1c')]());logger[_0x4529('0x11')](_0x4529('0x1d'),_[_0x4529('0x17')](_[_0x4529('0x1b')](_0x19dff1,function(_0x5c7e39){return _0x5c7e39[_0x4529('0x1e')]!==_0x4529('0x1f');}),_0x4529('0x19'))[_0x4529('0x1c')]()||_0x4529('0x20'));console[_0x4529('0x21')]('App\x20Ready!');})[_0x4529('0x22')](function(_0xee9870){console[_0x4529('0x21')]('Server\x20failed\x20to\x20start\x20due\x20to\x20error!',_0xee9870);logger[_0x4529('0x23')]('Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s',_0xee9870);process[_0x4529('0x24')](0x1);});}main();