Built motion from commit (unavailable).|2.5.21
[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 _0x3b14=['express','motion2','length','catch','show','describe','body','join','../../files/plugins','script','chdir','dirname','start','update','restart','hasOwnProperty','params','send','Unknown\x20status','dump','Unknown\x20id','../../config/pm2','../../config/logger','api','path','child_process','exec','bluebird','status','json','stack','name','npm\x20install','info','list','then','reject'];(function(_0x2f7c44,_0x22434d){var _0xa27ff9=function(_0x3ad37f){while(--_0x3ad37f){_0x2f7c44['push'](_0x2f7c44['shift']());}};_0xa27ff9(++_0x22434d);}(_0x3b14,0x1ac));var _0x43b1=function(_0x396b0d,_0x444531){_0x396b0d=_0x396b0d-0x0;var _0x442965=_0x3b14[_0x396b0d];return _0x442965;};'use strict';var _=require('lodash');var pm2=require(_0x43b1('0x0'));var logger=require(_0x43b1('0x1'))(_0x43b1('0x2'));var path=require(_0x43b1('0x3'));var exec=require(_0x43b1('0x4'))[_0x43b1('0x5')];var BPromise=require(_0x43b1('0x6'));function handleEntityNotFound(_0x259d4b,_0x299489){return function(_0x4abe48){if(!_0x4abe48){_0x259d4b['sendStatus'](0x194);;}return _0x4abe48;};}function respondWithResult(_0x3c68c8,_0x17fcc6){_0x17fcc6=_0x17fcc6||0xc8;return function(_0x153f80){if(_0x153f80){return _0x3c68c8[_0x43b1('0x7')](_0x17fcc6)[_0x43b1('0x8')](_0x153f80);}return null;};}function handleError(_0x10e116,_0x1fad2b){_0x1fad2b=_0x1fad2b||0x1f4;return function(_0x6ceb8f){logger['error'](_0x6ceb8f[_0x43b1('0x9')]);if(_0x6ceb8f[_0x43b1('0xa')]){delete _0x6ceb8f[_0x43b1('0xa')];}_0x10e116['status'](_0x1fad2b)['send'](_0x6ceb8f);};}function execChildProcess(){return new BPromise(function(_0x394c44,_0x2a27fb){exec(_0x43b1('0xb'),function(_0x4443c7,_0x4b2687,_0x3caf52){logger['info'](_0x4b2687);logger[_0x43b1('0xc')](_0x3caf52);if(_0x4443c7){logger['error'](_0x4443c7);return _0x2a27fb(_0x4443c7);}return _0x394c44(_0x4b2687);});});}exports['index']=function(_0x132671,_0x1ddae9){return pm2[_0x43b1('0xd')]()[_0x43b1('0xe')](function(_0x36a6ac){if(_0x36a6ac){var _0x538dde=_[_0x43b1('0xf')](_0x36a6ac,function(_0x53cf96){return _0x53cf96['name']===_0x43b1('0x10')||_0x53cf96[_0x43b1('0xa')]===_0x43b1('0x11');});return{'rows':_0x538dde,'count':_0x538dde[_0x43b1('0x12')]};}return null;})['then'](respondWithResult(_0x1ddae9,null))[_0x43b1('0x13')](handleError(_0x1ddae9,null));};exports[_0x43b1('0x14')]=function(_0x1b4b35,_0x53db24){return pm2[_0x43b1('0x15')](_0x1b4b35['params']['id'])['then'](respondWithResult(_0x53db24,null))['then'](handleEntityNotFound(_0x53db24,null))[_0x43b1('0x13')](handleError(_0x53db24,null));};exports['create']=function(_0x477ca9,_0x4df920){if(_0x477ca9[_0x43b1('0x16')][_0x43b1('0xa')]&&_0x477ca9['body']['script']){var _0x25c97e=path[_0x43b1('0x17')](__dirname,_0x43b1('0x18'),_0x477ca9[_0x43b1('0x16')][_0x43b1('0x19')]);var _0x2de38b=process['cwd']();process[_0x43b1('0x1a')](path[_0x43b1('0x1b')](_0x25c97e));return execChildProcess()[_0x43b1('0xe')](function(_0x465cdd){process['chdir'](_0x2de38b);return pm2[_0x43b1('0x1c')]({'name':_0x477ca9[_0x43b1('0x16')][_0x43b1('0xa')],'script':_0x25c97e});})[_0x43b1('0xe')](function(_0x583fcb){pm2['dump']();return _0x583fcb[0x0];})[_0x43b1('0xe')](respondWithResult(_0x4df920,0xc9))[_0x43b1('0x13')](handleError(_0x4df920,null));}else{return _0x4df920[_0x43b1('0x7')](0x1f4)['send']({'message':'Missing\x20name\x20and/or\x20path'});}};exports[_0x43b1('0x1d')]=function(_0x1f693d,_0x1d940b){if(_0x1f693d[_0x43b1('0x16')]['id']){delete _0x1f693d[_0x43b1('0x16')]['id'];}var _0x16e330={'online':_0x43b1('0x1e'),'stopped':'stop'};if(_0x16e330[_0x43b1('0x1f')](_0x1f693d['body'][_0x43b1('0x7')])){return pm2[_0x16e330[_0x1f693d[_0x43b1('0x16')][_0x43b1('0x7')]]](_0x1f693d[_0x43b1('0x20')]['id'])[_0x43b1('0xe')](respondWithResult(_0x1d940b,0xc8))[_0x43b1('0x13')](handleError(_0x1d940b,null));}else{return _0x1d940b[_0x43b1('0x7')](0x1f4)[_0x43b1('0x21')]({'message':_0x43b1('0x22')});}};exports['destroy']=function(_0x1f5471,_0x49575a){if(_0x1f5471[_0x43b1('0x16')]['id']){delete _0x1f5471[_0x43b1('0x16')]['id'];}if(_0x1f5471[_0x43b1('0x20')]['id']){return pm2['delete'](_0x1f5471[_0x43b1('0x20')]['id'])[_0x43b1('0xe')](function(_0x4ebdc){pm2[_0x43b1('0x23')]();return _0x4ebdc[0x0];})[_0x43b1('0xe')](respondWithResult(_0x49575a,null))[_0x43b1('0x13')](handleError(_0x49575a,null));}else{return _0x49575a[_0x43b1('0x7')](0x1f4)[_0x43b1('0x21')]({'message':_0x43b1('0x24')});}};