Built motion from commit (unavailable).|2.5.22
[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 _0xe3d4=['path','exec','bluebird','sendStatus','json','error','stack','name','status','send','npm\x20install','info','index','reject','express','then','catch','show','describe','params','create','body','script','join','../../files/plugins','cwd','chdir','start','dump','Missing\x20name\x20and/or\x20path','update','stop','hasOwnProperty','Unknown\x20status','destroy','delete','Unknown\x20id','../../config/pm2','api'];(function(_0x5c7a75,_0x59be5a){var _0x3820d4=function(_0x3f5662){while(--_0x3f5662){_0x5c7a75['push'](_0x5c7a75['shift']());}};_0x3820d4(++_0x59be5a);}(_0xe3d4,0x184));var _0x4e3d=function(_0x3bac2b,_0x137306){_0x3bac2b=_0x3bac2b-0x0;var _0xbadf45=_0xe3d4[_0x3bac2b];return _0xbadf45;};'use strict';var _=require('lodash');var pm2=require(_0x4e3d('0x0'));var logger=require('../../config/logger')(_0x4e3d('0x1'));var path=require(_0x4e3d('0x2'));var exec=require('child_process')[_0x4e3d('0x3')];var BPromise=require(_0x4e3d('0x4'));function handleEntityNotFound(_0x57379d,_0x443019){return function(_0x291c33){if(!_0x291c33){_0x57379d[_0x4e3d('0x5')](0x194);;}return _0x291c33;};}function respondWithResult(_0x361c1b,_0x5cf36f){_0x5cf36f=_0x5cf36f||0xc8;return function(_0x44e92d){if(_0x44e92d){return _0x361c1b['status'](_0x5cf36f)[_0x4e3d('0x6')](_0x44e92d);}return null;};}function handleError(_0x61db06,_0x1cacfa){_0x1cacfa=_0x1cacfa||0x1f4;return function(_0x1a68c1){logger[_0x4e3d('0x7')](_0x1a68c1[_0x4e3d('0x8')]);if(_0x1a68c1[_0x4e3d('0x9')]){delete _0x1a68c1[_0x4e3d('0x9')];}_0x61db06[_0x4e3d('0xa')](_0x1cacfa)[_0x4e3d('0xb')](_0x1a68c1);};}function execChildProcess(){return new BPromise(function(_0x52f972,_0x6fae56){exec(_0x4e3d('0xc'),function(_0x39e5df,_0x11bc58,_0x137219){logger[_0x4e3d('0xd')](_0x11bc58);logger[_0x4e3d('0xd')](_0x137219);if(_0x39e5df){logger[_0x4e3d('0x7')](_0x39e5df);return _0x6fae56(_0x39e5df);}return _0x52f972(_0x11bc58);});});}exports[_0x4e3d('0xe')]=function(_0x20e76a,_0x32c6fd){return pm2['list']()['then'](function(_0x58d977){if(_0x58d977){var _0x59ca0c=_[_0x4e3d('0xf')](_0x58d977,function(_0xacb94){return _0xacb94['name']===_0x4e3d('0x10')||_0xacb94[_0x4e3d('0x9')]==='motion2';});return{'rows':_0x59ca0c,'count':_0x59ca0c['length']};}return null;})[_0x4e3d('0x11')](respondWithResult(_0x32c6fd,null))[_0x4e3d('0x12')](handleError(_0x32c6fd,null));};exports[_0x4e3d('0x13')]=function(_0x22619f,_0x2a9cc8){return pm2[_0x4e3d('0x14')](_0x22619f[_0x4e3d('0x15')]['id'])['then'](respondWithResult(_0x2a9cc8,null))['then'](handleEntityNotFound(_0x2a9cc8,null))[_0x4e3d('0x12')](handleError(_0x2a9cc8,null));};exports[_0x4e3d('0x16')]=function(_0x115e1f,_0x505ad0){if(_0x115e1f[_0x4e3d('0x17')][_0x4e3d('0x9')]&&_0x115e1f['body'][_0x4e3d('0x18')]){var _0x234530=path[_0x4e3d('0x19')](__dirname,_0x4e3d('0x1a'),_0x115e1f[_0x4e3d('0x17')]['script']);var _0x16da6a=process[_0x4e3d('0x1b')]();process[_0x4e3d('0x1c')](path['dirname'](_0x234530));return execChildProcess()[_0x4e3d('0x11')](function(_0x598219){process[_0x4e3d('0x1c')](_0x16da6a);return pm2[_0x4e3d('0x1d')]({'name':_0x115e1f[_0x4e3d('0x17')][_0x4e3d('0x9')],'script':_0x234530});})['then'](function(_0x551db5){pm2[_0x4e3d('0x1e')]();return _0x551db5[0x0];})[_0x4e3d('0x11')](respondWithResult(_0x505ad0,0xc9))[_0x4e3d('0x12')](handleError(_0x505ad0,null));}else{return _0x505ad0[_0x4e3d('0xa')](0x1f4)['send']({'message':_0x4e3d('0x1f')});}};exports[_0x4e3d('0x20')]=function(_0x196d1d,_0x76e4ee){if(_0x196d1d[_0x4e3d('0x17')]['id']){delete _0x196d1d[_0x4e3d('0x17')]['id'];}var _0x56ce13={'online':'restart','stopped':_0x4e3d('0x21')};if(_0x56ce13[_0x4e3d('0x22')](_0x196d1d['body']['status'])){return pm2[_0x56ce13[_0x196d1d[_0x4e3d('0x17')][_0x4e3d('0xa')]]](_0x196d1d['params']['id'])['then'](respondWithResult(_0x76e4ee,0xc8))['catch'](handleError(_0x76e4ee,null));}else{return _0x76e4ee[_0x4e3d('0xa')](0x1f4)['send']({'message':_0x4e3d('0x23')});}};exports[_0x4e3d('0x24')]=function(_0x1034d8,_0x5c97e0){if(_0x1034d8[_0x4e3d('0x17')]['id']){delete _0x1034d8[_0x4e3d('0x17')]['id'];}if(_0x1034d8[_0x4e3d('0x15')]['id']){return pm2[_0x4e3d('0x25')](_0x1034d8[_0x4e3d('0x15')]['id'])['then'](function(_0x3163bb){pm2[_0x4e3d('0x1e')]();return _0x3163bb[0x0];})[_0x4e3d('0x11')](respondWithResult(_0x5c97e0,null))[_0x4e3d('0x12')](handleError(_0x5c97e0,null));}else{return _0x5c97e0[_0x4e3d('0xa')](0x1f4)['send']({'message':_0x4e3d('0x26')});}};