ad2f581790ae0aa92c90b92ba23b26fceaaae6b4
[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 _0xf369=['../../files/plugins','chdir','start','dump','catch','update','restart','stop','hasOwnProperty','destroy','delete','Unknown\x20id','../../config/pm2','../../config/logger','api','path','child_process','exec','bluebird','sendStatus','status','json','name','send','npm\x20install','info','error','list','then','reject','motion2','length','show','describe','params','create','body','script'];(function(_0x5b33b0,_0x4451e2){var _0x56952b=function(_0x343f54){while(--_0x343f54){_0x5b33b0['push'](_0x5b33b0['shift']());}};_0x56952b(++_0x4451e2);}(_0xf369,0x1ae));var _0x9f36=function(_0xd51999,_0x4b24d0){_0xd51999=_0xd51999-0x0;var _0x16c68a=_0xf369[_0xd51999];return _0x16c68a;};'use strict';var _=require('lodash');var pm2=require(_0x9f36('0x0'));var logger=require(_0x9f36('0x1'))(_0x9f36('0x2'));var path=require(_0x9f36('0x3'));var exec=require(_0x9f36('0x4'))[_0x9f36('0x5')];var BPromise=require(_0x9f36('0x6'));function handleEntityNotFound(_0x547e79,_0x205be3){return function(_0x2f1ca1){if(!_0x2f1ca1){_0x547e79[_0x9f36('0x7')](0x194);;}return _0x2f1ca1;};}function respondWithResult(_0x38547b,_0x1c91f2){_0x1c91f2=_0x1c91f2||0xc8;return function(_0x344f34){if(_0x344f34){return _0x38547b[_0x9f36('0x8')](_0x1c91f2)[_0x9f36('0x9')](_0x344f34);}return null;};}function handleError(_0x24fa02,_0x569403){_0x569403=_0x569403||0x1f4;return function(_0x4bc69b){logger['error'](_0x4bc69b['stack']);if(_0x4bc69b['name']){delete _0x4bc69b[_0x9f36('0xa')];}_0x24fa02[_0x9f36('0x8')](_0x569403)[_0x9f36('0xb')](_0x4bc69b);};}function execChildProcess(){return new BPromise(function(_0x78cdf3,_0x744c33){exec(_0x9f36('0xc'),function(_0x38dc2d,_0x1eba99,_0x53e39d){logger[_0x9f36('0xd')](_0x1eba99);logger['info'](_0x53e39d);if(_0x38dc2d){logger[_0x9f36('0xe')](_0x38dc2d);return _0x744c33(_0x38dc2d);}return _0x78cdf3(_0x1eba99);});});}exports['index']=function(_0x181d5e,_0xa4ec0){return pm2[_0x9f36('0xf')]()[_0x9f36('0x10')](function(_0x23dfa3){if(_0x23dfa3){var _0x223723=_[_0x9f36('0x11')](_0x23dfa3,function(_0x481cc8){return _0x481cc8['name']==='express'||_0x481cc8[_0x9f36('0xa')]===_0x9f36('0x12');});return{'rows':_0x223723,'count':_0x223723[_0x9f36('0x13')]};}return null;})[_0x9f36('0x10')](respondWithResult(_0xa4ec0,null))['catch'](handleError(_0xa4ec0,null));};exports[_0x9f36('0x14')]=function(_0x4bceb2,_0x5f359c){return pm2[_0x9f36('0x15')](_0x4bceb2[_0x9f36('0x16')]['id'])['then'](respondWithResult(_0x5f359c,null))[_0x9f36('0x10')](handleEntityNotFound(_0x5f359c,null))['catch'](handleError(_0x5f359c,null));};exports[_0x9f36('0x17')]=function(_0x2ef2a6,_0x11e2f0){if(_0x2ef2a6['body'][_0x9f36('0xa')]&&_0x2ef2a6[_0x9f36('0x18')][_0x9f36('0x19')]){var _0x4b4719=path['join'](__dirname,_0x9f36('0x1a'),_0x2ef2a6[_0x9f36('0x18')][_0x9f36('0x19')]);var _0x325a89=process['cwd']();process[_0x9f36('0x1b')](path['dirname'](_0x4b4719));return execChildProcess()[_0x9f36('0x10')](function(_0x15fb63){process['chdir'](_0x325a89);return pm2[_0x9f36('0x1c')]({'name':_0x2ef2a6['body']['name'],'script':_0x4b4719});})[_0x9f36('0x10')](function(_0x4ea6dd){pm2[_0x9f36('0x1d')]();return _0x4ea6dd[0x0];})['then'](respondWithResult(_0x11e2f0,0xc9))[_0x9f36('0x1e')](handleError(_0x11e2f0,null));}else{return _0x11e2f0[_0x9f36('0x8')](0x1f4)[_0x9f36('0xb')]({'message':'Missing\x20name\x20and/or\x20path'});}};exports[_0x9f36('0x1f')]=function(_0x44b2b3,_0x28d63e){if(_0x44b2b3[_0x9f36('0x18')]['id']){delete _0x44b2b3['body']['id'];}var _0x2ac80d={'online':_0x9f36('0x20'),'stopped':_0x9f36('0x21')};if(_0x2ac80d[_0x9f36('0x22')](_0x44b2b3[_0x9f36('0x18')][_0x9f36('0x8')])){return pm2[_0x2ac80d[_0x44b2b3[_0x9f36('0x18')][_0x9f36('0x8')]]](_0x44b2b3[_0x9f36('0x16')]['id'])[_0x9f36('0x10')](respondWithResult(_0x28d63e,0xc8))['catch'](handleError(_0x28d63e,null));}else{return _0x28d63e[_0x9f36('0x8')](0x1f4)['send']({'message':'Unknown\x20status'});}};exports[_0x9f36('0x23')]=function(_0x598718,_0x176e4e){if(_0x598718['body']['id']){delete _0x598718[_0x9f36('0x18')]['id'];}if(_0x598718[_0x9f36('0x16')]['id']){return pm2[_0x9f36('0x24')](_0x598718[_0x9f36('0x16')]['id'])[_0x9f36('0x10')](function(_0x4fdc04){pm2[_0x9f36('0x1d')]();return _0x4fdc04[0x0];})[_0x9f36('0x10')](respondWithResult(_0x176e4e,null))[_0x9f36('0x1e')](handleError(_0x176e4e,null));}else{return _0x176e4e[_0x9f36('0x8')](0x1f4)[_0x9f36('0xb')]({'message':_0x9f36('0x25')});}};