3f32b995b9d9af5f062de6444a2789a2e5a0f0b9
[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 _0x26b2=['git\x20reset\x20--hard','npm\x20install\x20--production','restart','motion2','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','migrations','readdirSync','join','server','length','replace','exports','push','sort','sequelize','Migration','getQueryInterface','constructor','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','map','.js','then','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','version','compare-versions','child_process','exec','../../mysqldb','../../config/environment','../../config/pm2','../../config/logger','update','root','query','latest','fetch','tags','2.0.0','status','json','master','error','info','git\x20fetch\x20origin\x20master','reset','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD'];(function(_0x5317b5,_0x4dfd6e){var _0x3b7ce2=function(_0xc146d6){while(--_0xc146d6){_0x5317b5['push'](_0x5317b5['shift']());}};_0x3b7ce2(++_0x4dfd6e);}(_0x26b2,0xc5));var _0x226b=function(_0x54ef4e,_0xa8b267){_0x54ef4e=_0x54ef4e-0x0;var _0x488764=_0x26b2[_0x54ef4e];return _0x488764;};'use strict';var Umzug=require(_0x226b('0x0'));var path=require(_0x226b('0x1'));var fs=require('fs');var _=require(_0x226b('0x2'));var pkginfo=require('pkginfo')(module,_0x226b('0x3'));var compareVersions=require(_0x226b('0x4'));var exec=require(_0x226b('0x5'))[_0x226b('0x6')];var db=require(_0x226b('0x7'))['db'];var config=require(_0x226b('0x8'));var pm2=require(_0x226b('0x9'));var logger=require(_0x226b('0xa'))(_0x226b('0xb'));var git=require('simple-git')(config[_0x226b('0xc')]);exports['index']=function(_0x15b465,_0x28d0f8){var _0x2cd2db={'current':module['exports']['version'],'phonebar':0x2};if(_0x15b465[_0x226b('0xd')]&&_0x15b465[_0x226b('0xd')][_0x226b('0xe')]){return git[_0x226b('0xf')]()[_0x226b('0x10')](function(_0x346b25,_0x534a58){_0x2cd2db[_0x226b('0xe')]=(_0x346b25?module['exports'][_0x226b('0x3')]:_0x534a58[_0x226b('0xe')])||_0x226b('0x11');return _0x28d0f8[_0x226b('0x12')](0xc8)[_0x226b('0x13')](_0x2cd2db);});}else{return _0x28d0f8[_0x226b('0x12')](0xc8)['json'](_0x2cd2db);}};exports[_0x226b('0xf')]=function(_0x443a7f,_0x3a5fa6){return git[_0x226b('0xf')](['origin',_0x226b('0x14')],function(_0x197d8e){if(_0x197d8e){logger[_0x226b('0x15')](_0x197d8e);return _0x3a5fa6[_0x226b('0x12')](0x1f4)[_0x226b('0x13')](_0x197d8e);}logger[_0x226b('0x16')]('git\x20fetch');return _0x3a5fa6[_0x226b('0x12')](0xc8)[_0x226b('0x13')]({'output':_0x226b('0x17')});});};exports[_0x226b('0x18')]=function(_0x310741,_0x407c9c){return git[_0x226b('0x18')](['--hard',_0x226b('0x19')],function(_0x27f2d9){if(_0x27f2d9){logger[_0x226b('0x15')](_0x27f2d9);return _0x407c9c['status'](0x1f4)[_0x226b('0x13')](_0x27f2d9);}logger['info'](_0x226b('0x1a'));return _0x407c9c['status'](0xc8)[_0x226b('0x13')]({'output':_0x226b('0x1b')});});};exports['pull']=function(_0x985b6a,_0x327ff2){exec(_0x226b('0x1c'),function(_0x229e4d,_0x1cdba9,_0x14ab81){logger[_0x226b('0x16')](_0x1cdba9);logger[_0x226b('0x16')](_0x14ab81);if(_0x229e4d){logger[_0x226b('0x15')](_0x229e4d);return _0x327ff2[_0x226b('0x12')](0x1f4)[_0x226b('0x13')](_0x229e4d);}return _0x327ff2[_0x226b('0x12')](0xc8)[_0x226b('0x13')]({'output':_0x1cdba9});});};exports[_0x226b('0x1d')]=function(_0x286a38,_0x5555a9){return pm2[_0x226b('0x1d')](_0x226b('0x1e'))['then'](function(_0x1e2053){logger['info'](_0x226b('0x1f'),_0x1e2053);return _0x5555a9[_0x226b('0x12')](0xc8)[_0x226b('0x13')]({'output':_0x226b('0x20')});})[_0x226b('0x21')](function(_0x5b51e0){logger[_0x226b('0x15')](_0x5b51e0);return _0x5555a9[_0x226b('0x12')](0x1f4)[_0x226b('0x13')](_0x5b51e0);});};exports[_0x226b('0x22')]=function(_0x5859b5,_0x1bac2a){var _0x1291c6=fs[_0x226b('0x23')](path[_0x226b('0x24')](config['root'],_0x226b('0x25'),_0x226b('0x22')));var _0xfabd15=[];for(var _0x586c93=0x0;_0x586c93<_0x1291c6[_0x226b('0x26')];_0x586c93++){var _0x353e8e=_0x1291c6[_0x586c93][_0x226b('0x27')]('.js','');if(compareVersions(module[_0x226b('0x28')][_0x226b('0x3')],_0x353e8e)===-0x1){_0xfabd15[_0x226b('0x29')](_0x353e8e);}}if(_0xfabd15[_0x226b('0x26')]){var _0x2a96de=_0xfabd15[_0x226b('0x2a')](compareVersions);var _0x25f569=new Umzug({'storage':_0x226b('0x2b'),'storageOptions':{'model':db[_0x226b('0x2c')],'modelName':_0x226b('0x2c'),'columnName':_0x226b('0x3')},'migrations':{'params':[db[_0x226b('0x2b')][_0x226b('0x2d')](),db[_0x226b('0x2b')][_0x226b('0x2e')],function(){throw new Error(_0x226b('0x2f'));}],'path':path[_0x226b('0x24')](config[_0x226b('0xc')],'server',_0x226b('0x22')),'pattern':/\.js$/}});_0x25f569['up']({'migrations':_[_0x226b('0x30')](_0x2a96de,function(_0x58e54f){return _0x58e54f+_0x226b('0x31');})})[_0x226b('0x32')](function(){return _0x1bac2a[_0x226b('0x12')](0xc8)[_0x226b('0x13')]({'output':_0x226b('0x33')+module[_0x226b('0x28')]['version']+_0x226b('0x34')+_[_0x226b('0x35')](_0x2a96de),'migrations':_['join'](_0x2a96de)});})[_0x226b('0x21')](function(_0x4c7f20){if(_0x4c7f20 instanceof db[_0x226b('0x2b')][_0x226b('0x36')]){return _0x1bac2a[_0x226b('0x12')](0xc8)[_0x226b('0x13')]({'output':'Database\x20already\x20up-to-date'});}else{return _0x1bac2a[_0x226b('0x12')](0x1f4)['json'](_0x4c7f20);}});}else{return _0x1bac2a[_0x226b('0x12')](0xc8)[_0x226b('0x13')]({'output':_0x226b('0x37')});}};