Built motion from commit (unavailable).|2.5.13
[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 _0xb894=['params','create','body','script','join','cwd','chdir','dirname','start','dump','send','update','stop','hasOwnProperty','Unknown\x20status','destroy','delete','Unknown\x20id','lodash','path','exec','bluebird','sendStatus','status','json','stack','name','info','error','index','then','reject','express','motion2','length','catch','show','describe'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0xb894,0xd0));var _0x4b89=function(_0x14f06e,_0x2aab44){_0x14f06e=_0x14f06e-0x0;var _0x484e92=_0xb894[_0x14f06e];return _0x484e92;};'use strict';var _=require(_0x4b89('0x0'));var pm2=require('../../config/pm2');var logger=require('../../config/logger')('api');var path=require(_0x4b89('0x1'));var exec=require('child_process')[_0x4b89('0x2')];var BPromise=require(_0x4b89('0x3'));function handleEntityNotFound(_0xdb51f6,_0x253657){return function(_0x4d826c){if(!_0x4d826c){_0xdb51f6[_0x4b89('0x4')](0x194);;}return _0x4d826c;};}function respondWithResult(_0x463977,_0x2ea2a8){_0x2ea2a8=_0x2ea2a8||0xc8;return function(_0x397704){if(_0x397704){return _0x463977[_0x4b89('0x5')](_0x2ea2a8)[_0x4b89('0x6')](_0x397704);}return null;};}function handleError(_0x45d7c5,_0x27f41e){_0x27f41e=_0x27f41e||0x1f4;return function(_0x436b27){logger['error'](_0x436b27[_0x4b89('0x7')]);if(_0x436b27[_0x4b89('0x8')]){delete _0x436b27[_0x4b89('0x8')];}_0x45d7c5[_0x4b89('0x5')](_0x27f41e)['send'](_0x436b27);};}function execChildProcess(){return new BPromise(function(_0x188fa3,_0x191304){exec('npm\x20install',function(_0x12e592,_0x4f7ec5,_0x1f244a){logger[_0x4b89('0x9')](_0x4f7ec5);logger['info'](_0x1f244a);if(_0x12e592){logger[_0x4b89('0xa')](_0x12e592);return _0x191304(_0x12e592);}return _0x188fa3(_0x4f7ec5);});});}exports[_0x4b89('0xb')]=function(_0x3ef1e7,_0x2eae10){return pm2['list']()[_0x4b89('0xc')](function(_0x3cf503){if(_0x3cf503){var _0x227375=_[_0x4b89('0xd')](_0x3cf503,function(_0x378a10){return _0x378a10['name']===_0x4b89('0xe')||_0x378a10[_0x4b89('0x8')]===_0x4b89('0xf');});return{'rows':_0x227375,'count':_0x227375[_0x4b89('0x10')]};}return null;})[_0x4b89('0xc')](respondWithResult(_0x2eae10,null))[_0x4b89('0x11')](handleError(_0x2eae10,null));};exports[_0x4b89('0x12')]=function(_0x3f13f3,_0x150b20){return pm2[_0x4b89('0x13')](_0x3f13f3[_0x4b89('0x14')]['id'])[_0x4b89('0xc')](respondWithResult(_0x150b20,null))['then'](handleEntityNotFound(_0x150b20,null))[_0x4b89('0x11')](handleError(_0x150b20,null));};exports[_0x4b89('0x15')]=function(_0x337938,_0x984457){if(_0x337938['body']['name']&&_0x337938[_0x4b89('0x16')][_0x4b89('0x17')]){var _0x7f8319=path[_0x4b89('0x18')](__dirname,'../../files/plugins',_0x337938[_0x4b89('0x16')][_0x4b89('0x17')]);var _0x521ab6=process[_0x4b89('0x19')]();process[_0x4b89('0x1a')](path[_0x4b89('0x1b')](_0x7f8319));return execChildProcess()['then'](function(_0x4a580e){process['chdir'](_0x521ab6);return pm2[_0x4b89('0x1c')]({'name':_0x337938[_0x4b89('0x16')]['name'],'script':_0x7f8319});})['then'](function(_0x4d5767){pm2[_0x4b89('0x1d')]();return _0x4d5767[0x0];})[_0x4b89('0xc')](respondWithResult(_0x984457,0xc9))[_0x4b89('0x11')](handleError(_0x984457,null));}else{return _0x984457[_0x4b89('0x5')](0x1f4)[_0x4b89('0x1e')]({'message':'Missing\x20name\x20and/or\x20path'});}};exports[_0x4b89('0x1f')]=function(_0x512e21,_0x418f1c){if(_0x512e21[_0x4b89('0x16')]['id']){delete _0x512e21[_0x4b89('0x16')]['id'];}var _0x17a5ee={'online':'restart','stopped':_0x4b89('0x20')};if(_0x17a5ee[_0x4b89('0x21')](_0x512e21[_0x4b89('0x16')][_0x4b89('0x5')])){return pm2[_0x17a5ee[_0x512e21[_0x4b89('0x16')][_0x4b89('0x5')]]](_0x512e21[_0x4b89('0x14')]['id'])['then'](respondWithResult(_0x418f1c,0xc8))[_0x4b89('0x11')](handleError(_0x418f1c,null));}else{return _0x418f1c['status'](0x1f4)[_0x4b89('0x1e')]({'message':_0x4b89('0x22')});}};exports[_0x4b89('0x23')]=function(_0x42959d,_0x464d41){if(_0x42959d[_0x4b89('0x16')]['id']){delete _0x42959d['body']['id'];}if(_0x42959d[_0x4b89('0x14')]['id']){return pm2[_0x4b89('0x24')](_0x42959d['params']['id'])[_0x4b89('0xc')](function(_0x280440){pm2[_0x4b89('0x1d')]();return _0x280440[0x0];})[_0x4b89('0xc')](respondWithResult(_0x464d41,null))[_0x4b89('0x11')](handleError(_0x464d41,null));}else{return _0x464d41[_0x4b89('0x5')](0x1f4)[_0x4b89('0x1e')]({'message':_0x4b89('0x25')});}};