d01d65f6b77a7cf34d57f4a84983e0f0d95c6367
[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 _0xb1ab=['status','error','name','send','info','index','list','then','reject','express','motion2','catch','show','describe','params','create','body','join','../../files/plugins','script','chdir','dirname','dump','Missing\x20name\x20and/or\x20path','update','restart','hasOwnProperty','Unknown\x20status','destroy','Unknown\x20id','../../config/pm2','../../config/logger','api','path','child_process','bluebird','sendStatus'];(function(_0x4b893f,_0x12084b){var _0x4dbe80=function(_0x31dbd2){while(--_0x31dbd2){_0x4b893f['push'](_0x4b893f['shift']());}};_0x4dbe80(++_0x12084b);}(_0xb1ab,0x121));var _0xbb1a=function(_0x344a3f,_0x579a22){_0x344a3f=_0x344a3f-0x0;var _0x264712=_0xb1ab[_0x344a3f];return _0x264712;};'use strict';var _=require('lodash');var pm2=require(_0xbb1a('0x0'));var logger=require(_0xbb1a('0x1'))(_0xbb1a('0x2'));var path=require(_0xbb1a('0x3'));var exec=require(_0xbb1a('0x4'))['exec'];var BPromise=require(_0xbb1a('0x5'));function handleEntityNotFound(_0x20b129,_0x3e9e3e){return function(_0x8290a5){if(!_0x8290a5){_0x20b129[_0xbb1a('0x6')](0x194);;}return _0x8290a5;};}function respondWithResult(_0xfab9fe,_0x468701){_0x468701=_0x468701||0xc8;return function(_0x4407e8){if(_0x4407e8){return _0xfab9fe[_0xbb1a('0x7')](_0x468701)['json'](_0x4407e8);}return null;};}function handleError(_0xf197d0,_0x10f44){_0x10f44=_0x10f44||0x1f4;return function(_0x5e390c){logger[_0xbb1a('0x8')](_0x5e390c['stack']);if(_0x5e390c[_0xbb1a('0x9')]){delete _0x5e390c['name'];}_0xf197d0[_0xbb1a('0x7')](_0x10f44)[_0xbb1a('0xa')](_0x5e390c);};}function execChildProcess(){return new BPromise(function(_0x25135d,_0x22ae44){exec('npm\x20install',function(_0x5c2ff3,_0x29aff0,_0x104672){logger[_0xbb1a('0xb')](_0x29aff0);logger[_0xbb1a('0xb')](_0x104672);if(_0x5c2ff3){logger[_0xbb1a('0x8')](_0x5c2ff3);return _0x22ae44(_0x5c2ff3);}return _0x25135d(_0x29aff0);});});}exports[_0xbb1a('0xc')]=function(_0x5ce8b5,_0x31c0f1){return pm2[_0xbb1a('0xd')]()[_0xbb1a('0xe')](function(_0x56433f){if(_0x56433f){var _0x5eaa4d=_[_0xbb1a('0xf')](_0x56433f,function(_0x2dd9fb){return _0x2dd9fb['name']===_0xbb1a('0x10')||_0x2dd9fb[_0xbb1a('0x9')]===_0xbb1a('0x11');});return{'rows':_0x5eaa4d,'count':_0x5eaa4d['length']};}return null;})['then'](respondWithResult(_0x31c0f1,null))[_0xbb1a('0x12')](handleError(_0x31c0f1,null));};exports[_0xbb1a('0x13')]=function(_0x117cc5,_0x502da1){return pm2[_0xbb1a('0x14')](_0x117cc5[_0xbb1a('0x15')]['id'])[_0xbb1a('0xe')](respondWithResult(_0x502da1,null))[_0xbb1a('0xe')](handleEntityNotFound(_0x502da1,null))[_0xbb1a('0x12')](handleError(_0x502da1,null));};exports[_0xbb1a('0x16')]=function(_0x35404d,_0x2813ad){if(_0x35404d['body'][_0xbb1a('0x9')]&&_0x35404d[_0xbb1a('0x17')]['script']){var _0xf37acf=path[_0xbb1a('0x18')](__dirname,_0xbb1a('0x19'),_0x35404d[_0xbb1a('0x17')][_0xbb1a('0x1a')]);var _0x48b3a1=process['cwd']();process[_0xbb1a('0x1b')](path[_0xbb1a('0x1c')](_0xf37acf));return execChildProcess()[_0xbb1a('0xe')](function(_0x261d24){process[_0xbb1a('0x1b')](_0x48b3a1);return pm2['start']({'name':_0x35404d[_0xbb1a('0x17')][_0xbb1a('0x9')],'script':_0xf37acf});})['then'](function(_0x1c9059){pm2[_0xbb1a('0x1d')]();return _0x1c9059[0x0];})['then'](respondWithResult(_0x2813ad,0xc9))[_0xbb1a('0x12')](handleError(_0x2813ad,null));}else{return _0x2813ad[_0xbb1a('0x7')](0x1f4)[_0xbb1a('0xa')]({'message':_0xbb1a('0x1e')});}};exports[_0xbb1a('0x1f')]=function(_0x1fe970,_0x33456c){if(_0x1fe970[_0xbb1a('0x17')]['id']){delete _0x1fe970['body']['id'];}var _0x2b34c2={'online':_0xbb1a('0x20'),'stopped':'stop'};if(_0x2b34c2[_0xbb1a('0x21')](_0x1fe970[_0xbb1a('0x17')][_0xbb1a('0x7')])){return pm2[_0x2b34c2[_0x1fe970[_0xbb1a('0x17')][_0xbb1a('0x7')]]](_0x1fe970[_0xbb1a('0x15')]['id'])[_0xbb1a('0xe')](respondWithResult(_0x33456c,0xc8))[_0xbb1a('0x12')](handleError(_0x33456c,null));}else{return _0x33456c[_0xbb1a('0x7')](0x1f4)[_0xbb1a('0xa')]({'message':_0xbb1a('0x22')});}};exports[_0xbb1a('0x23')]=function(_0x57794a,_0x54ba2b){if(_0x57794a['body']['id']){delete _0x57794a['body']['id'];}if(_0x57794a['params']['id']){return pm2['delete'](_0x57794a[_0xbb1a('0x15')]['id'])[_0xbb1a('0xe')](function(_0x48a483){pm2[_0xbb1a('0x1d')]();return _0x48a483[0x0];})['then'](respondWithResult(_0x54ba2b,null))[_0xbb1a('0x12')](handleError(_0x54ba2b,null));}else{return _0x54ba2b[_0xbb1a('0x7')](0x1f4)[_0xbb1a('0xa')]({'message':_0xbb1a('0x24')});}};