0fd25450dfed2fcaae138549f1be96cea5ebd5bb
[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 _0xb79c=['join','../../files/plugins','chdir','dirname','start','dump','send','update','restart','hasOwnProperty','Unknown\x20status','destroy','delete','Unknown\x20id','lodash','../../config/pm2','../../config/logger','api','child_process','exec','bluebird','sendStatus','status','npm\x20install','info','error','index','list','then','name','express','motion2','catch','show','describe','params','create','body','script'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xb79c,0x16d));var _0xcb79=function(_0x309240,_0x5dddc2){_0x309240=_0x309240-0x0;var _0x23cdd2=_0xb79c[_0x309240];return _0x23cdd2;};'use strict';var _=require(_0xcb79('0x0'));var pm2=require(_0xcb79('0x1'));var logger=require(_0xcb79('0x2'))(_0xcb79('0x3'));var path=require('path');var exec=require(_0xcb79('0x4'))[_0xcb79('0x5')];var BPromise=require(_0xcb79('0x6'));function handleEntityNotFound(_0x28328f,_0x50ef8f){return function(_0x17f667){if(!_0x17f667){_0x28328f[_0xcb79('0x7')](0x194);;}return _0x17f667;};}function respondWithResult(_0x18aef7,_0xca5b9a){_0xca5b9a=_0xca5b9a||0xc8;return function(_0x3e01c6){if(_0x3e01c6){return _0x18aef7[_0xcb79('0x8')](_0xca5b9a)['json'](_0x3e01c6);}return null;};}function handleError(_0xe61c5a,_0x2d99d7){_0x2d99d7=_0x2d99d7||0x1f4;return function(_0x5314c4){logger['error'](_0x5314c4['stack']);if(_0x5314c4['name']){delete _0x5314c4['name'];}_0xe61c5a[_0xcb79('0x8')](_0x2d99d7)['send'](_0x5314c4);};}function execChildProcess(){return new BPromise(function(_0x1d535b,_0x5c5557){exec(_0xcb79('0x9'),function(_0x53c639,_0x3f5e07,_0x3d9ad3){logger['info'](_0x3f5e07);logger[_0xcb79('0xa')](_0x3d9ad3);if(_0x53c639){logger[_0xcb79('0xb')](_0x53c639);return _0x5c5557(_0x53c639);}return _0x1d535b(_0x3f5e07);});});}exports[_0xcb79('0xc')]=function(_0x5bf492,_0x39538a){return pm2[_0xcb79('0xd')]()[_0xcb79('0xe')](function(_0x2f9eb0){if(_0x2f9eb0){var _0x112e48=_['reject'](_0x2f9eb0,function(_0x27bf41){return _0x27bf41[_0xcb79('0xf')]===_0xcb79('0x10')||_0x27bf41[_0xcb79('0xf')]===_0xcb79('0x11');});return{'rows':_0x112e48,'count':_0x112e48['length']};}return null;})[_0xcb79('0xe')](respondWithResult(_0x39538a,null))[_0xcb79('0x12')](handleError(_0x39538a,null));};exports[_0xcb79('0x13')]=function(_0x3d09ba,_0x2234e7){return pm2[_0xcb79('0x14')](_0x3d09ba[_0xcb79('0x15')]['id'])[_0xcb79('0xe')](respondWithResult(_0x2234e7,null))['then'](handleEntityNotFound(_0x2234e7,null))[_0xcb79('0x12')](handleError(_0x2234e7,null));};exports[_0xcb79('0x16')]=function(_0x33ecdb,_0x4e0c98){if(_0x33ecdb['body'][_0xcb79('0xf')]&&_0x33ecdb[_0xcb79('0x17')][_0xcb79('0x18')]){var _0x12be28=path[_0xcb79('0x19')](__dirname,_0xcb79('0x1a'),_0x33ecdb[_0xcb79('0x17')][_0xcb79('0x18')]);var _0x44989f=process['cwd']();process[_0xcb79('0x1b')](path[_0xcb79('0x1c')](_0x12be28));return execChildProcess()[_0xcb79('0xe')](function(_0x2f7fd4){process['chdir'](_0x44989f);return pm2[_0xcb79('0x1d')]({'name':_0x33ecdb['body'][_0xcb79('0xf')],'script':_0x12be28});})[_0xcb79('0xe')](function(_0x36d718){pm2[_0xcb79('0x1e')]();return _0x36d718[0x0];})[_0xcb79('0xe')](respondWithResult(_0x4e0c98,0xc9))[_0xcb79('0x12')](handleError(_0x4e0c98,null));}else{return _0x4e0c98['status'](0x1f4)[_0xcb79('0x1f')]({'message':'Missing\x20name\x20and/or\x20path'});}};exports[_0xcb79('0x20')]=function(_0xb56e85,_0x5859e5){if(_0xb56e85[_0xcb79('0x17')]['id']){delete _0xb56e85['body']['id'];}var _0x5ebad3={'online':_0xcb79('0x21'),'stopped':'stop'};if(_0x5ebad3[_0xcb79('0x22')](_0xb56e85[_0xcb79('0x17')][_0xcb79('0x8')])){return pm2[_0x5ebad3[_0xb56e85[_0xcb79('0x17')][_0xcb79('0x8')]]](_0xb56e85[_0xcb79('0x15')]['id'])[_0xcb79('0xe')](respondWithResult(_0x5859e5,0xc8))[_0xcb79('0x12')](handleError(_0x5859e5,null));}else{return _0x5859e5[_0xcb79('0x8')](0x1f4)[_0xcb79('0x1f')]({'message':_0xcb79('0x23')});}};exports[_0xcb79('0x24')]=function(_0xc7cf8e,_0x154af9){if(_0xc7cf8e[_0xcb79('0x17')]['id']){delete _0xc7cf8e[_0xcb79('0x17')]['id'];}if(_0xc7cf8e[_0xcb79('0x15')]['id']){return pm2[_0xcb79('0x25')](_0xc7cf8e[_0xcb79('0x15')]['id'])['then'](function(_0x16d53e){pm2['dump']();return _0x16d53e[0x0];})['then'](respondWithResult(_0x154af9,null))[_0xcb79('0x12')](handleError(_0x154af9,null));}else{return _0x154af9[_0xcb79('0x8')](0x1f4)[_0xcb79('0x1f')]({'message':_0xcb79('0x26')});}};