039816158fe4a604a97824c438e2abe905a1e249
[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 _0xa75b=['motion2','length','catch','show','describe','params','create','body','script','cwd','chdir','start','dump','Missing\x20name\x20and/or\x20path','update','restart','hasOwnProperty','delete','lodash','api','path','child_process','exec','bluebird','sendStatus','status','stack','name','send','npm\x20install','info','error','then','reject','express'];(function(_0xe717f6,_0x13c104){var _0x52b5b4=function(_0x398d22){while(--_0x398d22){_0xe717f6['push'](_0xe717f6['shift']());}};_0x52b5b4(++_0x13c104);}(_0xa75b,0x170));var _0xba75=function(_0x449b46,_0x394b34){_0x449b46=_0x449b46-0x0;var _0x1eb69e=_0xa75b[_0x449b46];return _0x1eb69e;};'use strict';var _=require(_0xba75('0x0'));var pm2=require('../../config/pm2');var logger=require('../../config/logger')(_0xba75('0x1'));var path=require(_0xba75('0x2'));var exec=require(_0xba75('0x3'))[_0xba75('0x4')];var BPromise=require(_0xba75('0x5'));function handleEntityNotFound(_0x336606,_0x152269){return function(_0x398bd5){if(!_0x398bd5){_0x336606[_0xba75('0x6')](0x194);;}return _0x398bd5;};}function respondWithResult(_0x41afc9,_0x2baa28){_0x2baa28=_0x2baa28||0xc8;return function(_0x238a33){if(_0x238a33){return _0x41afc9[_0xba75('0x7')](_0x2baa28)['json'](_0x238a33);}return null;};}function handleError(_0x4b842d,_0x731cae){_0x731cae=_0x731cae||0x1f4;return function(_0x52669f){logger['error'](_0x52669f[_0xba75('0x8')]);if(_0x52669f['name']){delete _0x52669f[_0xba75('0x9')];}_0x4b842d[_0xba75('0x7')](_0x731cae)[_0xba75('0xa')](_0x52669f);};}function execChildProcess(){return new BPromise(function(_0x141931,_0x13f60f){exec(_0xba75('0xb'),function(_0xb5afb8,_0x2538eb,_0x1824e2){logger[_0xba75('0xc')](_0x2538eb);logger[_0xba75('0xc')](_0x1824e2);if(_0xb5afb8){logger[_0xba75('0xd')](_0xb5afb8);return _0x13f60f(_0xb5afb8);}return _0x141931(_0x2538eb);});});}exports['index']=function(_0x55553a,_0x38a6db){return pm2['list']()[_0xba75('0xe')](function(_0x2df615){if(_0x2df615){var _0xa27f76=_[_0xba75('0xf')](_0x2df615,function(_0x4c4a0b){return _0x4c4a0b[_0xba75('0x9')]===_0xba75('0x10')||_0x4c4a0b[_0xba75('0x9')]===_0xba75('0x11');});return{'rows':_0xa27f76,'count':_0xa27f76[_0xba75('0x12')]};}return null;})['then'](respondWithResult(_0x38a6db,null))[_0xba75('0x13')](handleError(_0x38a6db,null));};exports[_0xba75('0x14')]=function(_0x14bd83,_0x47be93){return pm2[_0xba75('0x15')](_0x14bd83[_0xba75('0x16')]['id'])[_0xba75('0xe')](respondWithResult(_0x47be93,null))[_0xba75('0xe')](handleEntityNotFound(_0x47be93,null))[_0xba75('0x13')](handleError(_0x47be93,null));};exports[_0xba75('0x17')]=function(_0x5811cb,_0x23c2ec){if(_0x5811cb[_0xba75('0x18')]['name']&&_0x5811cb['body'][_0xba75('0x19')]){var _0x31bc33=path['join'](__dirname,'../../files/plugins',_0x5811cb[_0xba75('0x18')]['script']);var _0x1b8a36=process[_0xba75('0x1a')]();process[_0xba75('0x1b')](path['dirname'](_0x31bc33));return execChildProcess()[_0xba75('0xe')](function(_0x221d5e){process[_0xba75('0x1b')](_0x1b8a36);return pm2[_0xba75('0x1c')]({'name':_0x5811cb[_0xba75('0x18')][_0xba75('0x9')],'script':_0x31bc33});})['then'](function(_0x246c48){pm2[_0xba75('0x1d')]();return _0x246c48[0x0];})[_0xba75('0xe')](respondWithResult(_0x23c2ec,0xc9))[_0xba75('0x13')](handleError(_0x23c2ec,null));}else{return _0x23c2ec[_0xba75('0x7')](0x1f4)[_0xba75('0xa')]({'message':_0xba75('0x1e')});}};exports[_0xba75('0x1f')]=function(_0x35c571,_0x155c74){if(_0x35c571['body']['id']){delete _0x35c571['body']['id'];}var _0x4e1987={'online':_0xba75('0x20'),'stopped':'stop'};if(_0x4e1987[_0xba75('0x21')](_0x35c571['body'][_0xba75('0x7')])){return pm2[_0x4e1987[_0x35c571[_0xba75('0x18')][_0xba75('0x7')]]](_0x35c571['params']['id'])[_0xba75('0xe')](respondWithResult(_0x155c74,0xc8))[_0xba75('0x13')](handleError(_0x155c74,null));}else{return _0x155c74[_0xba75('0x7')](0x1f4)[_0xba75('0xa')]({'message':'Unknown\x20status'});}};exports['destroy']=function(_0x200715,_0x481a04){if(_0x200715[_0xba75('0x18')]['id']){delete _0x200715[_0xba75('0x18')]['id'];}if(_0x200715[_0xba75('0x16')]['id']){return pm2[_0xba75('0x22')](_0x200715['params']['id'])[_0xba75('0xe')](function(_0x222d98){pm2['dump']();return _0x222d98[0x0];})[_0xba75('0xe')](respondWithResult(_0x481a04,null))[_0xba75('0x13')](handleError(_0x481a04,null));}else{return _0x481a04[_0xba75('0x7')](0x1f4)[_0xba75('0xa')]({'message':'Unknown\x20id'});}};