Built motion from commit (unavailable).|2.5.13
[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 _0x50e5=['root','exports','query','latest','2.0.0','json','fetch','origin','master','error','status','FETCH_HEAD','info','git\x20reset\x20--hard\x20FETCH_HEAD','pull','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','migrations','readdirSync','join','server','length','.js','push','sort','sequelize','Migration','getQueryInterface','constructor','map','Database\x20migrated\x20successfully\x20from\x20version\x20','catch','Database\x20already\x20up-to-date','umzug','path','pkginfo','version','compare-versions','child_process','exec','../../mysqldb','../../config/environment','../../config/pm2','../../config/logger','update','simple-git'];(function(_0xbd8920,_0x346f79){var _0x5c1643=function(_0x2444ad){while(--_0x2444ad){_0xbd8920['push'](_0xbd8920['shift']());}};_0x5c1643(++_0x346f79);}(_0x50e5,0xb7));var _0x550e=function(_0x34d388,_0x4f9520){_0x34d388=_0x34d388-0x0;var _0x2f128f=_0x50e5[_0x34d388];return _0x2f128f;};'use strict';var Umzug=require(_0x550e('0x0'));var path=require(_0x550e('0x1'));var fs=require('fs');var _=require('lodash');var pkginfo=require(_0x550e('0x2'))(module,_0x550e('0x3'));var compareVersions=require(_0x550e('0x4'));var exec=require(_0x550e('0x5'))[_0x550e('0x6')];var db=require(_0x550e('0x7'))['db'];var config=require(_0x550e('0x8'));var pm2=require(_0x550e('0x9'));var logger=require(_0x550e('0xa'))(_0x550e('0xb'));var git=require(_0x550e('0xc'))(config[_0x550e('0xd')]);exports['index']=function(_0x27ae27,_0x20707a){var _0x51318e={'current':module[_0x550e('0xe')][_0x550e('0x3')],'phonebar':0x2};if(_0x27ae27[_0x550e('0xf')]&&_0x27ae27['query'][_0x550e('0x10')]){return git['fetch']()['tags'](function(_0x116691,_0x144514){_0x51318e['latest']=(_0x116691?module[_0x550e('0xe')][_0x550e('0x3')]:_0x144514[_0x550e('0x10')])||_0x550e('0x11');return _0x20707a['status'](0xc8)[_0x550e('0x12')](_0x51318e);});}else{return _0x20707a['status'](0xc8)[_0x550e('0x12')](_0x51318e);}};exports['fetch']=function(_0x3a9028,_0x4c6070){return git[_0x550e('0x13')]([_0x550e('0x14'),_0x550e('0x15')],function(_0x4f79ed){if(_0x4f79ed){logger[_0x550e('0x16')](_0x4f79ed);return _0x4c6070['status'](0x1f4)[_0x550e('0x12')](_0x4f79ed);}logger['info']('git\x20fetch');return _0x4c6070[_0x550e('0x17')](0xc8)[_0x550e('0x12')]({'output':'git\x20fetch\x20origin\x20master'});});};exports['reset']=function(_0x4e450c,_0x22c264){return git['reset'](['--hard',_0x550e('0x18')],function(_0x3607ad){if(_0x3607ad){logger[_0x550e('0x16')](_0x3607ad);return _0x22c264[_0x550e('0x17')](0x1f4)[_0x550e('0x12')](_0x3607ad);}logger[_0x550e('0x19')](_0x550e('0x1a'));return _0x22c264[_0x550e('0x17')](0xc8)[_0x550e('0x12')]({'output':'git\x20reset\x20--hard'});});};exports[_0x550e('0x1b')]=function(_0x106c68,_0x5bdfb2){exec('npm\x20install\x20--production',function(_0x3e9822,_0x2663c7,_0x5769bb){logger[_0x550e('0x19')](_0x2663c7);logger[_0x550e('0x19')](_0x5769bb);if(_0x3e9822){logger[_0x550e('0x16')](_0x3e9822);return _0x5bdfb2[_0x550e('0x17')](0x1f4)[_0x550e('0x12')](_0x3e9822);}return _0x5bdfb2[_0x550e('0x17')](0xc8)['json']({'output':_0x2663c7});});};exports[_0x550e('0x1c')]=function(_0x205e3a,_0x45d972){return pm2[_0x550e('0x1c')](_0x550e('0x1d'))[_0x550e('0x1e')](function(_0x35dfce){logger[_0x550e('0x19')](_0x550e('0x1f'),_0x35dfce);return _0x45d972[_0x550e('0x17')](0xc8)[_0x550e('0x12')]({'output':_0x550e('0x20')});})['catch'](function(_0x291976){logger[_0x550e('0x16')](_0x291976);return _0x45d972['status'](0x1f4)[_0x550e('0x12')](_0x291976);});};exports[_0x550e('0x21')]=function(_0x7ae242,_0x33bc32){var _0x1a4caa=fs[_0x550e('0x22')](path[_0x550e('0x23')](config[_0x550e('0xd')],_0x550e('0x24'),_0x550e('0x21')));var _0x25c40a=[];for(var _0xec21fd=0x0;_0xec21fd<_0x1a4caa[_0x550e('0x25')];_0xec21fd++){var _0x3ba3ef=_0x1a4caa[_0xec21fd]['replace'](_0x550e('0x26'),'');if(compareVersions(module[_0x550e('0xe')]['version'],_0x3ba3ef)===-0x1){_0x25c40a[_0x550e('0x27')](_0x3ba3ef);}}if(_0x25c40a[_0x550e('0x25')]){var _0x48b50e=_0x25c40a[_0x550e('0x28')](compareVersions);var _0x293504=new Umzug({'storage':_0x550e('0x29'),'storageOptions':{'model':db[_0x550e('0x2a')],'modelName':_0x550e('0x2a'),'columnName':_0x550e('0x3')},'migrations':{'params':[db[_0x550e('0x29')][_0x550e('0x2b')](),db['sequelize'][_0x550e('0x2c')],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[_0x550e('0x23')](config[_0x550e('0xd')],'server',_0x550e('0x21')),'pattern':/\.js$/}});_0x293504['up']({'migrations':_[_0x550e('0x2d')](_0x48b50e,function(_0x5a782a){return _0x5a782a+'.js';})})['then'](function(){return _0x33bc32['status'](0xc8)[_0x550e('0x12')]({'output':_0x550e('0x2e')+module[_0x550e('0xe')]['version']+'\x20to\x20'+_['last'](_0x48b50e),'migrations':_[_0x550e('0x23')](_0x48b50e)});})[_0x550e('0x2f')](function(_0x4f44e3){if(_0x4f44e3 instanceof db['sequelize']['UniqueConstraintError']){return _0x33bc32[_0x550e('0x17')](0xc8)[_0x550e('0x12')]({'output':_0x550e('0x30')});}else{return _0x33bc32['status'](0x1f4)['json'](_0x4f44e3);}});}else{return _0x33bc32[_0x550e('0x17')](0xc8)[_0x550e('0x12')]({'output':_0x550e('0x30')});}};