6c9366249b6a2ec52abe8751d287d2762c6a8f38
[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 _0x4fd7=['start','filter','exitCode','number','length','\x20processes\x20failed\x20at\x20startup:\x20','pm2_env','Online\x20apps:','map','online','name','join','Offline\x20apps:','status','None','log','catch','Server\x20failed\x20to\x20start\x20due\x20to\x20error!','error','exit','lodash','./mysqldb','./config/seedDB','./config/license','./config/logger','app','./config/pm2/config','./config/schedule/chat','./config/schedule/transcribe','./config/schedule/cloud-provider','sync','then','default','listen','info'];(function(_0xbb14db,_0x3ee8c6){var _0x36bed7=function(_0x16c478){while(--_0x16c478){_0xbb14db['push'](_0xbb14db['shift']());}};_0x36bed7(++_0x3ee8c6);}(_0x4fd7,0xe6));var _0x74fd=function(_0x1146cb,_0x1047d5){_0x1146cb=_0x1146cb-0x0;var _0x4a0831=_0x4fd7[_0x1146cb];return _0x4a0831;};'use strict';var _=require(_0x74fd('0x0'));var db=require(_0x74fd('0x1'))['db'];var seedDb=require(_0x74fd('0x2'));var checkLicense=require(_0x74fd('0x3'));var rpc=require('./rpc');var config=require('./config/environment');var logger=require(_0x74fd('0x4'))(_0x74fd('0x5'));var pm2=require('./config/pm2');var pm2Config=require(_0x74fd('0x6'));var schedule=require('./config/schedule');var chat=require(_0x74fd('0x7'));var whatsapp=require('./config/schedule/whatsapp');var transcribe=require(_0x74fd('0x8'));var provider=require(_0x74fd('0x9'));function main(){return db['sequelize'][_0x74fd('0xa')]()[_0x74fd('0xb')](function(){if(config['seedDB']){return seedDb[_0x74fd('0xc')]();}})[_0x74fd('0xb')](function(){return checkLicense[_0x74fd('0xc')]();})[_0x74fd('0xb')](function(){return rpc[_0x74fd('0xd')]();})[_0x74fd('0xb')](function(_0x83925f){logger[_0x74fd('0xe')](_0x83925f);return chat[_0x74fd('0xf')]();})[_0x74fd('0xb')](function(){return whatsapp[_0x74fd('0xf')]();})[_0x74fd('0xb')](function(){return schedule[_0x74fd('0xf')]();})[_0x74fd('0xb')](function(){return transcribe[_0x74fd('0xf')]();})[_0x74fd('0xb')](function(){return provider['start']();})[_0x74fd('0xb')](function(_0x2a0b7b){logger['info'](_0x2a0b7b);return pm2['start'](pm2Config);})[_0x74fd('0xb')](function(_0x2a4d2e){var _0x1a812e=_0x2a4d2e[_0x74fd('0x10')](function(_0x24639c){return typeof _0x24639c[_0x74fd('0x11')]===_0x74fd('0x12')&&_0x24639c[_0x74fd('0x11')]>=0x0;});if(_0x1a812e[_0x74fd('0x13')]>0x0){throw new Error(_0x1a812e[_0x74fd('0x13')]+_0x74fd('0x14')+_['map'](_0x1a812e,function(_0x2975f3){return'\x22'+_0x2975f3[_0x74fd('0x15')]['name']+'\x22';}));}logger[_0x74fd('0xe')](_0x74fd('0x16'),_[_0x74fd('0x17')](_[_0x74fd('0x10')](_0x2a4d2e,{'status':_0x74fd('0x18')}),_0x74fd('0x19'))[_0x74fd('0x1a')]());logger[_0x74fd('0xe')](_0x74fd('0x1b'),_[_0x74fd('0x17')](_[_0x74fd('0x10')](_0x2a4d2e,function(_0xb23e0){return _0xb23e0[_0x74fd('0x1c')]!==_0x74fd('0x18');}),_0x74fd('0x19'))[_0x74fd('0x1a')]()||_0x74fd('0x1d'));console[_0x74fd('0x1e')]('App\x20Ready!');})[_0x74fd('0x1f')](function(_0x464bb1){console[_0x74fd('0x1e')](_0x74fd('0x20'),_0x464bb1);logger[_0x74fd('0x21')]('Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s',_0x464bb1);process[_0x74fd('0x22')](0x1);});}main();