22f9b9e623f56acd253cb8b37449cab654ad6180
[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 _0x3a11=['status','send','info','index','list','then','reject','express','motion2','length','catch','show','describe','params','body','script','join','../../files/plugins','dirname','chdir','start','dump','Missing\x20name\x20and/or\x20path','stop','hasOwnProperty','Unknown\x20status','destroy','Unknown\x20id','../../config/pm2','../../config/logger','api','exec','bluebird','sendStatus','json','error','stack','name'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x3a11,0xb4));var _0x13a1=function(_0x3e531a,_0x28a82a){_0x3e531a=_0x3e531a-0x0;var _0x3c2574=_0x3a11[_0x3e531a];return _0x3c2574;};'use strict';var _=require('lodash');var pm2=require(_0x13a1('0x0'));var logger=require(_0x13a1('0x1'))(_0x13a1('0x2'));var path=require('path');var exec=require('child_process')[_0x13a1('0x3')];var BPromise=require(_0x13a1('0x4'));function handleEntityNotFound(_0x142ed2,_0x3be18c){return function(_0x6c12d9){if(!_0x6c12d9){_0x142ed2[_0x13a1('0x5')](0x194);;}return _0x6c12d9;};}function respondWithResult(_0x232e32,_0x566b5a){_0x566b5a=_0x566b5a||0xc8;return function(_0x847abb){if(_0x847abb){return _0x232e32['status'](_0x566b5a)[_0x13a1('0x6')](_0x847abb);}return null;};}function handleError(_0xf41d8b,_0x2f60cf){_0x2f60cf=_0x2f60cf||0x1f4;return function(_0x30f031){logger[_0x13a1('0x7')](_0x30f031[_0x13a1('0x8')]);if(_0x30f031[_0x13a1('0x9')]){delete _0x30f031[_0x13a1('0x9')];}_0xf41d8b[_0x13a1('0xa')](_0x2f60cf)[_0x13a1('0xb')](_0x30f031);};}function execChildProcess(){return new BPromise(function(_0x37b260,_0x427e26){exec('npm\x20install',function(_0x44136,_0x5d7380,_0x273a5e){logger[_0x13a1('0xc')](_0x5d7380);logger[_0x13a1('0xc')](_0x273a5e);if(_0x44136){logger['error'](_0x44136);return _0x427e26(_0x44136);}return _0x37b260(_0x5d7380);});});}exports[_0x13a1('0xd')]=function(_0x543ab9,_0x2487e0){return pm2[_0x13a1('0xe')]()[_0x13a1('0xf')](function(_0x1f9697){if(_0x1f9697){var _0xf584=_[_0x13a1('0x10')](_0x1f9697,function(_0x588e9c){return _0x588e9c[_0x13a1('0x9')]===_0x13a1('0x11')||_0x588e9c[_0x13a1('0x9')]===_0x13a1('0x12');});return{'rows':_0xf584,'count':_0xf584[_0x13a1('0x13')]};}return null;})['then'](respondWithResult(_0x2487e0,null))[_0x13a1('0x14')](handleError(_0x2487e0,null));};exports[_0x13a1('0x15')]=function(_0x500adf,_0x1cff73){return pm2[_0x13a1('0x16')](_0x500adf[_0x13a1('0x17')]['id'])[_0x13a1('0xf')](respondWithResult(_0x1cff73,null))[_0x13a1('0xf')](handleEntityNotFound(_0x1cff73,null))['catch'](handleError(_0x1cff73,null));};exports['create']=function(_0x18011b,_0x14bb8c){if(_0x18011b[_0x13a1('0x18')][_0x13a1('0x9')]&&_0x18011b[_0x13a1('0x18')][_0x13a1('0x19')]){var _0x5ce254=path[_0x13a1('0x1a')](__dirname,_0x13a1('0x1b'),_0x18011b[_0x13a1('0x18')][_0x13a1('0x19')]);var _0x5d93a4=process['cwd']();process['chdir'](path[_0x13a1('0x1c')](_0x5ce254));return execChildProcess()['then'](function(_0x2b93de){process[_0x13a1('0x1d')](_0x5d93a4);return pm2[_0x13a1('0x1e')]({'name':_0x18011b[_0x13a1('0x18')][_0x13a1('0x9')],'script':_0x5ce254});})['then'](function(_0x519920){pm2[_0x13a1('0x1f')]();return _0x519920[0x0];})['then'](respondWithResult(_0x14bb8c,0xc9))[_0x13a1('0x14')](handleError(_0x14bb8c,null));}else{return _0x14bb8c[_0x13a1('0xa')](0x1f4)['send']({'message':_0x13a1('0x20')});}};exports['update']=function(_0x30b3e4,_0x1e9fa8){if(_0x30b3e4[_0x13a1('0x18')]['id']){delete _0x30b3e4[_0x13a1('0x18')]['id'];}var _0x342eb3={'online':'restart','stopped':_0x13a1('0x21')};if(_0x342eb3[_0x13a1('0x22')](_0x30b3e4[_0x13a1('0x18')][_0x13a1('0xa')])){return pm2[_0x342eb3[_0x30b3e4[_0x13a1('0x18')][_0x13a1('0xa')]]](_0x30b3e4[_0x13a1('0x17')]['id'])[_0x13a1('0xf')](respondWithResult(_0x1e9fa8,0xc8))[_0x13a1('0x14')](handleError(_0x1e9fa8,null));}else{return _0x1e9fa8['status'](0x1f4)[_0x13a1('0xb')]({'message':_0x13a1('0x23')});}};exports[_0x13a1('0x24')]=function(_0x687766,_0x59401a){if(_0x687766['body']['id']){delete _0x687766[_0x13a1('0x18')]['id'];}if(_0x687766['params']['id']){return pm2['delete'](_0x687766[_0x13a1('0x17')]['id'])[_0x13a1('0xf')](function(_0x529a5d){pm2[_0x13a1('0x1f')]();return _0x529a5d[0x0];})[_0x13a1('0xf')](respondWithResult(_0x59401a,null))[_0x13a1('0x14')](handleError(_0x59401a,null));}else{return _0x59401a[_0x13a1('0xa')](0x1f4)[_0x13a1('0xb')]({'message':_0x13a1('0x25')});}};