Built motion from commit b5996064.|2.6.21
[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 _0xf290=['reject','express','length','catch','show','params','create','body','script','join','cwd','chdir','start','dump','Missing\x20name\x20and/or\x20path','stop','hasOwnProperty','Unknown\x20id','../../config/pm2','api','child_process','exec','bluebird','sendStatus','status','json','error','stack','name','send','info','index','list','then'];(function(_0x382a62,_0x1baa5e){var _0x490a25=function(_0x1b3427){while(--_0x1b3427){_0x382a62['push'](_0x382a62['shift']());}};_0x490a25(++_0x1baa5e);}(_0xf290,0xde));var _0x0f29=function(_0x338f73,_0x1945c8){_0x338f73=_0x338f73-0x0;var _0x163fdf=_0xf290[_0x338f73];return _0x163fdf;};'use strict';var _=require('lodash');var pm2=require(_0x0f29('0x0'));var logger=require('../../config/logger')(_0x0f29('0x1'));var path=require('path');var exec=require(_0x0f29('0x2'))[_0x0f29('0x3')];var BPromise=require(_0x0f29('0x4'));function handleEntityNotFound(_0x28b644,_0xfdab92){return function(_0x5984ba){if(!_0x5984ba){_0x28b644[_0x0f29('0x5')](0x194);;}return _0x5984ba;};}function respondWithResult(_0x4911fb,_0x2d5350){_0x2d5350=_0x2d5350||0xc8;return function(_0x1c45ec){if(_0x1c45ec){return _0x4911fb[_0x0f29('0x6')](_0x2d5350)[_0x0f29('0x7')](_0x1c45ec);}return null;};}function handleError(_0xc78ca2,_0x45350b){_0x45350b=_0x45350b||0x1f4;return function(_0x2be26e){logger[_0x0f29('0x8')](_0x2be26e[_0x0f29('0x9')]);if(_0x2be26e[_0x0f29('0xa')]){delete _0x2be26e[_0x0f29('0xa')];}_0xc78ca2[_0x0f29('0x6')](_0x45350b)[_0x0f29('0xb')](_0x2be26e);};}function execChildProcess(){return new BPromise(function(_0xbcdea8,_0x5cc052){exec('npm\x20install',function(_0x38eb8f,_0x5f4796,_0xc11f21){logger[_0x0f29('0xc')](_0x5f4796);logger[_0x0f29('0xc')](_0xc11f21);if(_0x38eb8f){logger[_0x0f29('0x8')](_0x38eb8f);return _0x5cc052(_0x38eb8f);}return _0xbcdea8(_0x5f4796);});});}exports[_0x0f29('0xd')]=function(_0x2d2573,_0x5519cf){return pm2[_0x0f29('0xe')]()[_0x0f29('0xf')](function(_0x2bb7b8){if(_0x2bb7b8){var _0x368984=_[_0x0f29('0x10')](_0x2bb7b8,function(_0x2ed9c5){return _0x2ed9c5[_0x0f29('0xa')]===_0x0f29('0x11')||_0x2ed9c5['name']==='motion2';});return{'rows':_0x368984,'count':_0x368984[_0x0f29('0x12')]};}return null;})[_0x0f29('0xf')](respondWithResult(_0x5519cf,null))[_0x0f29('0x13')](handleError(_0x5519cf,null));};exports[_0x0f29('0x14')]=function(_0x4b3f0b,_0x122bfa){return pm2['describe'](_0x4b3f0b[_0x0f29('0x15')]['id'])['then'](respondWithResult(_0x122bfa,null))['then'](handleEntityNotFound(_0x122bfa,null))['catch'](handleError(_0x122bfa,null));};exports[_0x0f29('0x16')]=function(_0x8fc03f,_0x13e8ff){if(_0x8fc03f[_0x0f29('0x17')][_0x0f29('0xa')]&&_0x8fc03f[_0x0f29('0x17')][_0x0f29('0x18')]){var _0x4888b6=path[_0x0f29('0x19')](__dirname,'../../files/plugins',_0x8fc03f['body']['script']);var _0x5d94b9=process[_0x0f29('0x1a')]();process[_0x0f29('0x1b')](path['dirname'](_0x4888b6));return execChildProcess()[_0x0f29('0xf')](function(_0x1840e0){process[_0x0f29('0x1b')](_0x5d94b9);return pm2[_0x0f29('0x1c')]({'name':_0x8fc03f[_0x0f29('0x17')]['name'],'script':_0x4888b6});})[_0x0f29('0xf')](function(_0x5a440f){pm2[_0x0f29('0x1d')]();return _0x5a440f[0x0];})[_0x0f29('0xf')](respondWithResult(_0x13e8ff,0xc9))[_0x0f29('0x13')](handleError(_0x13e8ff,null));}else{return _0x13e8ff[_0x0f29('0x6')](0x1f4)['send']({'message':_0x0f29('0x1e')});}};exports['update']=function(_0x58b201,_0x92876){if(_0x58b201['body']['id']){delete _0x58b201['body']['id'];}var _0x57dcc7={'online':'restart','stopped':_0x0f29('0x1f')};if(_0x57dcc7[_0x0f29('0x20')](_0x58b201['body'][_0x0f29('0x6')])){return pm2[_0x57dcc7[_0x58b201[_0x0f29('0x17')][_0x0f29('0x6')]]](_0x58b201['params']['id'])['then'](respondWithResult(_0x92876,0xc8))[_0x0f29('0x13')](handleError(_0x92876,null));}else{return _0x92876['status'](0x1f4)[_0x0f29('0xb')]({'message':'Unknown\x20status'});}};exports['destroy']=function(_0x7b10f,_0x409b19){if(_0x7b10f[_0x0f29('0x17')]['id']){delete _0x7b10f[_0x0f29('0x17')]['id'];}if(_0x7b10f['params']['id']){return pm2['delete'](_0x7b10f[_0x0f29('0x15')]['id'])['then'](function(_0x4a4cf2){pm2[_0x0f29('0x1d')]();return _0x4a4cf2[0x0];})['then'](respondWithResult(_0x409b19,null))[_0x0f29('0x13')](handleError(_0x409b19,null));}else{return _0x409b19['status'](0x1f4)['send']({'message':_0x0f29('0x21')});}};