1ad8869cb49d41862bb438d716d364702f4d3780
[motion2.git] / server / api / version / version.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 _0x3944=['master','error','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','npm\x20install\x20--production','restart','Your\x20system\x20has\x20been\x20restart\x20successfully','migrations','readdirSync','join','length','replace','.js','push','sort','sequelize','Migration','getQueryInterface','server','then','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','last','catch','UniqueConstraintError','Database\x20already\x20up-to-date','path','lodash','pkginfo','version','child_process','exec','../../mysqldb','../../config/pm2','update','simple-git','root','index','exports','query','latest','fetch','status','json','origin'];(function(_0x1a850c,_0x4ac22c){var _0x5de86e=function(_0x3730f7){while(--_0x3730f7){_0x1a850c['push'](_0x1a850c['shift']());}};_0x5de86e(++_0x4ac22c);}(_0x3944,0x1b8));var _0x4394=function(_0x17a135,_0x381f0c){_0x17a135=_0x17a135-0x0;var _0x5843b5=_0x3944[_0x17a135];return _0x5843b5;};'use strict';var Umzug=require('umzug');var path=require(_0x4394('0x0'));var fs=require('fs');var _=require(_0x4394('0x1'));var pkginfo=require(_0x4394('0x2'))(module,_0x4394('0x3'));var compareVersions=require('compare-versions');var exec=require(_0x4394('0x4'))[_0x4394('0x5')];var db=require(_0x4394('0x6'))['db'];var config=require('../../config/environment');var pm2=require(_0x4394('0x7'));var logger=require('../../config/logger')(_0x4394('0x8'));var git=require(_0x4394('0x9'))(config[_0x4394('0xa')]);exports[_0x4394('0xb')]=function(_0x522baa,_0x32a796){var _0x363206={'current':module[_0x4394('0xc')][_0x4394('0x3')],'phonebar':0x2};if(_0x522baa[_0x4394('0xd')]&&_0x522baa[_0x4394('0xd')][_0x4394('0xe')]){return git[_0x4394('0xf')]()['tags'](function(_0x611367,_0x44fba8){_0x363206['latest']=(_0x611367?module[_0x4394('0xc')][_0x4394('0x3')]:_0x44fba8['latest'])||'2.0.0';return _0x32a796[_0x4394('0x10')](0xc8)[_0x4394('0x11')](_0x363206);});}else{return _0x32a796[_0x4394('0x10')](0xc8)[_0x4394('0x11')](_0x363206);}};exports[_0x4394('0xf')]=function(_0x23d2bd,_0x4ce761){return git[_0x4394('0xf')]([_0x4394('0x12'),_0x4394('0x13')],function(_0x2fbc67){if(_0x2fbc67){logger[_0x4394('0x14')](_0x2fbc67);return _0x4ce761[_0x4394('0x10')](0x1f4)[_0x4394('0x11')](_0x2fbc67);}logger[_0x4394('0x15')](_0x4394('0x16'));return _0x4ce761[_0x4394('0x10')](0xc8)[_0x4394('0x11')]({'output':_0x4394('0x17')});});};exports['reset']=function(_0x44f231,_0x127190){return git[_0x4394('0x18')]([_0x4394('0x19'),'FETCH_HEAD'],function(_0x34fd37){if(_0x34fd37){logger[_0x4394('0x14')](_0x34fd37);return _0x127190[_0x4394('0x10')](0x1f4)[_0x4394('0x11')](_0x34fd37);}logger['info'](_0x4394('0x1a'));return _0x127190[_0x4394('0x10')](0xc8)[_0x4394('0x11')]({'output':_0x4394('0x1b')});});};exports[_0x4394('0x1c')]=function(_0x45ccf3,_0x52102f){exec(_0x4394('0x1d'),function(_0x116c0d,_0x5e7b85,_0x19419e){logger[_0x4394('0x15')](_0x5e7b85);logger[_0x4394('0x15')](_0x19419e);if(_0x116c0d){logger['error'](_0x116c0d);return _0x52102f['status'](0x1f4)[_0x4394('0x11')](_0x116c0d);}return _0x52102f[_0x4394('0x10')](0xc8)[_0x4394('0x11')]({'output':_0x5e7b85});});};exports['restart']=function(_0x20fa7b,_0xffaa2b){return pm2[_0x4394('0x1e')]('motion2')['then'](function(_0x5905c6){logger['info']('pm2\x20restart\x20motion\x20%s',_0x5905c6);return _0xffaa2b[_0x4394('0x10')](0xc8)[_0x4394('0x11')]({'output':_0x4394('0x1f')});})['catch'](function(_0x5168b7){logger[_0x4394('0x14')](_0x5168b7);return _0xffaa2b[_0x4394('0x10')](0x1f4)[_0x4394('0x11')](_0x5168b7);});};exports[_0x4394('0x20')]=function(_0xb34f09,_0x397631){var _0x3fa2eb=fs[_0x4394('0x21')](path[_0x4394('0x22')](config[_0x4394('0xa')],'server',_0x4394('0x20')));var _0x527e0e=[];for(var _0x117425=0x0;_0x117425<_0x3fa2eb[_0x4394('0x23')];_0x117425++){var _0x4e2aa0=_0x3fa2eb[_0x117425][_0x4394('0x24')](_0x4394('0x25'),'');if(compareVersions(module[_0x4394('0xc')][_0x4394('0x3')],_0x4e2aa0)===-0x1){_0x527e0e[_0x4394('0x26')](_0x4e2aa0);}}if(_0x527e0e[_0x4394('0x23')]){var _0x2887c6=_0x527e0e[_0x4394('0x27')](compareVersions);var _0x56bb69=new Umzug({'storage':_0x4394('0x28'),'storageOptions':{'model':db[_0x4394('0x29')],'modelName':_0x4394('0x29'),'columnName':'version'},'migrations':{'params':[db['sequelize'][_0x4394('0x2a')](),db['sequelize']['constructor'],function(){throw new Error('Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.');}],'path':path[_0x4394('0x22')](config['root'],_0x4394('0x2b'),'migrations'),'pattern':/\.js$/}});_0x56bb69['up']({'migrations':_['map'](_0x2887c6,function(_0x3687da){return _0x3687da+_0x4394('0x25');})})[_0x4394('0x2c')](function(){return _0x397631[_0x4394('0x10')](0xc8)[_0x4394('0x11')]({'output':_0x4394('0x2d')+module[_0x4394('0xc')][_0x4394('0x3')]+_0x4394('0x2e')+_[_0x4394('0x2f')](_0x2887c6),'migrations':_[_0x4394('0x22')](_0x2887c6)});})[_0x4394('0x30')](function(_0x4fa147){if(_0x4fa147 instanceof db[_0x4394('0x28')][_0x4394('0x31')]){return _0x397631[_0x4394('0x10')](0xc8)['json']({'output':_0x4394('0x32')});}else{return _0x397631[_0x4394('0x10')](0x1f4)[_0x4394('0x11')](_0x4fa147);}});}else{return _0x397631['status'](0xc8)[_0x4394('0x11')]({'output':_0x4394('0x32')});}};