Built motion from commit 0900f080.|2.5.45
[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 _0x34f8=['lodash','./mysqldb','./config/seedDB','./config/license','./rpc','app','./config/pm2','./config/schedule','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','sync','then','seedDB','default','info','start','filter','exitCode','length','\x20processes\x20failed\x20at\x20startup:\x20','pm2_env','name','Online\x20apps:','online','Offline\x20apps:','join','None','log','App\x20Ready!','Server\x20failed\x20to\x20start\x20due\x20to\x20error!','exit'];(function(_0x27da5c,_0x21ede4){var _0x168107=function(_0xe1f07e){while(--_0xe1f07e){_0x27da5c['push'](_0x27da5c['shift']());}};_0x168107(++_0x21ede4);}(_0x34f8,0x80));var _0x834f=function(_0x22d673,_0x60bede){_0x22d673=_0x22d673-0x0;var _0x6dea81=_0x34f8[_0x22d673];return _0x6dea81;};'use strict';var _=require(_0x834f('0x0'));var db=require(_0x834f('0x1'))['db'];var seedDb=require(_0x834f('0x2'));var checkLicense=require(_0x834f('0x3'));var rpc=require(_0x834f('0x4'));var config=require('./config/environment');var logger=require('./config/logger')(_0x834f('0x5'));var pm2=require(_0x834f('0x6'));var pm2Config=require('./config/pm2/config');var schedule=require(_0x834f('0x7'));var chat=require(_0x834f('0x8'));var whatsapp=require(_0x834f('0x9'));var transcribe=require(_0x834f('0xa'));var provider=require('./config/schedule/cloud-provider');function main(){return db['sequelize'][_0x834f('0xb')]()[_0x834f('0xc')](function(){if(config[_0x834f('0xd')]){return seedDb[_0x834f('0xe')]();}})['then'](function(){return checkLicense[_0x834f('0xe')]();})[_0x834f('0xc')](function(){return rpc['listen']();})[_0x834f('0xc')](function(_0x353699){logger[_0x834f('0xf')](_0x353699);return chat[_0x834f('0x10')]();})[_0x834f('0xc')](function(){return whatsapp[_0x834f('0x10')]();})[_0x834f('0xc')](function(){return schedule[_0x834f('0x10')]();})['then'](function(){return transcribe[_0x834f('0x10')]();})[_0x834f('0xc')](function(){return provider[_0x834f('0x10')]();})[_0x834f('0xc')](function(_0x467a45){logger['info'](_0x467a45);return pm2[_0x834f('0x10')](pm2Config);})[_0x834f('0xc')](function(_0x5bfea4){var _0x34348c=_0x5bfea4[_0x834f('0x11')](function(_0x55bc81){return typeof _0x55bc81[_0x834f('0x12')]==='number'&&_0x55bc81[_0x834f('0x12')]>=0x0;});if(_0x34348c[_0x834f('0x13')]>0x0){throw new Error(_0x34348c[_0x834f('0x13')]+_0x834f('0x14')+_['map'](_0x34348c,function(_0x58154d){return'\x22'+_0x58154d[_0x834f('0x15')][_0x834f('0x16')]+'\x22';}));}logger[_0x834f('0xf')](_0x834f('0x17'),_['map'](_[_0x834f('0x11')](_0x5bfea4,{'status':_0x834f('0x18')}),_0x834f('0x16'))['join']());logger['info'](_0x834f('0x19'),_['map'](_[_0x834f('0x11')](_0x5bfea4,function(_0x148839){return _0x148839['status']!==_0x834f('0x18');}),'name')[_0x834f('0x1a')]()||_0x834f('0x1b'));console[_0x834f('0x1c')](_0x834f('0x1d'));})['catch'](function(_0x170460){console['log'](_0x834f('0x1e'),_0x170460);logger['error']('Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s',_0x170460);process[_0x834f('0x1f')](0x1);});}main();