a510adeb76c5d3035b0f0653b2e8348376c9e95e
[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 _0x073d=['pkginfo','compare-versions','exec','../../mysqldb','../../config/pm2','../../config/logger','update','simple-git','root','index','exports','version','query','latest','2.0.0','json','status','fetch','master','error','info','git\x20fetch\x20origin\x20master','reset','--hard','git\x20reset\x20--hard\x20FETCH_HEAD','pull','npm\x20install\x20--production','restart','motion2','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','migrations','readdirSync','join','server','.js','push','length','sort','sequelize','Migration','constructor','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','map','then','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','last','catch','UniqueConstraintError','Database\x20already\x20up-to-date','path','lodash'];(function(_0x548cbd,_0x2c6a9d){var _0x154ccf=function(_0x412dcd){while(--_0x412dcd){_0x548cbd['push'](_0x548cbd['shift']());}};_0x154ccf(++_0x2c6a9d);}(_0x073d,0xd2));var _0xd073=function(_0x178856,_0x41f045){_0x178856=_0x178856-0x0;var _0x3c7fe7=_0x073d[_0x178856];return _0x3c7fe7;};'use strict';var Umzug=require('umzug');var path=require(_0xd073('0x0'));var fs=require('fs');var _=require(_0xd073('0x1'));var pkginfo=require(_0xd073('0x2'))(module,'version');var compareVersions=require(_0xd073('0x3'));var exec=require('child_process')[_0xd073('0x4')];var db=require(_0xd073('0x5'))['db'];var config=require('../../config/environment');var pm2=require(_0xd073('0x6'));var logger=require(_0xd073('0x7'))(_0xd073('0x8'));var git=require(_0xd073('0x9'))(config[_0xd073('0xa')]);exports[_0xd073('0xb')]=function(_0x440c91,_0x409e4a){var _0x199033={'current':module[_0xd073('0xc')][_0xd073('0xd')],'phonebar':0x2};if(_0x440c91[_0xd073('0xe')]&&_0x440c91[_0xd073('0xe')][_0xd073('0xf')]){return git['fetch']()['tags'](function(_0xf39d94,_0x53ee1c){_0x199033[_0xd073('0xf')]=(_0xf39d94?module[_0xd073('0xc')][_0xd073('0xd')]:_0x53ee1c[_0xd073('0xf')])||_0xd073('0x10');return _0x409e4a['status'](0xc8)[_0xd073('0x11')](_0x199033);});}else{return _0x409e4a[_0xd073('0x12')](0xc8)[_0xd073('0x11')](_0x199033);}};exports[_0xd073('0x13')]=function(_0x589073,_0x36195c){return git[_0xd073('0x13')](['origin',_0xd073('0x14')],function(_0x3965a8){if(_0x3965a8){logger[_0xd073('0x15')](_0x3965a8);return _0x36195c[_0xd073('0x12')](0x1f4)['json'](_0x3965a8);}logger[_0xd073('0x16')]('git\x20fetch');return _0x36195c['status'](0xc8)[_0xd073('0x11')]({'output':_0xd073('0x17')});});};exports[_0xd073('0x18')]=function(_0x4b6ac8,_0x1e4585){return git[_0xd073('0x18')]([_0xd073('0x19'),'FETCH_HEAD'],function(_0x194db8){if(_0x194db8){logger[_0xd073('0x15')](_0x194db8);return _0x1e4585[_0xd073('0x12')](0x1f4)[_0xd073('0x11')](_0x194db8);}logger['info'](_0xd073('0x1a'));return _0x1e4585[_0xd073('0x12')](0xc8)[_0xd073('0x11')]({'output':'git\x20reset\x20--hard'});});};exports[_0xd073('0x1b')]=function(_0x2c244e,_0x5e5f8d){exec(_0xd073('0x1c'),function(_0x72b4aa,_0x1b6526,_0x55ce48){logger['info'](_0x1b6526);logger['info'](_0x55ce48);if(_0x72b4aa){logger['error'](_0x72b4aa);return _0x5e5f8d[_0xd073('0x12')](0x1f4)[_0xd073('0x11')](_0x72b4aa);}return _0x5e5f8d[_0xd073('0x12')](0xc8)[_0xd073('0x11')]({'output':_0x1b6526});});};exports[_0xd073('0x1d')]=function(_0x2cd242,_0x1512a5){return pm2[_0xd073('0x1d')](_0xd073('0x1e'))['then'](function(_0xda2c7d){logger['info'](_0xd073('0x1f'),_0xda2c7d);return _0x1512a5[_0xd073('0x12')](0xc8)[_0xd073('0x11')]({'output':_0xd073('0x20')});})['catch'](function(_0x672b39){logger['error'](_0x672b39);return _0x1512a5['status'](0x1f4)[_0xd073('0x11')](_0x672b39);});};exports[_0xd073('0x21')]=function(_0x5470ab,_0x317785){var _0x54c32f=fs[_0xd073('0x22')](path[_0xd073('0x23')](config[_0xd073('0xa')],_0xd073('0x24'),_0xd073('0x21')));var _0x27b8a0=[];for(var _0x314517=0x0;_0x314517<_0x54c32f['length'];_0x314517++){var _0x1ac1ea=_0x54c32f[_0x314517]['replace'](_0xd073('0x25'),'');if(compareVersions(module[_0xd073('0xc')][_0xd073('0xd')],_0x1ac1ea)===-0x1){_0x27b8a0[_0xd073('0x26')](_0x1ac1ea);}}if(_0x27b8a0[_0xd073('0x27')]){var _0x59f6e7=_0x27b8a0[_0xd073('0x28')](compareVersions);var _0x43ee70=new Umzug({'storage':_0xd073('0x29'),'storageOptions':{'model':db[_0xd073('0x2a')],'modelName':_0xd073('0x2a'),'columnName':'version'},'migrations':{'params':[db[_0xd073('0x29')]['getQueryInterface'](),db[_0xd073('0x29')][_0xd073('0x2b')],function(){throw new Error(_0xd073('0x2c'));}],'path':path['join'](config['root'],'server',_0xd073('0x21')),'pattern':/\.js$/}});_0x43ee70['up']({'migrations':_[_0xd073('0x2d')](_0x59f6e7,function(_0x143f07){return _0x143f07+_0xd073('0x25');})})[_0xd073('0x2e')](function(){return _0x317785[_0xd073('0x12')](0xc8)['json']({'output':_0xd073('0x2f')+module[_0xd073('0xc')]['version']+_0xd073('0x30')+_[_0xd073('0x31')](_0x59f6e7),'migrations':_[_0xd073('0x23')](_0x59f6e7)});})[_0xd073('0x32')](function(_0x39d497){if(_0x39d497 instanceof db['sequelize'][_0xd073('0x33')]){return _0x317785[_0xd073('0x12')](0xc8)[_0xd073('0x11')]({'output':'Database\x20already\x20up-to-date'});}else{return _0x317785[_0xd073('0x12')](0x1f4)[_0xd073('0x11')](_0x39d497);}});}else{return _0x317785[_0xd073('0x12')](0xc8)['json']({'output':_0xd073('0x34')});}};