2d910626c63bf53a575e8d2a566e46418981586c
[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 _0x5db8=['Unknown\x20status','Unknown\x20id','lodash','../../config/pm2','../../config/logger','path','child_process','exec','sendStatus','status','json','error','name','send','info','index','list','then','reject','express','length','catch','show','describe','create','body','script','join','../../files/plugins','cwd','chdir','dirname','start','dump','update','restart','params'];(function(_0x20a394,_0x5c4e0c){var _0x8a454f=function(_0x26d21c){while(--_0x26d21c){_0x20a394['push'](_0x20a394['shift']());}};_0x8a454f(++_0x5c4e0c);}(_0x5db8,0xbb));var _0x85db=function(_0x29f014,_0x508522){_0x29f014=_0x29f014-0x0;var _0x316be5=_0x5db8[_0x29f014];return _0x316be5;};'use strict';var _=require(_0x85db('0x0'));var pm2=require(_0x85db('0x1'));var logger=require(_0x85db('0x2'))('api');var path=require(_0x85db('0x3'));var exec=require(_0x85db('0x4'))[_0x85db('0x5')];var BPromise=require('bluebird');function handleEntityNotFound(_0x5b7426,_0x13c216){return function(_0x1182c0){if(!_0x1182c0){_0x5b7426[_0x85db('0x6')](0x194);;}return _0x1182c0;};}function respondWithResult(_0x34d71f,_0x48bf16){_0x48bf16=_0x48bf16||0xc8;return function(_0x489b13){if(_0x489b13){return _0x34d71f[_0x85db('0x7')](_0x48bf16)[_0x85db('0x8')](_0x489b13);}return null;};}function handleError(_0xc6fd00,_0x308988){_0x308988=_0x308988||0x1f4;return function(_0x59a522){logger[_0x85db('0x9')](_0x59a522['stack']);if(_0x59a522[_0x85db('0xa')]){delete _0x59a522[_0x85db('0xa')];}_0xc6fd00[_0x85db('0x7')](_0x308988)[_0x85db('0xb')](_0x59a522);};}function execChildProcess(){return new BPromise(function(_0x5491fa,_0x54feb2){exec('npm\x20install',function(_0x14f838,_0x458b2b,_0x4de057){logger[_0x85db('0xc')](_0x458b2b);logger['info'](_0x4de057);if(_0x14f838){logger[_0x85db('0x9')](_0x14f838);return _0x54feb2(_0x14f838);}return _0x5491fa(_0x458b2b);});});}exports[_0x85db('0xd')]=function(_0x382c43,_0x216a41){return pm2[_0x85db('0xe')]()[_0x85db('0xf')](function(_0x2b7507){if(_0x2b7507){var _0x25ec64=_[_0x85db('0x10')](_0x2b7507,function(_0x415281){return _0x415281[_0x85db('0xa')]===_0x85db('0x11')||_0x415281[_0x85db('0xa')]==='motion2';});return{'rows':_0x25ec64,'count':_0x25ec64[_0x85db('0x12')]};}return null;})[_0x85db('0xf')](respondWithResult(_0x216a41,null))[_0x85db('0x13')](handleError(_0x216a41,null));};exports[_0x85db('0x14')]=function(_0x2ecd71,_0x396afa){return pm2[_0x85db('0x15')](_0x2ecd71['params']['id'])[_0x85db('0xf')](respondWithResult(_0x396afa,null))[_0x85db('0xf')](handleEntityNotFound(_0x396afa,null))[_0x85db('0x13')](handleError(_0x396afa,null));};exports[_0x85db('0x16')]=function(_0x4d976d,_0x2bc9a4){if(_0x4d976d[_0x85db('0x17')][_0x85db('0xa')]&&_0x4d976d[_0x85db('0x17')][_0x85db('0x18')]){var _0x5c37d7=path[_0x85db('0x19')](__dirname,_0x85db('0x1a'),_0x4d976d[_0x85db('0x17')][_0x85db('0x18')]);var _0x44c122=process[_0x85db('0x1b')]();process[_0x85db('0x1c')](path[_0x85db('0x1d')](_0x5c37d7));return execChildProcess()['then'](function(_0xfffea2){process[_0x85db('0x1c')](_0x44c122);return pm2[_0x85db('0x1e')]({'name':_0x4d976d[_0x85db('0x17')][_0x85db('0xa')],'script':_0x5c37d7});})[_0x85db('0xf')](function(_0x51c948){pm2[_0x85db('0x1f')]();return _0x51c948[0x0];})[_0x85db('0xf')](respondWithResult(_0x2bc9a4,0xc9))[_0x85db('0x13')](handleError(_0x2bc9a4,null));}else{return _0x2bc9a4['status'](0x1f4)['send']({'message':'Missing\x20name\x20and/or\x20path'});}};exports[_0x85db('0x20')]=function(_0x105bb9,_0x33448e){if(_0x105bb9['body']['id']){delete _0x105bb9[_0x85db('0x17')]['id'];}var _0xc2abb8={'online':_0x85db('0x21'),'stopped':'stop'};if(_0xc2abb8['hasOwnProperty'](_0x105bb9[_0x85db('0x17')][_0x85db('0x7')])){return pm2[_0xc2abb8[_0x105bb9[_0x85db('0x17')][_0x85db('0x7')]]](_0x105bb9[_0x85db('0x22')]['id'])[_0x85db('0xf')](respondWithResult(_0x33448e,0xc8))[_0x85db('0x13')](handleError(_0x33448e,null));}else{return _0x33448e[_0x85db('0x7')](0x1f4)[_0x85db('0xb')]({'message':_0x85db('0x23')});}};exports['destroy']=function(_0x4a15b9,_0x13ad98){if(_0x4a15b9['body']['id']){delete _0x4a15b9[_0x85db('0x17')]['id'];}if(_0x4a15b9[_0x85db('0x22')]['id']){return pm2['delete'](_0x4a15b9[_0x85db('0x22')]['id'])[_0x85db('0xf')](function(_0x38369f){pm2[_0x85db('0x1f')]();return _0x38369f[0x0];})['then'](respondWithResult(_0x13ad98,null))[_0x85db('0x13')](handleError(_0x13ad98,null));}else{return _0x13ad98[_0x85db('0x7')](0x1f4)[_0x85db('0xb')]({'message':_0x85db('0x24')});}};