42a397a1bbb3a3dd4d67f01137d9a7aafbcf46f1
[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 _0xff64=['express','motion2','length','catch','show','describe','params','create','body','script','join','../../files/plugins','cwd','chdir','dirname','start','send','Missing\x20name\x20and/or\x20path','update','restart','hasOwnProperty','delete','dump','Unknown\x20id','../../config/pm2','../../config/logger','child_process','exec','bluebird','status','stack','name','npm\x20install','info','index','then','reject'];(function(_0x3220b6,_0x1b81c1){var _0x171e48=function(_0xfb2cc4){while(--_0xfb2cc4){_0x3220b6['push'](_0x3220b6['shift']());}};_0x171e48(++_0x1b81c1);}(_0xff64,0x1d4));var _0x4ff6=function(_0x35cf58,_0x280717){_0x35cf58=_0x35cf58-0x0;var _0x3e8e65=_0xff64[_0x35cf58];return _0x3e8e65;};'use strict';var _=require('lodash');var pm2=require(_0x4ff6('0x0'));var logger=require(_0x4ff6('0x1'))('api');var path=require('path');var exec=require(_0x4ff6('0x2'))[_0x4ff6('0x3')];var BPromise=require(_0x4ff6('0x4'));function handleEntityNotFound(_0x25141a,_0x3fbd9b){return function(_0x4b7b01){if(!_0x4b7b01){_0x25141a['sendStatus'](0x194);;}return _0x4b7b01;};}function respondWithResult(_0x180fae,_0x2e1334){_0x2e1334=_0x2e1334||0xc8;return function(_0x15f10d){if(_0x15f10d){return _0x180fae[_0x4ff6('0x5')](_0x2e1334)['json'](_0x15f10d);}return null;};}function handleError(_0x19e903,_0x2d033c){_0x2d033c=_0x2d033c||0x1f4;return function(_0x2a109a){logger['error'](_0x2a109a[_0x4ff6('0x6')]);if(_0x2a109a[_0x4ff6('0x7')]){delete _0x2a109a[_0x4ff6('0x7')];}_0x19e903[_0x4ff6('0x5')](_0x2d033c)['send'](_0x2a109a);};}function execChildProcess(){return new BPromise(function(_0x5aec7f,_0x38fed2){exec(_0x4ff6('0x8'),function(_0xb2c9aa,_0x46d8b4,_0x5aa847){logger[_0x4ff6('0x9')](_0x46d8b4);logger[_0x4ff6('0x9')](_0x5aa847);if(_0xb2c9aa){logger['error'](_0xb2c9aa);return _0x38fed2(_0xb2c9aa);}return _0x5aec7f(_0x46d8b4);});});}exports[_0x4ff6('0xa')]=function(_0x3b8b5d,_0x7ce918){return pm2['list']()[_0x4ff6('0xb')](function(_0x19cc8e){if(_0x19cc8e){var _0x47be83=_[_0x4ff6('0xc')](_0x19cc8e,function(_0x408f56){return _0x408f56['name']===_0x4ff6('0xd')||_0x408f56['name']===_0x4ff6('0xe');});return{'rows':_0x47be83,'count':_0x47be83[_0x4ff6('0xf')]};}return null;})[_0x4ff6('0xb')](respondWithResult(_0x7ce918,null))[_0x4ff6('0x10')](handleError(_0x7ce918,null));};exports[_0x4ff6('0x11')]=function(_0x126217,_0x5dfdce){return pm2[_0x4ff6('0x12')](_0x126217[_0x4ff6('0x13')]['id'])[_0x4ff6('0xb')](respondWithResult(_0x5dfdce,null))[_0x4ff6('0xb')](handleEntityNotFound(_0x5dfdce,null))[_0x4ff6('0x10')](handleError(_0x5dfdce,null));};exports[_0x4ff6('0x14')]=function(_0x291af0,_0x97f81d){if(_0x291af0[_0x4ff6('0x15')][_0x4ff6('0x7')]&&_0x291af0[_0x4ff6('0x15')][_0x4ff6('0x16')]){var _0x7900ab=path[_0x4ff6('0x17')](__dirname,_0x4ff6('0x18'),_0x291af0[_0x4ff6('0x15')][_0x4ff6('0x16')]);var _0x795e4a=process[_0x4ff6('0x19')]();process[_0x4ff6('0x1a')](path[_0x4ff6('0x1b')](_0x7900ab));return execChildProcess()[_0x4ff6('0xb')](function(_0x3f1265){process['chdir'](_0x795e4a);return pm2[_0x4ff6('0x1c')]({'name':_0x291af0['body'][_0x4ff6('0x7')],'script':_0x7900ab});})['then'](function(_0x44b9c6){pm2['dump']();return _0x44b9c6[0x0];})[_0x4ff6('0xb')](respondWithResult(_0x97f81d,0xc9))[_0x4ff6('0x10')](handleError(_0x97f81d,null));}else{return _0x97f81d[_0x4ff6('0x5')](0x1f4)[_0x4ff6('0x1d')]({'message':_0x4ff6('0x1e')});}};exports[_0x4ff6('0x1f')]=function(_0x46f5c8,_0x316d5d){if(_0x46f5c8[_0x4ff6('0x15')]['id']){delete _0x46f5c8[_0x4ff6('0x15')]['id'];}var _0x508f0d={'online':_0x4ff6('0x20'),'stopped':'stop'};if(_0x508f0d[_0x4ff6('0x21')](_0x46f5c8['body'][_0x4ff6('0x5')])){return pm2[_0x508f0d[_0x46f5c8[_0x4ff6('0x15')][_0x4ff6('0x5')]]](_0x46f5c8[_0x4ff6('0x13')]['id'])[_0x4ff6('0xb')](respondWithResult(_0x316d5d,0xc8))['catch'](handleError(_0x316d5d,null));}else{return _0x316d5d[_0x4ff6('0x5')](0x1f4)[_0x4ff6('0x1d')]({'message':'Unknown\x20status'});}};exports['destroy']=function(_0x4f8157,_0x3c08fe){if(_0x4f8157[_0x4ff6('0x15')]['id']){delete _0x4f8157[_0x4ff6('0x15')]['id'];}if(_0x4f8157[_0x4ff6('0x13')]['id']){return pm2[_0x4ff6('0x22')](_0x4f8157['params']['id'])[_0x4ff6('0xb')](function(_0x1c5296){pm2[_0x4ff6('0x23')]();return _0x1c5296[0x0];})['then'](respondWithResult(_0x3c08fe,null))[_0x4ff6('0x10')](handleError(_0x3c08fe,null));}else{return _0x3c08fe[_0x4ff6('0x5')](0x1f4)[_0x4ff6('0x1d')]({'message':_0x4ff6('0x24')});}};