408730f89b30e436af9c3a8c5b31ef1650c0f283
[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 _0x5655=['git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','restart','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','error','migrations','readdirSync','length','replace','push','Migration','sequelize','constructor','join','server','map','.js','last','Database\x20already\x20up-to-date','umzug','path','lodash','pkginfo','version','compare-versions','../../mysqldb','../../config/pm2','../../config/logger','update','simple-git','root','exports','query','latest','fetch','2.0.0','status','json','origin','master','info','git\x20fetch','reset','--hard','FETCH_HEAD'];(function(_0x2c9732,_0x1a7473){var _0x25fb4e=function(_0x45f0c6){while(--_0x45f0c6){_0x2c9732['push'](_0x2c9732['shift']());}};_0x25fb4e(++_0x1a7473);}(_0x5655,0x15e));var _0x5565=function(_0x426fa2,_0xba7cff){_0x426fa2=_0x426fa2-0x0;var _0xef756a=_0x5655[_0x426fa2];return _0xef756a;};'use strict';var Umzug=require(_0x5565('0x0'));var path=require(_0x5565('0x1'));var fs=require('fs');var _=require(_0x5565('0x2'));var pkginfo=require(_0x5565('0x3'))(module,_0x5565('0x4'));var compareVersions=require(_0x5565('0x5'));var exec=require('child_process')['exec'];var db=require(_0x5565('0x6'))['db'];var config=require('../../config/environment');var pm2=require(_0x5565('0x7'));var logger=require(_0x5565('0x8'))(_0x5565('0x9'));var git=require(_0x5565('0xa'))(config[_0x5565('0xb')]);exports['index']=function(_0xc88d42,_0x2980c9){var _0x1a47c8={'current':module[_0x5565('0xc')][_0x5565('0x4')],'phonebar':0x2};if(_0xc88d42[_0x5565('0xd')]&&_0xc88d42['query'][_0x5565('0xe')]){return git[_0x5565('0xf')]()['tags'](function(_0x498370,_0x35254d){_0x1a47c8[_0x5565('0xe')]=(_0x498370?module['exports']['version']:_0x35254d[_0x5565('0xe')])||_0x5565('0x10');return _0x2980c9[_0x5565('0x11')](0xc8)[_0x5565('0x12')](_0x1a47c8);});}else{return _0x2980c9[_0x5565('0x11')](0xc8)[_0x5565('0x12')](_0x1a47c8);}};exports[_0x5565('0xf')]=function(_0x40584f,_0x553b26){return git[_0x5565('0xf')]([_0x5565('0x13'),_0x5565('0x14')],function(_0x199a3c){if(_0x199a3c){logger['error'](_0x199a3c);return _0x553b26[_0x5565('0x11')](0x1f4)[_0x5565('0x12')](_0x199a3c);}logger[_0x5565('0x15')](_0x5565('0x16'));return _0x553b26[_0x5565('0x11')](0xc8)['json']({'output':'git\x20fetch\x20origin\x20master'});});};exports[_0x5565('0x17')]=function(_0x2d3532,_0x4f56df){return git[_0x5565('0x17')]([_0x5565('0x18'),_0x5565('0x19')],function(_0x5712ad){if(_0x5712ad){logger['error'](_0x5712ad);return _0x4f56df['status'](0x1f4)[_0x5565('0x12')](_0x5712ad);}logger[_0x5565('0x15')](_0x5565('0x1a'));return _0x4f56df[_0x5565('0x11')](0xc8)[_0x5565('0x12')]({'output':_0x5565('0x1b')});});};exports['pull']=function(_0x4367d1,_0x11e42b){exec('npm\x20install\x20--production',function(_0x163d4c,_0x25f8c9,_0x2344b6){logger['info'](_0x25f8c9);logger[_0x5565('0x15')](_0x2344b6);if(_0x163d4c){logger['error'](_0x163d4c);return _0x11e42b[_0x5565('0x11')](0x1f4)[_0x5565('0x12')](_0x163d4c);}return _0x11e42b['status'](0xc8)['json']({'output':_0x25f8c9});});};exports[_0x5565('0x1c')]=function(_0x9f87b8,_0x4446ee){return pm2['restart']('motion2')[_0x5565('0x1d')](function(_0x2d3615){logger['info'](_0x5565('0x1e'),_0x2d3615);return _0x4446ee[_0x5565('0x11')](0xc8)['json']({'output':_0x5565('0x1f')});})['catch'](function(_0x3d0171){logger[_0x5565('0x20')](_0x3d0171);return _0x4446ee[_0x5565('0x11')](0x1f4)[_0x5565('0x12')](_0x3d0171);});};exports[_0x5565('0x21')]=function(_0x6a825a,_0x168f16){var _0x33bcb6=fs[_0x5565('0x22')](path['join'](config[_0x5565('0xb')],'server','migrations'));var _0xfc34af=[];for(var _0x5b032c=0x0;_0x5b032c<_0x33bcb6[_0x5565('0x23')];_0x5b032c++){var _0x392579=_0x33bcb6[_0x5b032c][_0x5565('0x24')]('.js','');if(compareVersions(module['exports'][_0x5565('0x4')],_0x392579)===-0x1){_0xfc34af[_0x5565('0x25')](_0x392579);}}if(_0xfc34af[_0x5565('0x23')]){var _0x4e8e97=_0xfc34af['sort'](compareVersions);var _0x2ac2b3=new Umzug({'storage':'sequelize','storageOptions':{'model':db[_0x5565('0x26')],'modelName':'Migration','columnName':_0x5565('0x4')},'migrations':{'params':[db['sequelize']['getQueryInterface'](),db[_0x5565('0x27')][_0x5565('0x28')],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[_0x5565('0x29')](config[_0x5565('0xb')],_0x5565('0x2a'),_0x5565('0x21')),'pattern':/\.js$/}});_0x2ac2b3['up']({'migrations':_[_0x5565('0x2b')](_0x4e8e97,function(_0x265e56){return _0x265e56+_0x5565('0x2c');})})[_0x5565('0x1d')](function(){return _0x168f16[_0x5565('0x11')](0xc8)[_0x5565('0x12')]({'output':'Database\x20migrated\x20successfully\x20from\x20version\x20'+module[_0x5565('0xc')][_0x5565('0x4')]+'\x20to\x20'+_[_0x5565('0x2d')](_0x4e8e97),'migrations':_[_0x5565('0x29')](_0x4e8e97)});})['catch'](function(_0x381e53){if(_0x381e53 instanceof db[_0x5565('0x27')]['UniqueConstraintError']){return _0x168f16['status'](0xc8)[_0x5565('0x12')]({'output':_0x5565('0x2e')});}else{return _0x168f16[_0x5565('0x11')](0x1f4)[_0x5565('0x12')](_0x381e53);}});}else{return _0x168f16[_0x5565('0x11')](0xc8)[_0x5565('0x12')]({'output':_0x5565('0x2e')});}};