37c898684fc352d193c6cc5ccc09909c70c12d83
[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 _0xf8b8=['api','path','child_process','exec','bluebird','sendStatus','status','json','error','name','send','info','index','then','reject','express','motion2','length','catch','show','describe','params','body','join','../../files/plugins','script','cwd','chdir','dirname','start','dump','Missing\x20name\x20and/or\x20path','update','restart','hasOwnProperty','Unknown\x20status','delete','Unknown\x20id'];(function(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0xf8b8,0xbe));var _0x8f8b=function(_0x521ec0,_0x1b8a5a){_0x521ec0=_0x521ec0-0x0;var _0x18180a=_0xf8b8[_0x521ec0];return _0x18180a;};'use strict';var _=require('lodash');var pm2=require('../../config/pm2');var logger=require('../../config/logger')(_0x8f8b('0x0'));var path=require(_0x8f8b('0x1'));var exec=require(_0x8f8b('0x2'))[_0x8f8b('0x3')];var BPromise=require(_0x8f8b('0x4'));function handleEntityNotFound(_0x532510,_0x25a696){return function(_0x576c45){if(!_0x576c45){_0x532510[_0x8f8b('0x5')](0x194);;}return _0x576c45;};}function respondWithResult(_0x40d3ec,_0x50f306){_0x50f306=_0x50f306||0xc8;return function(_0x2f91e2){if(_0x2f91e2){return _0x40d3ec[_0x8f8b('0x6')](_0x50f306)[_0x8f8b('0x7')](_0x2f91e2);}return null;};}function handleError(_0x504f37,_0xed3b3e){_0xed3b3e=_0xed3b3e||0x1f4;return function(_0x1763a0){logger[_0x8f8b('0x8')](_0x1763a0['stack']);if(_0x1763a0[_0x8f8b('0x9')]){delete _0x1763a0[_0x8f8b('0x9')];}_0x504f37[_0x8f8b('0x6')](_0xed3b3e)[_0x8f8b('0xa')](_0x1763a0);};}function execChildProcess(){return new BPromise(function(_0x36c516,_0x1635db){exec('npm\x20install',function(_0x1b65a9,_0x4db938,_0x5a5e01){logger[_0x8f8b('0xb')](_0x4db938);logger[_0x8f8b('0xb')](_0x5a5e01);if(_0x1b65a9){logger[_0x8f8b('0x8')](_0x1b65a9);return _0x1635db(_0x1b65a9);}return _0x36c516(_0x4db938);});});}exports[_0x8f8b('0xc')]=function(_0x2ba66f,_0x5c53eb){return pm2['list']()[_0x8f8b('0xd')](function(_0x9a4b52){if(_0x9a4b52){var _0xdeaca0=_[_0x8f8b('0xe')](_0x9a4b52,function(_0x11d6f1){return _0x11d6f1[_0x8f8b('0x9')]===_0x8f8b('0xf')||_0x11d6f1['name']===_0x8f8b('0x10');});return{'rows':_0xdeaca0,'count':_0xdeaca0[_0x8f8b('0x11')]};}return null;})[_0x8f8b('0xd')](respondWithResult(_0x5c53eb,null))[_0x8f8b('0x12')](handleError(_0x5c53eb,null));};exports[_0x8f8b('0x13')]=function(_0x229c53,_0x17d5dc){return pm2[_0x8f8b('0x14')](_0x229c53[_0x8f8b('0x15')]['id'])['then'](respondWithResult(_0x17d5dc,null))[_0x8f8b('0xd')](handleEntityNotFound(_0x17d5dc,null))[_0x8f8b('0x12')](handleError(_0x17d5dc,null));};exports['create']=function(_0x59e2f9,_0x5777ad){if(_0x59e2f9[_0x8f8b('0x16')][_0x8f8b('0x9')]&&_0x59e2f9[_0x8f8b('0x16')]['script']){var _0x359535=path[_0x8f8b('0x17')](__dirname,_0x8f8b('0x18'),_0x59e2f9['body'][_0x8f8b('0x19')]);var _0x46da81=process[_0x8f8b('0x1a')]();process[_0x8f8b('0x1b')](path[_0x8f8b('0x1c')](_0x359535));return execChildProcess()[_0x8f8b('0xd')](function(_0x2ce59c){process['chdir'](_0x46da81);return pm2[_0x8f8b('0x1d')]({'name':_0x59e2f9[_0x8f8b('0x16')][_0x8f8b('0x9')],'script':_0x359535});})[_0x8f8b('0xd')](function(_0x3a306b){pm2[_0x8f8b('0x1e')]();return _0x3a306b[0x0];})[_0x8f8b('0xd')](respondWithResult(_0x5777ad,0xc9))[_0x8f8b('0x12')](handleError(_0x5777ad,null));}else{return _0x5777ad[_0x8f8b('0x6')](0x1f4)[_0x8f8b('0xa')]({'message':_0x8f8b('0x1f')});}};exports[_0x8f8b('0x20')]=function(_0x269185,_0x456ca2){if(_0x269185[_0x8f8b('0x16')]['id']){delete _0x269185[_0x8f8b('0x16')]['id'];}var _0x3581b3={'online':_0x8f8b('0x21'),'stopped':'stop'};if(_0x3581b3[_0x8f8b('0x22')](_0x269185[_0x8f8b('0x16')][_0x8f8b('0x6')])){return pm2[_0x3581b3[_0x269185[_0x8f8b('0x16')]['status']]](_0x269185['params']['id'])[_0x8f8b('0xd')](respondWithResult(_0x456ca2,0xc8))[_0x8f8b('0x12')](handleError(_0x456ca2,null));}else{return _0x456ca2['status'](0x1f4)[_0x8f8b('0xa')]({'message':_0x8f8b('0x23')});}};exports['destroy']=function(_0xc84bdd,_0x35bf48){if(_0xc84bdd['body']['id']){delete _0xc84bdd[_0x8f8b('0x16')]['id'];}if(_0xc84bdd[_0x8f8b('0x15')]['id']){return pm2[_0x8f8b('0x24')](_0xc84bdd[_0x8f8b('0x15')]['id'])[_0x8f8b('0xd')](function(_0x43ef29){pm2['dump']();return _0x43ef29[0x0];})[_0x8f8b('0xd')](respondWithResult(_0x35bf48,null))[_0x8f8b('0x12')](handleError(_0x35bf48,null));}else{return _0x35bf48['status'](0x1f4)[_0x8f8b('0xa')]({'message':_0x8f8b('0x25')});}};