47fe524187584c1ba16f6a94d92ee7c873741b7b
[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 _0x52aa=['push','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.','\x20to\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','path','lodash','pkginfo','version','compare-versions','child_process','exec','../../mysqldb','../../config/environment','../../config/pm2','../../config/logger','root','index','exports','query','latest','tags','2.0.0','status','json','fetch','master','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD','error','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','npm\x20install\x20--production','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','migrations','join','server','length','.js'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x52aa,0x113));var _0xa52a=function(_0x1d4dce,_0x30bc49){_0x1d4dce=_0x1d4dce-0x0;var _0x202a07=_0x52aa[_0x1d4dce];return _0x202a07;};'use strict';var Umzug=require('umzug');var path=require(_0xa52a('0x0'));var fs=require('fs');var _=require(_0xa52a('0x1'));var pkginfo=require(_0xa52a('0x2'))(module,_0xa52a('0x3'));var compareVersions=require(_0xa52a('0x4'));var exec=require(_0xa52a('0x5'))[_0xa52a('0x6')];var db=require(_0xa52a('0x7'))['db'];var config=require(_0xa52a('0x8'));var pm2=require(_0xa52a('0x9'));var logger=require(_0xa52a('0xa'))('update');var git=require('simple-git')(config[_0xa52a('0xb')]);exports[_0xa52a('0xc')]=function(_0x289bb0,_0xbb295a){var _0x19d5cf={'current':module[_0xa52a('0xd')][_0xa52a('0x3')],'phonebar':0x2};if(_0x289bb0[_0xa52a('0xe')]&&_0x289bb0[_0xa52a('0xe')][_0xa52a('0xf')]){return git['fetch']()[_0xa52a('0x10')](function(_0x547708,_0xf9948){_0x19d5cf[_0xa52a('0xf')]=(_0x547708?module[_0xa52a('0xd')][_0xa52a('0x3')]:_0xf9948[_0xa52a('0xf')])||_0xa52a('0x11');return _0xbb295a[_0xa52a('0x12')](0xc8)[_0xa52a('0x13')](_0x19d5cf);});}else{return _0xbb295a[_0xa52a('0x12')](0xc8)[_0xa52a('0x13')](_0x19d5cf);}};exports[_0xa52a('0x14')]=function(_0x2d8674,_0x381d76){return git['fetch'](['origin',_0xa52a('0x15')],function(_0x34e286){if(_0x34e286){logger['error'](_0x34e286);return _0x381d76[_0xa52a('0x12')](0x1f4)[_0xa52a('0x13')](_0x34e286);}logger[_0xa52a('0x16')](_0xa52a('0x17'));return _0x381d76[_0xa52a('0x12')](0xc8)[_0xa52a('0x13')]({'output':_0xa52a('0x18')});});};exports[_0xa52a('0x19')]=function(_0x42e32d,_0x314323){return git['reset']([_0xa52a('0x1a'),_0xa52a('0x1b')],function(_0x1738bf){if(_0x1738bf){logger[_0xa52a('0x1c')](_0x1738bf);return _0x314323[_0xa52a('0x12')](0x1f4)[_0xa52a('0x13')](_0x1738bf);}logger['info'](_0xa52a('0x1d'));return _0x314323[_0xa52a('0x12')](0xc8)[_0xa52a('0x13')]({'output':_0xa52a('0x1e')});});};exports['pull']=function(_0x340129,_0x2b62bc){exec(_0xa52a('0x1f'),function(_0x327f82,_0x13ef38,_0x4c8361){logger[_0xa52a('0x16')](_0x13ef38);logger['info'](_0x4c8361);if(_0x327f82){logger['error'](_0x327f82);return _0x2b62bc[_0xa52a('0x12')](0x1f4)[_0xa52a('0x13')](_0x327f82);}return _0x2b62bc['status'](0xc8)['json']({'output':_0x13ef38});});};exports[_0xa52a('0x20')]=function(_0x3dc996,_0x485383){return pm2[_0xa52a('0x20')](_0xa52a('0x21'))[_0xa52a('0x22')](function(_0x443c38){logger[_0xa52a('0x16')](_0xa52a('0x23'),_0x443c38);return _0x485383[_0xa52a('0x12')](0xc8)[_0xa52a('0x13')]({'output':_0xa52a('0x24')});})[_0xa52a('0x25')](function(_0x2fd577){logger[_0xa52a('0x1c')](_0x2fd577);return _0x485383[_0xa52a('0x12')](0x1f4)[_0xa52a('0x13')](_0x2fd577);});};exports[_0xa52a('0x26')]=function(_0x3bb4f7,_0x1a82c4){var _0x950f7e=fs['readdirSync'](path[_0xa52a('0x27')](config[_0xa52a('0xb')],_0xa52a('0x28'),'migrations'));var _0x49ab8f=[];for(var _0x30449c=0x0;_0x30449c<_0x950f7e[_0xa52a('0x29')];_0x30449c++){var _0x3c8c7d=_0x950f7e[_0x30449c]['replace'](_0xa52a('0x2a'),'');if(compareVersions(module[_0xa52a('0xd')]['version'],_0x3c8c7d)===-0x1){_0x49ab8f[_0xa52a('0x2b')](_0x3c8c7d);}}if(_0x49ab8f[_0xa52a('0x29')]){var _0xecbed7=_0x49ab8f[_0xa52a('0x2c')](compareVersions);var _0x15a2a4=new Umzug({'storage':_0xa52a('0x2d'),'storageOptions':{'model':db[_0xa52a('0x2e')],'modelName':_0xa52a('0x2e'),'columnName':'version'},'migrations':{'params':[db[_0xa52a('0x2d')]['getQueryInterface'](),db['sequelize'][_0xa52a('0x2f')],function(){throw new Error(_0xa52a('0x30'));}],'path':path[_0xa52a('0x27')](config[_0xa52a('0xb')],'server',_0xa52a('0x26')),'pattern':/\.js$/}});_0x15a2a4['up']({'migrations':_['map'](_0xecbed7,function(_0xdbb0b){return _0xdbb0b+'.js';})})[_0xa52a('0x22')](function(){return _0x1a82c4[_0xa52a('0x12')](0xc8)[_0xa52a('0x13')]({'output':'Database\x20migrated\x20successfully\x20from\x20version\x20'+module['exports'][_0xa52a('0x3')]+_0xa52a('0x31')+_[_0xa52a('0x32')](_0xecbed7),'migrations':_[_0xa52a('0x27')](_0xecbed7)});})[_0xa52a('0x25')](function(_0x437c29){if(_0x437c29 instanceof db[_0xa52a('0x2d')][_0xa52a('0x33')]){return _0x1a82c4['status'](0xc8)['json']({'output':'Database\x20already\x20up-to-date'});}else{return _0x1a82c4[_0xa52a('0x12')](0x1f4)[_0xa52a('0x13')](_0x437c29);}});}else{return _0x1a82c4['status'](0xc8)['json']({'output':_0xa52a('0x34')});}};