Built motion from commit (unavailable).|2.5.30
[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 _0x4280=['name','express','motion2','length','show','describe','then','catch','create','body','script','join','chdir','dirname','dump','send','Missing\x20name\x20and/or\x20path','hasOwnProperty','params','Unknown\x20status','destroy','delete','Unknown\x20id','lodash','api','path','bluebird','sendStatus','status','json','error','stack','info'];(function(_0x52eb71,_0x24f0a7){var _0x2e4ffe=function(_0x109d43){while(--_0x109d43){_0x52eb71['push'](_0x52eb71['shift']());}};_0x2e4ffe(++_0x24f0a7);}(_0x4280,0xdd));var _0x0428=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4280[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x0428('0x0'));var pm2=require('../../config/pm2');var logger=require('../../config/logger')(_0x0428('0x1'));var path=require(_0x0428('0x2'));var exec=require('child_process')['exec'];var BPromise=require(_0x0428('0x3'));function handleEntityNotFound(_0x252413,_0x4304d2){return function(_0x42834a){if(!_0x42834a){_0x252413[_0x0428('0x4')](0x194);;}return _0x42834a;};}function respondWithResult(_0x1a2158,_0x291efb){_0x291efb=_0x291efb||0xc8;return function(_0x4f6528){if(_0x4f6528){return _0x1a2158[_0x0428('0x5')](_0x291efb)[_0x0428('0x6')](_0x4f6528);}return null;};}function handleError(_0x38f481,_0x1a26a3){_0x1a26a3=_0x1a26a3||0x1f4;return function(_0x1dcc74){logger[_0x0428('0x7')](_0x1dcc74[_0x0428('0x8')]);if(_0x1dcc74['name']){delete _0x1dcc74['name'];}_0x38f481[_0x0428('0x5')](_0x1a26a3)['send'](_0x1dcc74);};}function execChildProcess(){return new BPromise(function(_0x5ae19d,_0x4c2529){exec('npm\x20install',function(_0x28f332,_0x37e48e,_0x1fd5ca){logger[_0x0428('0x9')](_0x37e48e);logger['info'](_0x1fd5ca);if(_0x28f332){logger['error'](_0x28f332);return _0x4c2529(_0x28f332);}return _0x5ae19d(_0x37e48e);});});}exports['index']=function(_0x597916,_0x5e21f7){return pm2['list']()['then'](function(_0x3d35f2){if(_0x3d35f2){var _0x404f7c=_['reject'](_0x3d35f2,function(_0x99c76f){return _0x99c76f[_0x0428('0xa')]===_0x0428('0xb')||_0x99c76f[_0x0428('0xa')]===_0x0428('0xc');});return{'rows':_0x404f7c,'count':_0x404f7c[_0x0428('0xd')]};}return null;})['then'](respondWithResult(_0x5e21f7,null))['catch'](handleError(_0x5e21f7,null));};exports[_0x0428('0xe')]=function(_0x5b1fb3,_0x287cf7){return pm2[_0x0428('0xf')](_0x5b1fb3['params']['id'])[_0x0428('0x10')](respondWithResult(_0x287cf7,null))['then'](handleEntityNotFound(_0x287cf7,null))[_0x0428('0x11')](handleError(_0x287cf7,null));};exports[_0x0428('0x12')]=function(_0x2e35fb,_0x18407d){if(_0x2e35fb[_0x0428('0x13')][_0x0428('0xa')]&&_0x2e35fb[_0x0428('0x13')][_0x0428('0x14')]){var _0x5d8b56=path[_0x0428('0x15')](__dirname,'../../files/plugins',_0x2e35fb[_0x0428('0x13')]['script']);var _0x15c5bb=process['cwd']();process[_0x0428('0x16')](path[_0x0428('0x17')](_0x5d8b56));return execChildProcess()[_0x0428('0x10')](function(_0x4ffcf5){process['chdir'](_0x15c5bb);return pm2['start']({'name':_0x2e35fb['body'][_0x0428('0xa')],'script':_0x5d8b56});})['then'](function(_0x379cbc){pm2[_0x0428('0x18')]();return _0x379cbc[0x0];})[_0x0428('0x10')](respondWithResult(_0x18407d,0xc9))[_0x0428('0x11')](handleError(_0x18407d,null));}else{return _0x18407d[_0x0428('0x5')](0x1f4)[_0x0428('0x19')]({'message':_0x0428('0x1a')});}};exports['update']=function(_0x1e2adc,_0x344484){if(_0x1e2adc[_0x0428('0x13')]['id']){delete _0x1e2adc[_0x0428('0x13')]['id'];}var _0x4be11a={'online':'restart','stopped':'stop'};if(_0x4be11a[_0x0428('0x1b')](_0x1e2adc[_0x0428('0x13')][_0x0428('0x5')])){return pm2[_0x4be11a[_0x1e2adc[_0x0428('0x13')]['status']]](_0x1e2adc[_0x0428('0x1c')]['id'])[_0x0428('0x10')](respondWithResult(_0x344484,0xc8))[_0x0428('0x11')](handleError(_0x344484,null));}else{return _0x344484[_0x0428('0x5')](0x1f4)[_0x0428('0x19')]({'message':_0x0428('0x1d')});}};exports[_0x0428('0x1e')]=function(_0x28aef,_0x3cb8ad){if(_0x28aef['body']['id']){delete _0x28aef[_0x0428('0x13')]['id'];}if(_0x28aef[_0x0428('0x1c')]['id']){return pm2[_0x0428('0x1f')](_0x28aef['params']['id'])[_0x0428('0x10')](function(_0x13612d){pm2[_0x0428('0x18')]();return _0x13612d[0x0];})[_0x0428('0x10')](respondWithResult(_0x3cb8ad,null))[_0x0428('0x11')](handleError(_0x3cb8ad,null));}else{return _0x3cb8ad[_0x0428('0x5')](0x1f4)['send']({'message':_0x0428('0x20')});}};