Built motion from commit (unavailable).|2.5.4
[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 _0x756c=['hasOwnProperty','destroy','delete','lodash','../../config/pm2','../../config/logger','path','child_process','sendStatus','status','json','stack','name','send','npm\x20install','info','error','index','list','then','reject','motion2','catch','describe','params','body','script','join','../../files/plugins','cwd','chdir','start','dump','Missing\x20name\x20and/or\x20path','update','stop'];(function(_0x25b16f,_0x212dbd){var _0x4d5334=function(_0x2376cc){while(--_0x2376cc){_0x25b16f['push'](_0x25b16f['shift']());}};_0x4d5334(++_0x212dbd);}(_0x756c,0x16b));var _0xc756=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x756c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc756('0x0'));var pm2=require(_0xc756('0x1'));var logger=require(_0xc756('0x2'))('api');var path=require(_0xc756('0x3'));var exec=require(_0xc756('0x4'))['exec'];var BPromise=require('bluebird');function handleEntityNotFound(_0x5b7928,_0x2ccc53){return function(_0x14aa8c){if(!_0x14aa8c){_0x5b7928[_0xc756('0x5')](0x194);;}return _0x14aa8c;};}function respondWithResult(_0x42f6e9,_0x4e8e20){_0x4e8e20=_0x4e8e20||0xc8;return function(_0x300ecb){if(_0x300ecb){return _0x42f6e9[_0xc756('0x6')](_0x4e8e20)[_0xc756('0x7')](_0x300ecb);}return null;};}function handleError(_0x5a1fa1,_0x1b65ea){_0x1b65ea=_0x1b65ea||0x1f4;return function(_0x398c5d){logger['error'](_0x398c5d[_0xc756('0x8')]);if(_0x398c5d['name']){delete _0x398c5d[_0xc756('0x9')];}_0x5a1fa1[_0xc756('0x6')](_0x1b65ea)[_0xc756('0xa')](_0x398c5d);};}function execChildProcess(){return new BPromise(function(_0x2bffaa,_0x57f777){exec(_0xc756('0xb'),function(_0x79e4a6,_0x4d06ee,_0x1c575d){logger[_0xc756('0xc')](_0x4d06ee);logger[_0xc756('0xc')](_0x1c575d);if(_0x79e4a6){logger[_0xc756('0xd')](_0x79e4a6);return _0x57f777(_0x79e4a6);}return _0x2bffaa(_0x4d06ee);});});}exports[_0xc756('0xe')]=function(_0x2cece1,_0x45cd0c){return pm2[_0xc756('0xf')]()[_0xc756('0x10')](function(_0x40b662){if(_0x40b662){var _0x531252=_[_0xc756('0x11')](_0x40b662,function(_0xa573be){return _0xa573be[_0xc756('0x9')]==='express'||_0xa573be['name']===_0xc756('0x12');});return{'rows':_0x531252,'count':_0x531252['length']};}return null;})['then'](respondWithResult(_0x45cd0c,null))[_0xc756('0x13')](handleError(_0x45cd0c,null));};exports['show']=function(_0x552512,_0x41b3b6){return pm2[_0xc756('0x14')](_0x552512[_0xc756('0x15')]['id'])[_0xc756('0x10')](respondWithResult(_0x41b3b6,null))['then'](handleEntityNotFound(_0x41b3b6,null))[_0xc756('0x13')](handleError(_0x41b3b6,null));};exports['create']=function(_0x3d0fba,_0x45d745){if(_0x3d0fba[_0xc756('0x16')][_0xc756('0x9')]&&_0x3d0fba[_0xc756('0x16')][_0xc756('0x17')]){var _0xeb9563=path[_0xc756('0x18')](__dirname,_0xc756('0x19'),_0x3d0fba['body'][_0xc756('0x17')]);var _0x3d66e4=process[_0xc756('0x1a')]();process[_0xc756('0x1b')](path['dirname'](_0xeb9563));return execChildProcess()[_0xc756('0x10')](function(_0x589fc1){process['chdir'](_0x3d66e4);return pm2[_0xc756('0x1c')]({'name':_0x3d0fba[_0xc756('0x16')]['name'],'script':_0xeb9563});})[_0xc756('0x10')](function(_0x1546ff){pm2[_0xc756('0x1d')]();return _0x1546ff[0x0];})[_0xc756('0x10')](respondWithResult(_0x45d745,0xc9))['catch'](handleError(_0x45d745,null));}else{return _0x45d745[_0xc756('0x6')](0x1f4)['send']({'message':_0xc756('0x1e')});}};exports[_0xc756('0x1f')]=function(_0x4f4867,_0x55a760){if(_0x4f4867[_0xc756('0x16')]['id']){delete _0x4f4867['body']['id'];}var _0x580faa={'online':'restart','stopped':_0xc756('0x20')};if(_0x580faa[_0xc756('0x21')](_0x4f4867[_0xc756('0x16')][_0xc756('0x6')])){return pm2[_0x580faa[_0x4f4867['body'][_0xc756('0x6')]]](_0x4f4867[_0xc756('0x15')]['id'])[_0xc756('0x10')](respondWithResult(_0x55a760,0xc8))[_0xc756('0x13')](handleError(_0x55a760,null));}else{return _0x55a760['status'](0x1f4)[_0xc756('0xa')]({'message':'Unknown\x20status'});}};exports[_0xc756('0x22')]=function(_0x3192a9,_0x60d36e){if(_0x3192a9[_0xc756('0x16')]['id']){delete _0x3192a9[_0xc756('0x16')]['id'];}if(_0x3192a9[_0xc756('0x15')]['id']){return pm2[_0xc756('0x23')](_0x3192a9[_0xc756('0x15')]['id'])[_0xc756('0x10')](function(_0x417d13){pm2[_0xc756('0x1d')]();return _0x417d13[0x0];})[_0xc756('0x10')](respondWithResult(_0x60d36e,null))[_0xc756('0x13')](handleError(_0x60d36e,null));}else{return _0x60d36e['status'](0x1f4)[_0xc756('0xa')]({'message':'Unknown\x20id'});}};