3abc8209e374755c8590b2b812e92b7c24f3cdbb
[motion2.git] / server / api / pm2 / pm2.controller.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 _0xc608=['../../config/logger','api','path','exec','bluebird','sendStatus','status','error','name','send','npm\x20install','info','index','then','reject','express','motion2','length','show','params','catch','create','body','script','join','../../files/plugins','cwd','chdir','start','dump','update','restart','stop','hasOwnProperty','Unknown\x20status','Unknown\x20id','lodash','../../config/pm2'];(function(_0x55ad11,_0x34558e){var _0x5729fd=function(_0x2aff4b){while(--_0x2aff4b){_0x55ad11['push'](_0x55ad11['shift']());}};_0x5729fd(++_0x34558e);}(_0xc608,0x1ec));var _0x8c60=function(_0x5c23e1,_0x47634d){_0x5c23e1=_0x5c23e1-0x0;var _0x159458=_0xc608[_0x5c23e1];return _0x159458;};'use strict';var _=require(_0x8c60('0x0'));var pm2=require(_0x8c60('0x1'));var logger=require(_0x8c60('0x2'))(_0x8c60('0x3'));var path=require(_0x8c60('0x4'));var exec=require('child_process')[_0x8c60('0x5')];var BPromise=require(_0x8c60('0x6'));function handleEntityNotFound(_0x9b1f86,_0x59746e){return function(_0x26cec8){if(!_0x26cec8){_0x9b1f86[_0x8c60('0x7')](0x194);;}return _0x26cec8;};}function respondWithResult(_0x7f7a89,_0x5662b9){_0x5662b9=_0x5662b9||0xc8;return function(_0x3a064e){if(_0x3a064e){return _0x7f7a89[_0x8c60('0x8')](_0x5662b9)['json'](_0x3a064e);}return null;};}function handleError(_0x34ca96,_0x45263e){_0x45263e=_0x45263e||0x1f4;return function(_0x3c26a9){logger[_0x8c60('0x9')](_0x3c26a9['stack']);if(_0x3c26a9[_0x8c60('0xa')]){delete _0x3c26a9[_0x8c60('0xa')];}_0x34ca96[_0x8c60('0x8')](_0x45263e)[_0x8c60('0xb')](_0x3c26a9);};}function execChildProcess(){return new BPromise(function(_0x3a9be3,_0x1fa519){exec(_0x8c60('0xc'),function(_0x55fe91,_0x29720e,_0x19348b){logger[_0x8c60('0xd')](_0x29720e);logger[_0x8c60('0xd')](_0x19348b);if(_0x55fe91){logger[_0x8c60('0x9')](_0x55fe91);return _0x1fa519(_0x55fe91);}return _0x3a9be3(_0x29720e);});});}exports[_0x8c60('0xe')]=function(_0x3aaa09,_0x321906){return pm2['list']()[_0x8c60('0xf')](function(_0x5888cb){if(_0x5888cb){var _0xfc4bfb=_[_0x8c60('0x10')](_0x5888cb,function(_0x257a69){return _0x257a69[_0x8c60('0xa')]===_0x8c60('0x11')||_0x257a69[_0x8c60('0xa')]===_0x8c60('0x12');});return{'rows':_0xfc4bfb,'count':_0xfc4bfb[_0x8c60('0x13')]};}return null;})[_0x8c60('0xf')](respondWithResult(_0x321906,null))['catch'](handleError(_0x321906,null));};exports[_0x8c60('0x14')]=function(_0x1f3b56,_0x3fd8bf){return pm2['describe'](_0x1f3b56[_0x8c60('0x15')]['id'])[_0x8c60('0xf')](respondWithResult(_0x3fd8bf,null))[_0x8c60('0xf')](handleEntityNotFound(_0x3fd8bf,null))[_0x8c60('0x16')](handleError(_0x3fd8bf,null));};exports[_0x8c60('0x17')]=function(_0x16c026,_0x903f36){if(_0x16c026[_0x8c60('0x18')][_0x8c60('0xa')]&&_0x16c026[_0x8c60('0x18')][_0x8c60('0x19')]){var _0x50afe9=path[_0x8c60('0x1a')](__dirname,_0x8c60('0x1b'),_0x16c026['body'][_0x8c60('0x19')]);var _0x9c2a65=process[_0x8c60('0x1c')]();process[_0x8c60('0x1d')](path['dirname'](_0x50afe9));return execChildProcess()[_0x8c60('0xf')](function(_0x5a3da9){process[_0x8c60('0x1d')](_0x9c2a65);return pm2[_0x8c60('0x1e')]({'name':_0x16c026[_0x8c60('0x18')][_0x8c60('0xa')],'script':_0x50afe9});})[_0x8c60('0xf')](function(_0xb1887e){pm2[_0x8c60('0x1f')]();return _0xb1887e[0x0];})[_0x8c60('0xf')](respondWithResult(_0x903f36,0xc9))['catch'](handleError(_0x903f36,null));}else{return _0x903f36[_0x8c60('0x8')](0x1f4)[_0x8c60('0xb')]({'message':'Missing\x20name\x20and/or\x20path'});}};exports[_0x8c60('0x20')]=function(_0x3b1150,_0x3b1a10){if(_0x3b1150['body']['id']){delete _0x3b1150[_0x8c60('0x18')]['id'];}var _0x39b30a={'online':_0x8c60('0x21'),'stopped':_0x8c60('0x22')};if(_0x39b30a[_0x8c60('0x23')](_0x3b1150[_0x8c60('0x18')][_0x8c60('0x8')])){return pm2[_0x39b30a[_0x3b1150[_0x8c60('0x18')]['status']]](_0x3b1150['params']['id'])[_0x8c60('0xf')](respondWithResult(_0x3b1a10,0xc8))[_0x8c60('0x16')](handleError(_0x3b1a10,null));}else{return _0x3b1a10[_0x8c60('0x8')](0x1f4)[_0x8c60('0xb')]({'message':_0x8c60('0x24')});}};exports['destroy']=function(_0xf43bb9,_0x54758d){if(_0xf43bb9[_0x8c60('0x18')]['id']){delete _0xf43bb9[_0x8c60('0x18')]['id'];}if(_0xf43bb9['params']['id']){return pm2['delete'](_0xf43bb9[_0x8c60('0x15')]['id'])[_0x8c60('0xf')](function(_0x2c2a89){pm2['dump']();return _0x2c2a89[0x0];})[_0x8c60('0xf')](respondWithResult(_0x54758d,null))[_0x8c60('0x16')](handleError(_0x54758d,null));}else{return _0x54758d[_0x8c60('0x8')](0x1f4)[_0x8c60('0xb')]({'message':_0x8c60('0x25')});}};