7866b70c85fd5b1ac2771e4ab8c1f8730a94342e
[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 _0xb01f=['reject','length','describe','params','catch','create','body','script','join','../../files/plugins','chdir','dirname','start','dump','send','Missing\x20name\x20and/or\x20path','restart','hasOwnProperty','Unknown\x20status','delete','lodash','../../config/pm2','../../config/logger','path','child_process','exec','bluebird','sendStatus','status','json','error','stack','name','npm\x20install','info','index','list','then'];(function(_0x245e2d,_0x1515a6){var _0x2d1b6f=function(_0xd5b890){while(--_0xd5b890){_0x245e2d['push'](_0x245e2d['shift']());}};_0x2d1b6f(++_0x1515a6);}(_0xb01f,0x11e));var _0xfb01=function(_0x2e0dc6,_0x1c62fa){_0x2e0dc6=_0x2e0dc6-0x0;var _0x58ff99=_0xb01f[_0x2e0dc6];return _0x58ff99;};'use strict';var _=require(_0xfb01('0x0'));var pm2=require(_0xfb01('0x1'));var logger=require(_0xfb01('0x2'))('api');var path=require(_0xfb01('0x3'));var exec=require(_0xfb01('0x4'))[_0xfb01('0x5')];var BPromise=require(_0xfb01('0x6'));function handleEntityNotFound(_0x56fde5,_0x3b1e54){return function(_0x1c010c){if(!_0x1c010c){_0x56fde5[_0xfb01('0x7')](0x194);;}return _0x1c010c;};}function respondWithResult(_0x594f3e,_0x5c556e){_0x5c556e=_0x5c556e||0xc8;return function(_0x171ed3){if(_0x171ed3){return _0x594f3e[_0xfb01('0x8')](_0x5c556e)[_0xfb01('0x9')](_0x171ed3);}return null;};}function handleError(_0x4982d1,_0x5e12fa){_0x5e12fa=_0x5e12fa||0x1f4;return function(_0x2ca15d){logger[_0xfb01('0xa')](_0x2ca15d[_0xfb01('0xb')]);if(_0x2ca15d[_0xfb01('0xc')]){delete _0x2ca15d[_0xfb01('0xc')];}_0x4982d1[_0xfb01('0x8')](_0x5e12fa)['send'](_0x2ca15d);};}function execChildProcess(){return new BPromise(function(_0x1c9acc,_0x2ce921){exec(_0xfb01('0xd'),function(_0x339e5d,_0x5a6ce7,_0x4c7c98){logger[_0xfb01('0xe')](_0x5a6ce7);logger['info'](_0x4c7c98);if(_0x339e5d){logger['error'](_0x339e5d);return _0x2ce921(_0x339e5d);}return _0x1c9acc(_0x5a6ce7);});});}exports[_0xfb01('0xf')]=function(_0x4431cb,_0x31e588){return pm2[_0xfb01('0x10')]()[_0xfb01('0x11')](function(_0x4b15a4){if(_0x4b15a4){var _0x340962=_[_0xfb01('0x12')](_0x4b15a4,function(_0x2753e1){return _0x2753e1[_0xfb01('0xc')]==='express'||_0x2753e1['name']==='motion2';});return{'rows':_0x340962,'count':_0x340962[_0xfb01('0x13')]};}return null;})[_0xfb01('0x11')](respondWithResult(_0x31e588,null))['catch'](handleError(_0x31e588,null));};exports['show']=function(_0x37695f,_0x32ced2){return pm2[_0xfb01('0x14')](_0x37695f[_0xfb01('0x15')]['id'])[_0xfb01('0x11')](respondWithResult(_0x32ced2,null))[_0xfb01('0x11')](handleEntityNotFound(_0x32ced2,null))[_0xfb01('0x16')](handleError(_0x32ced2,null));};exports[_0xfb01('0x17')]=function(_0xdc82f5,_0x2cf6b0){if(_0xdc82f5[_0xfb01('0x18')][_0xfb01('0xc')]&&_0xdc82f5['body'][_0xfb01('0x19')]){var _0xf73e87=path[_0xfb01('0x1a')](__dirname,_0xfb01('0x1b'),_0xdc82f5[_0xfb01('0x18')]['script']);var _0x13fce2=process['cwd']();process[_0xfb01('0x1c')](path[_0xfb01('0x1d')](_0xf73e87));return execChildProcess()[_0xfb01('0x11')](function(_0x24bb58){process[_0xfb01('0x1c')](_0x13fce2);return pm2[_0xfb01('0x1e')]({'name':_0xdc82f5['body'][_0xfb01('0xc')],'script':_0xf73e87});})['then'](function(_0x2fc816){pm2[_0xfb01('0x1f')]();return _0x2fc816[0x0];})[_0xfb01('0x11')](respondWithResult(_0x2cf6b0,0xc9))[_0xfb01('0x16')](handleError(_0x2cf6b0,null));}else{return _0x2cf6b0[_0xfb01('0x8')](0x1f4)[_0xfb01('0x20')]({'message':_0xfb01('0x21')});}};exports['update']=function(_0x25ec2f,_0x4c67be){if(_0x25ec2f[_0xfb01('0x18')]['id']){delete _0x25ec2f[_0xfb01('0x18')]['id'];}var _0x32ef89={'online':_0xfb01('0x22'),'stopped':'stop'};if(_0x32ef89[_0xfb01('0x23')](_0x25ec2f[_0xfb01('0x18')][_0xfb01('0x8')])){return pm2[_0x32ef89[_0x25ec2f[_0xfb01('0x18')][_0xfb01('0x8')]]](_0x25ec2f[_0xfb01('0x15')]['id'])[_0xfb01('0x11')](respondWithResult(_0x4c67be,0xc8))[_0xfb01('0x16')](handleError(_0x4c67be,null));}else{return _0x4c67be[_0xfb01('0x8')](0x1f4)[_0xfb01('0x20')]({'message':_0xfb01('0x24')});}};exports['destroy']=function(_0x11a93a,_0x5683dd){if(_0x11a93a[_0xfb01('0x18')]['id']){delete _0x11a93a['body']['id'];}if(_0x11a93a['params']['id']){return pm2[_0xfb01('0x25')](_0x11a93a['params']['id'])[_0xfb01('0x11')](function(_0x27334e){pm2[_0xfb01('0x1f')]();return _0x27334e[0x0];})[_0xfb01('0x11')](respondWithResult(_0x5683dd,null))[_0xfb01('0x16')](handleError(_0x5683dd,null));}else{return _0x5683dd[_0xfb01('0x8')](0x1f4)[_0xfb01('0x20')]({'message':'Unknown\x20id'});}};