d2b0199755e3c449fc106007a73b7478d3e9f6d8
[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 _0x7991=['exec','sendStatus','status','json','error','stack','name','send','npm\x20install','info','index','list','then','reject','express','length','catch','show','describe','params','create','body','join','cwd','dirname','chdir','start','dump','Missing\x20name\x20and/or\x20path','restart','stop','hasOwnProperty','Unknown\x20status','destroy','delete','lodash','../../config/pm2','../../config/logger','child_process'];(function(_0x5bd6da,_0x3f7ac8){var _0x5e6b8=function(_0x10ecdd){while(--_0x10ecdd){_0x5bd6da['push'](_0x5bd6da['shift']());}};_0x5e6b8(++_0x3f7ac8);}(_0x7991,0x10d));var _0x1799=function(_0x532749,_0x2fdabf){_0x532749=_0x532749-0x0;var _0x37c09e=_0x7991[_0x532749];return _0x37c09e;};'use strict';var _=require(_0x1799('0x0'));var pm2=require(_0x1799('0x1'));var logger=require(_0x1799('0x2'))('api');var path=require('path');var exec=require(_0x1799('0x3'))[_0x1799('0x4')];var BPromise=require('bluebird');function handleEntityNotFound(_0xa3cab8,_0x395cac){return function(_0x28403a){if(!_0x28403a){_0xa3cab8[_0x1799('0x5')](0x194);;}return _0x28403a;};}function respondWithResult(_0x1387ee,_0x1145ef){_0x1145ef=_0x1145ef||0xc8;return function(_0xb553e0){if(_0xb553e0){return _0x1387ee[_0x1799('0x6')](_0x1145ef)[_0x1799('0x7')](_0xb553e0);}return null;};}function handleError(_0x420314,_0x4dc14c){_0x4dc14c=_0x4dc14c||0x1f4;return function(_0x26f96b){logger[_0x1799('0x8')](_0x26f96b[_0x1799('0x9')]);if(_0x26f96b[_0x1799('0xa')]){delete _0x26f96b[_0x1799('0xa')];}_0x420314[_0x1799('0x6')](_0x4dc14c)[_0x1799('0xb')](_0x26f96b);};}function execChildProcess(){return new BPromise(function(_0x140b19,_0x50fe08){exec(_0x1799('0xc'),function(_0x4895b6,_0x21cca4,_0x1d3c38){logger[_0x1799('0xd')](_0x21cca4);logger['info'](_0x1d3c38);if(_0x4895b6){logger[_0x1799('0x8')](_0x4895b6);return _0x50fe08(_0x4895b6);}return _0x140b19(_0x21cca4);});});}exports[_0x1799('0xe')]=function(_0x4ff437,_0x1c707e){return pm2[_0x1799('0xf')]()[_0x1799('0x10')](function(_0x357957){if(_0x357957){var _0x577484=_[_0x1799('0x11')](_0x357957,function(_0x422ec0){return _0x422ec0[_0x1799('0xa')]===_0x1799('0x12')||_0x422ec0[_0x1799('0xa')]==='motion2';});return{'rows':_0x577484,'count':_0x577484[_0x1799('0x13')]};}return null;})[_0x1799('0x10')](respondWithResult(_0x1c707e,null))[_0x1799('0x14')](handleError(_0x1c707e,null));};exports[_0x1799('0x15')]=function(_0x3986cf,_0x4692f2){return pm2[_0x1799('0x16')](_0x3986cf[_0x1799('0x17')]['id'])[_0x1799('0x10')](respondWithResult(_0x4692f2,null))[_0x1799('0x10')](handleEntityNotFound(_0x4692f2,null))[_0x1799('0x14')](handleError(_0x4692f2,null));};exports[_0x1799('0x18')]=function(_0x4a130a,_0x3d35f4){if(_0x4a130a[_0x1799('0x19')][_0x1799('0xa')]&&_0x4a130a['body']['script']){var _0x282ed5=path[_0x1799('0x1a')](__dirname,'../../files/plugins',_0x4a130a[_0x1799('0x19')]['script']);var _0x3a60ef=process[_0x1799('0x1b')]();process['chdir'](path[_0x1799('0x1c')](_0x282ed5));return execChildProcess()[_0x1799('0x10')](function(_0x51a24e){process[_0x1799('0x1d')](_0x3a60ef);return pm2[_0x1799('0x1e')]({'name':_0x4a130a[_0x1799('0x19')][_0x1799('0xa')],'script':_0x282ed5});})[_0x1799('0x10')](function(_0x4fe9f3){pm2[_0x1799('0x1f')]();return _0x4fe9f3[0x0];})[_0x1799('0x10')](respondWithResult(_0x3d35f4,0xc9))['catch'](handleError(_0x3d35f4,null));}else{return _0x3d35f4[_0x1799('0x6')](0x1f4)[_0x1799('0xb')]({'message':_0x1799('0x20')});}};exports['update']=function(_0xbc6115,_0x189ba1){if(_0xbc6115[_0x1799('0x19')]['id']){delete _0xbc6115[_0x1799('0x19')]['id'];}var _0xd36d36={'online':_0x1799('0x21'),'stopped':_0x1799('0x22')};if(_0xd36d36[_0x1799('0x23')](_0xbc6115['body'][_0x1799('0x6')])){return pm2[_0xd36d36[_0xbc6115[_0x1799('0x19')][_0x1799('0x6')]]](_0xbc6115[_0x1799('0x17')]['id'])[_0x1799('0x10')](respondWithResult(_0x189ba1,0xc8))['catch'](handleError(_0x189ba1,null));}else{return _0x189ba1[_0x1799('0x6')](0x1f4)['send']({'message':_0x1799('0x24')});}};exports[_0x1799('0x25')]=function(_0x20917f,_0x27f88d){if(_0x20917f['body']['id']){delete _0x20917f['body']['id'];}if(_0x20917f[_0x1799('0x17')]['id']){return pm2[_0x1799('0x26')](_0x20917f['params']['id'])['then'](function(_0x59e7c1){pm2['dump']();return _0x59e7c1[0x0];})[_0x1799('0x10')](respondWithResult(_0x27f88d,null))[_0x1799('0x14')](handleError(_0x27f88d,null));}else{return _0x27f88d[_0x1799('0x6')](0x1f4)[_0x1799('0xb')]({'message':'Unknown\x20id'});}};