Built motion from commit (unavailable).|2.5.23
[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 _0xb461=['chdir','dirname','start','dump','update','stop','hasOwnProperty','Unknown\x20status','delete','lodash','../../config/logger','api','path','exec','bluebird','sendStatus','status','json','error','name','send','npm\x20install','info','reject','express','length','then','catch','show','describe','params','create','body','script','../../files/plugins','cwd'];(function(_0x5a9c0c,_0x4ec485){var _0x53c77d=function(_0x1cf384){while(--_0x1cf384){_0x5a9c0c['push'](_0x5a9c0c['shift']());}};_0x53c77d(++_0x4ec485);}(_0xb461,0xe1));var _0x1b46=function(_0x1e6a16,_0x5b7ffe){_0x1e6a16=_0x1e6a16-0x0;var _0x3e81a2=_0xb461[_0x1e6a16];return _0x3e81a2;};'use strict';var _=require(_0x1b46('0x0'));var pm2=require('../../config/pm2');var logger=require(_0x1b46('0x1'))(_0x1b46('0x2'));var path=require(_0x1b46('0x3'));var exec=require('child_process')[_0x1b46('0x4')];var BPromise=require(_0x1b46('0x5'));function handleEntityNotFound(_0x4f7d95,_0x46ab9d){return function(_0x5c9f12){if(!_0x5c9f12){_0x4f7d95[_0x1b46('0x6')](0x194);;}return _0x5c9f12;};}function respondWithResult(_0x4e23e1,_0x35ad47){_0x35ad47=_0x35ad47||0xc8;return function(_0x4d82f5){if(_0x4d82f5){return _0x4e23e1[_0x1b46('0x7')](_0x35ad47)[_0x1b46('0x8')](_0x4d82f5);}return null;};}function handleError(_0x14e7ec,_0x12683d){_0x12683d=_0x12683d||0x1f4;return function(_0x40f0d7){logger[_0x1b46('0x9')](_0x40f0d7['stack']);if(_0x40f0d7[_0x1b46('0xa')]){delete _0x40f0d7[_0x1b46('0xa')];}_0x14e7ec[_0x1b46('0x7')](_0x12683d)[_0x1b46('0xb')](_0x40f0d7);};}function execChildProcess(){return new BPromise(function(_0x4eff2a,_0x23499b){exec(_0x1b46('0xc'),function(_0x41596b,_0x183b2d,_0x4c669a){logger['info'](_0x183b2d);logger[_0x1b46('0xd')](_0x4c669a);if(_0x41596b){logger[_0x1b46('0x9')](_0x41596b);return _0x23499b(_0x41596b);}return _0x4eff2a(_0x183b2d);});});}exports['index']=function(_0x3a2472,_0x12ed29){return pm2['list']()['then'](function(_0xf39c39){if(_0xf39c39){var _0x1d2d70=_[_0x1b46('0xe')](_0xf39c39,function(_0x3184b8){return _0x3184b8[_0x1b46('0xa')]===_0x1b46('0xf')||_0x3184b8[_0x1b46('0xa')]==='motion2';});return{'rows':_0x1d2d70,'count':_0x1d2d70[_0x1b46('0x10')]};}return null;})[_0x1b46('0x11')](respondWithResult(_0x12ed29,null))[_0x1b46('0x12')](handleError(_0x12ed29,null));};exports[_0x1b46('0x13')]=function(_0x33265f,_0x46f96c){return pm2[_0x1b46('0x14')](_0x33265f[_0x1b46('0x15')]['id'])[_0x1b46('0x11')](respondWithResult(_0x46f96c,null))[_0x1b46('0x11')](handleEntityNotFound(_0x46f96c,null))['catch'](handleError(_0x46f96c,null));};exports[_0x1b46('0x16')]=function(_0xa41e6c,_0x43440){if(_0xa41e6c[_0x1b46('0x17')][_0x1b46('0xa')]&&_0xa41e6c[_0x1b46('0x17')][_0x1b46('0x18')]){var _0x1dac8d=path['join'](__dirname,_0x1b46('0x19'),_0xa41e6c[_0x1b46('0x17')][_0x1b46('0x18')]);var _0x1fadc9=process[_0x1b46('0x1a')]();process[_0x1b46('0x1b')](path[_0x1b46('0x1c')](_0x1dac8d));return execChildProcess()[_0x1b46('0x11')](function(_0x74b637){process[_0x1b46('0x1b')](_0x1fadc9);return pm2[_0x1b46('0x1d')]({'name':_0xa41e6c[_0x1b46('0x17')][_0x1b46('0xa')],'script':_0x1dac8d});})[_0x1b46('0x11')](function(_0x43f0e3){pm2[_0x1b46('0x1e')]();return _0x43f0e3[0x0];})['then'](respondWithResult(_0x43440,0xc9))[_0x1b46('0x12')](handleError(_0x43440,null));}else{return _0x43440[_0x1b46('0x7')](0x1f4)[_0x1b46('0xb')]({'message':'Missing\x20name\x20and/or\x20path'});}};exports[_0x1b46('0x1f')]=function(_0x3ee985,_0x2d7342){if(_0x3ee985[_0x1b46('0x17')]['id']){delete _0x3ee985[_0x1b46('0x17')]['id'];}var _0x3a8db8={'online':'restart','stopped':_0x1b46('0x20')};if(_0x3a8db8[_0x1b46('0x21')](_0x3ee985['body'][_0x1b46('0x7')])){return pm2[_0x3a8db8[_0x3ee985['body']['status']]](_0x3ee985['params']['id'])[_0x1b46('0x11')](respondWithResult(_0x2d7342,0xc8))[_0x1b46('0x12')](handleError(_0x2d7342,null));}else{return _0x2d7342[_0x1b46('0x7')](0x1f4)[_0x1b46('0xb')]({'message':_0x1b46('0x22')});}};exports['destroy']=function(_0xcd5e03,_0x17fbd2){if(_0xcd5e03[_0x1b46('0x17')]['id']){delete _0xcd5e03[_0x1b46('0x17')]['id'];}if(_0xcd5e03[_0x1b46('0x15')]['id']){return pm2[_0x1b46('0x23')](_0xcd5e03[_0x1b46('0x15')]['id'])[_0x1b46('0x11')](function(_0x3625f7){pm2[_0x1b46('0x1e')]();return _0x3625f7[0x0];})[_0x1b46('0x11')](respondWithResult(_0x17fbd2,null))[_0x1b46('0x12')](handleError(_0x17fbd2,null));}else{return _0x17fbd2['status'](0x1f4)[_0x1b46('0xb')]({'message':'Unknown\x20id'});}};