5bee0770cc06fbc9b884930d1787390fb10e1250
[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 _0x7f5f=['json','master','error','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','npm\x20install\x20--production','restart','motion2','then','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','migrations','readdirSync','length','replace','.js','push','sort','sequelize','Migration','getQueryInterface','constructor','join','root','server','map','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','version','compare-versions','exec','../../mysqldb','../../config/environment','../../config/pm2','../../config/logger','update','simple-git','index','exports','query','latest','fetch','2.0.0','status'];(function(_0x5a25f6,_0x3db5cb){var _0x5a524d=function(_0x11f0fd){while(--_0x11f0fd){_0x5a25f6['push'](_0x5a25f6['shift']());}};_0x5a524d(++_0x3db5cb);}(_0x7f5f,0x1b5));var _0xf7f5=function(_0x470d17,_0x32e508){_0x470d17=_0x470d17-0x0;var _0xd6558d=_0x7f5f[_0x470d17];return _0xd6558d;};'use strict';var Umzug=require(_0xf7f5('0x0'));var path=require(_0xf7f5('0x1'));var fs=require('fs');var _=require(_0xf7f5('0x2'));var pkginfo=require('pkginfo')(module,_0xf7f5('0x3'));var compareVersions=require(_0xf7f5('0x4'));var exec=require('child_process')[_0xf7f5('0x5')];var db=require(_0xf7f5('0x6'))['db'];var config=require(_0xf7f5('0x7'));var pm2=require(_0xf7f5('0x8'));var logger=require(_0xf7f5('0x9'))(_0xf7f5('0xa'));var git=require(_0xf7f5('0xb'))(config['root']);exports[_0xf7f5('0xc')]=function(_0x318fa2,_0x1708c0){var _0xc164={'current':module[_0xf7f5('0xd')][_0xf7f5('0x3')],'phonebar':0x2};if(_0x318fa2[_0xf7f5('0xe')]&&_0x318fa2[_0xf7f5('0xe')][_0xf7f5('0xf')]){return git[_0xf7f5('0x10')]()['tags'](function(_0x872153,_0x42d84c){_0xc164[_0xf7f5('0xf')]=(_0x872153?module['exports'][_0xf7f5('0x3')]:_0x42d84c['latest'])||_0xf7f5('0x11');return _0x1708c0[_0xf7f5('0x12')](0xc8)[_0xf7f5('0x13')](_0xc164);});}else{return _0x1708c0[_0xf7f5('0x12')](0xc8)[_0xf7f5('0x13')](_0xc164);}};exports['fetch']=function(_0x1ba5a1,_0x2f17de){return git[_0xf7f5('0x10')](['origin',_0xf7f5('0x14')],function(_0x1a3ea9){if(_0x1a3ea9){logger[_0xf7f5('0x15')](_0x1a3ea9);return _0x2f17de['status'](0x1f4)[_0xf7f5('0x13')](_0x1a3ea9);}logger[_0xf7f5('0x16')](_0xf7f5('0x17'));return _0x2f17de[_0xf7f5('0x12')](0xc8)[_0xf7f5('0x13')]({'output':_0xf7f5('0x18')});});};exports[_0xf7f5('0x19')]=function(_0x346296,_0x2ba6fe){return git[_0xf7f5('0x19')]([_0xf7f5('0x1a'),_0xf7f5('0x1b')],function(_0x12deed){if(_0x12deed){logger['error'](_0x12deed);return _0x2ba6fe[_0xf7f5('0x12')](0x1f4)[_0xf7f5('0x13')](_0x12deed);}logger[_0xf7f5('0x16')](_0xf7f5('0x1c'));return _0x2ba6fe['status'](0xc8)['json']({'output':_0xf7f5('0x1d')});});};exports[_0xf7f5('0x1e')]=function(_0x293d7b,_0x14b033){exec(_0xf7f5('0x1f'),function(_0xe49dc3,_0x1b26bb,_0xe04e9d){logger[_0xf7f5('0x16')](_0x1b26bb);logger['info'](_0xe04e9d);if(_0xe49dc3){logger[_0xf7f5('0x15')](_0xe49dc3);return _0x14b033['status'](0x1f4)[_0xf7f5('0x13')](_0xe49dc3);}return _0x14b033[_0xf7f5('0x12')](0xc8)[_0xf7f5('0x13')]({'output':_0x1b26bb});});};exports[_0xf7f5('0x20')]=function(_0x36f9fd,_0x3b2560){return pm2[_0xf7f5('0x20')](_0xf7f5('0x21'))[_0xf7f5('0x22')](function(_0x5db63e){logger['info']('pm2\x20restart\x20motion\x20%s',_0x5db63e);return _0x3b2560[_0xf7f5('0x12')](0xc8)[_0xf7f5('0x13')]({'output':_0xf7f5('0x23')});})[_0xf7f5('0x24')](function(_0x492c31){logger['error'](_0x492c31);return _0x3b2560[_0xf7f5('0x12')](0x1f4)['json'](_0x492c31);});};exports[_0xf7f5('0x25')]=function(_0xfc9715,_0xfd5c2a){var _0x2c6b77=fs[_0xf7f5('0x26')](path['join'](config['root'],'server',_0xf7f5('0x25')));var _0x39e73d=[];for(var _0x5e7993=0x0;_0x5e7993<_0x2c6b77[_0xf7f5('0x27')];_0x5e7993++){var _0x132916=_0x2c6b77[_0x5e7993][_0xf7f5('0x28')](_0xf7f5('0x29'),'');if(compareVersions(module[_0xf7f5('0xd')]['version'],_0x132916)===-0x1){_0x39e73d[_0xf7f5('0x2a')](_0x132916);}}if(_0x39e73d[_0xf7f5('0x27')]){var _0x4218c4=_0x39e73d[_0xf7f5('0x2b')](compareVersions);var _0x523546=new Umzug({'storage':_0xf7f5('0x2c'),'storageOptions':{'model':db[_0xf7f5('0x2d')],'modelName':'Migration','columnName':_0xf7f5('0x3')},'migrations':{'params':[db[_0xf7f5('0x2c')][_0xf7f5('0x2e')](),db['sequelize'][_0xf7f5('0x2f')],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[_0xf7f5('0x30')](config[_0xf7f5('0x31')],_0xf7f5('0x32'),_0xf7f5('0x25')),'pattern':/\.js$/}});_0x523546['up']({'migrations':_[_0xf7f5('0x33')](_0x4218c4,function(_0x146350){return _0x146350+'.js';})})[_0xf7f5('0x22')](function(){return _0xfd5c2a[_0xf7f5('0x12')](0xc8)['json']({'output':_0xf7f5('0x34')+module[_0xf7f5('0xd')]['version']+_0xf7f5('0x35')+_[_0xf7f5('0x36')](_0x4218c4),'migrations':_[_0xf7f5('0x30')](_0x4218c4)});})['catch'](function(_0x41597e){if(_0x41597e instanceof db[_0xf7f5('0x2c')][_0xf7f5('0x37')]){return _0xfd5c2a[_0xf7f5('0x12')](0xc8)['json']({'output':_0xf7f5('0x38')});}else{return _0xfd5c2a[_0xf7f5('0x12')](0x1f4)['json'](_0x41597e);}});}else{return _0xfd5c2a[_0xf7f5('0x12')](0xc8)['json']({'output':_0xf7f5('0x38')});}};