ebee2f506e701cd068424bbee64359e25c371d41
[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 _0x8642=['reject','name','express','motion2','length','catch','show','describe','params','create','body','script','join','../../files/plugins','cwd','dirname','start','dump','restart','stop','hasOwnProperty','destroy','delete','Unknown\x20id','../../config/pm2','../../config/logger','path','exec','bluebird','sendStatus','json','error','stack','status','send','npm\x20install','info','then'];(function(_0x4d7e50,_0x2276c3){var _0x2e6c0e=function(_0x2c2a92){while(--_0x2c2a92){_0x4d7e50['push'](_0x4d7e50['shift']());}};_0x2e6c0e(++_0x2276c3);}(_0x8642,0x8a));var _0x2864=function(_0x273c39,_0x1052e6){_0x273c39=_0x273c39-0x0;var _0x46d6b5=_0x8642[_0x273c39];return _0x46d6b5;};'use strict';var _=require('lodash');var pm2=require(_0x2864('0x0'));var logger=require(_0x2864('0x1'))('api');var path=require(_0x2864('0x2'));var exec=require('child_process')[_0x2864('0x3')];var BPromise=require(_0x2864('0x4'));function handleEntityNotFound(_0x225c32,_0x43864c){return function(_0x2f7798){if(!_0x2f7798){_0x225c32[_0x2864('0x5')](0x194);;}return _0x2f7798;};}function respondWithResult(_0x4f8db2,_0x3fbb23){_0x3fbb23=_0x3fbb23||0xc8;return function(_0x3d7846){if(_0x3d7846){return _0x4f8db2['status'](_0x3fbb23)[_0x2864('0x6')](_0x3d7846);}return null;};}function handleError(_0x445457,_0x2de119){_0x2de119=_0x2de119||0x1f4;return function(_0x227b37){logger[_0x2864('0x7')](_0x227b37[_0x2864('0x8')]);if(_0x227b37['name']){delete _0x227b37['name'];}_0x445457[_0x2864('0x9')](_0x2de119)[_0x2864('0xa')](_0x227b37);};}function execChildProcess(){return new BPromise(function(_0x10a78f,_0x162a14){exec(_0x2864('0xb'),function(_0x4ec2aa,_0x494d06,_0x26aef9){logger[_0x2864('0xc')](_0x494d06);logger['info'](_0x26aef9);if(_0x4ec2aa){logger[_0x2864('0x7')](_0x4ec2aa);return _0x162a14(_0x4ec2aa);}return _0x10a78f(_0x494d06);});});}exports['index']=function(_0x1faff8,_0x483fd0){return pm2['list']()[_0x2864('0xd')](function(_0x2d4ccc){if(_0x2d4ccc){var _0x21a568=_[_0x2864('0xe')](_0x2d4ccc,function(_0x33fa2e){return _0x33fa2e[_0x2864('0xf')]===_0x2864('0x10')||_0x33fa2e[_0x2864('0xf')]===_0x2864('0x11');});return{'rows':_0x21a568,'count':_0x21a568[_0x2864('0x12')]};}return null;})[_0x2864('0xd')](respondWithResult(_0x483fd0,null))[_0x2864('0x13')](handleError(_0x483fd0,null));};exports[_0x2864('0x14')]=function(_0x27dbc9,_0x4df623){return pm2[_0x2864('0x15')](_0x27dbc9[_0x2864('0x16')]['id'])[_0x2864('0xd')](respondWithResult(_0x4df623,null))[_0x2864('0xd')](handleEntityNotFound(_0x4df623,null))[_0x2864('0x13')](handleError(_0x4df623,null));};exports[_0x2864('0x17')]=function(_0x533538,_0x21c53e){if(_0x533538[_0x2864('0x18')][_0x2864('0xf')]&&_0x533538['body'][_0x2864('0x19')]){var _0xea9e60=path[_0x2864('0x1a')](__dirname,_0x2864('0x1b'),_0x533538['body'][_0x2864('0x19')]);var _0x3a9855=process[_0x2864('0x1c')]();process['chdir'](path[_0x2864('0x1d')](_0xea9e60));return execChildProcess()[_0x2864('0xd')](function(_0x57ddcf){process['chdir'](_0x3a9855);return pm2[_0x2864('0x1e')]({'name':_0x533538[_0x2864('0x18')][_0x2864('0xf')],'script':_0xea9e60});})[_0x2864('0xd')](function(_0x1a3184){pm2[_0x2864('0x1f')]();return _0x1a3184[0x0];})[_0x2864('0xd')](respondWithResult(_0x21c53e,0xc9))[_0x2864('0x13')](handleError(_0x21c53e,null));}else{return _0x21c53e[_0x2864('0x9')](0x1f4)['send']({'message':'Missing\x20name\x20and/or\x20path'});}};exports['update']=function(_0x40ce6b,_0x1d29f0){if(_0x40ce6b[_0x2864('0x18')]['id']){delete _0x40ce6b['body']['id'];}var _0x52d993={'online':_0x2864('0x20'),'stopped':_0x2864('0x21')};if(_0x52d993[_0x2864('0x22')](_0x40ce6b[_0x2864('0x18')][_0x2864('0x9')])){return pm2[_0x52d993[_0x40ce6b[_0x2864('0x18')][_0x2864('0x9')]]](_0x40ce6b[_0x2864('0x16')]['id'])[_0x2864('0xd')](respondWithResult(_0x1d29f0,0xc8))[_0x2864('0x13')](handleError(_0x1d29f0,null));}else{return _0x1d29f0[_0x2864('0x9')](0x1f4)[_0x2864('0xa')]({'message':'Unknown\x20status'});}};exports[_0x2864('0x23')]=function(_0x5eb414,_0xa8d453){if(_0x5eb414[_0x2864('0x18')]['id']){delete _0x5eb414[_0x2864('0x18')]['id'];}if(_0x5eb414[_0x2864('0x16')]['id']){return pm2[_0x2864('0x24')](_0x5eb414[_0x2864('0x16')]['id'])[_0x2864('0xd')](function(_0x29e944){pm2['dump']();return _0x29e944[0x0];})[_0x2864('0xd')](respondWithResult(_0xa8d453,null))[_0x2864('0x13')](handleError(_0xa8d453,null));}else{return _0xa8d453[_0x2864('0x9')](0x1f4)[_0x2864('0xa')]({'message':_0x2864('0x25')});}};