f279e657492024460f063f6ac8c353adbe8d9140
[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 _0xca66=['reject','motion2','length','catch','show','describe','params','create','body','join','../../files/plugins','script','chdir','dirname','start','dump','Missing\x20name\x20and/or\x20path','update','restart','stop','Unknown\x20status','destroy','lodash','api','path','child_process','bluebird','sendStatus','status','json','error','stack','name','send','npm\x20install','info','index','list','then'];(function(_0xf80b3,_0x25d5f3){var _0x10c489=function(_0x3c5aee){while(--_0x3c5aee){_0xf80b3['push'](_0xf80b3['shift']());}};_0x10c489(++_0x25d5f3);}(_0xca66,0x8b));var _0x6ca6=function(_0x145c57,_0x55ab18){_0x145c57=_0x145c57-0x0;var _0x5398a5=_0xca66[_0x145c57];return _0x5398a5;};'use strict';var _=require(_0x6ca6('0x0'));var pm2=require('../../config/pm2');var logger=require('../../config/logger')(_0x6ca6('0x1'));var path=require(_0x6ca6('0x2'));var exec=require(_0x6ca6('0x3'))['exec'];var BPromise=require(_0x6ca6('0x4'));function handleEntityNotFound(_0x4b1a10,_0x3ab489){return function(_0x5569aa){if(!_0x5569aa){_0x4b1a10[_0x6ca6('0x5')](0x194);;}return _0x5569aa;};}function respondWithResult(_0x27d8c6,_0x34836f){_0x34836f=_0x34836f||0xc8;return function(_0x44019c){if(_0x44019c){return _0x27d8c6[_0x6ca6('0x6')](_0x34836f)[_0x6ca6('0x7')](_0x44019c);}return null;};}function handleError(_0x27d280,_0x4f5651){_0x4f5651=_0x4f5651||0x1f4;return function(_0xf69e0f){logger[_0x6ca6('0x8')](_0xf69e0f[_0x6ca6('0x9')]);if(_0xf69e0f[_0x6ca6('0xa')]){delete _0xf69e0f[_0x6ca6('0xa')];}_0x27d280[_0x6ca6('0x6')](_0x4f5651)[_0x6ca6('0xb')](_0xf69e0f);};}function execChildProcess(){return new BPromise(function(_0x55a626,_0x38678e){exec(_0x6ca6('0xc'),function(_0x25d276,_0x46b795,_0x444243){logger[_0x6ca6('0xd')](_0x46b795);logger['info'](_0x444243);if(_0x25d276){logger[_0x6ca6('0x8')](_0x25d276);return _0x38678e(_0x25d276);}return _0x55a626(_0x46b795);});});}exports[_0x6ca6('0xe')]=function(_0x55238b,_0x412986){return pm2[_0x6ca6('0xf')]()[_0x6ca6('0x10')](function(_0x3570f1){if(_0x3570f1){var _0xc774c=_[_0x6ca6('0x11')](_0x3570f1,function(_0x4c053a){return _0x4c053a['name']==='express'||_0x4c053a[_0x6ca6('0xa')]===_0x6ca6('0x12');});return{'rows':_0xc774c,'count':_0xc774c[_0x6ca6('0x13')]};}return null;})[_0x6ca6('0x10')](respondWithResult(_0x412986,null))[_0x6ca6('0x14')](handleError(_0x412986,null));};exports[_0x6ca6('0x15')]=function(_0x25dc6c,_0x4f056d){return pm2[_0x6ca6('0x16')](_0x25dc6c[_0x6ca6('0x17')]['id'])[_0x6ca6('0x10')](respondWithResult(_0x4f056d,null))[_0x6ca6('0x10')](handleEntityNotFound(_0x4f056d,null))[_0x6ca6('0x14')](handleError(_0x4f056d,null));};exports[_0x6ca6('0x18')]=function(_0x16a3d7,_0x251072){if(_0x16a3d7[_0x6ca6('0x19')][_0x6ca6('0xa')]&&_0x16a3d7[_0x6ca6('0x19')]['script']){var _0x28a982=path[_0x6ca6('0x1a')](__dirname,_0x6ca6('0x1b'),_0x16a3d7[_0x6ca6('0x19')][_0x6ca6('0x1c')]);var _0x438694=process['cwd']();process[_0x6ca6('0x1d')](path[_0x6ca6('0x1e')](_0x28a982));return execChildProcess()['then'](function(_0x4927c1){process[_0x6ca6('0x1d')](_0x438694);return pm2[_0x6ca6('0x1f')]({'name':_0x16a3d7[_0x6ca6('0x19')][_0x6ca6('0xa')],'script':_0x28a982});})[_0x6ca6('0x10')](function(_0x541122){pm2[_0x6ca6('0x20')]();return _0x541122[0x0];})[_0x6ca6('0x10')](respondWithResult(_0x251072,0xc9))[_0x6ca6('0x14')](handleError(_0x251072,null));}else{return _0x251072[_0x6ca6('0x6')](0x1f4)[_0x6ca6('0xb')]({'message':_0x6ca6('0x21')});}};exports[_0x6ca6('0x22')]=function(_0x2a1e2d,_0x516daf){if(_0x2a1e2d['body']['id']){delete _0x2a1e2d[_0x6ca6('0x19')]['id'];}var _0x9467bd={'online':_0x6ca6('0x23'),'stopped':_0x6ca6('0x24')};if(_0x9467bd['hasOwnProperty'](_0x2a1e2d['body'][_0x6ca6('0x6')])){return pm2[_0x9467bd[_0x2a1e2d['body']['status']]](_0x2a1e2d[_0x6ca6('0x17')]['id'])[_0x6ca6('0x10')](respondWithResult(_0x516daf,0xc8))['catch'](handleError(_0x516daf,null));}else{return _0x516daf[_0x6ca6('0x6')](0x1f4)[_0x6ca6('0xb')]({'message':_0x6ca6('0x25')});}};exports[_0x6ca6('0x26')]=function(_0x484411,_0x28af50){if(_0x484411[_0x6ca6('0x19')]['id']){delete _0x484411[_0x6ca6('0x19')]['id'];}if(_0x484411[_0x6ca6('0x17')]['id']){return pm2['delete'](_0x484411[_0x6ca6('0x17')]['id'])[_0x6ca6('0x10')](function(_0x3c4af8){pm2[_0x6ca6('0x20')]();return _0x3c4af8[0x0];})['then'](respondWithResult(_0x28af50,null))['catch'](handleError(_0x28af50,null));}else{return _0x28af50['status'](0x1f4)['send']({'message':'Unknown\x20id'});}};