9a9682619ea286dda2dfe81fe995a535cfa26d6b
[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 _0xad9f=['replace','.js','push','sort','sequelize','getQueryInterface','constructor','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','join','Database\x20migrated\x20successfully\x20from\x20version\x20','last','catch','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','version','compare-versions','child_process','exec','../../config/environment','../../config/logger','update','simple-git','root','index','exports','query','latest','fetch','tags','2.0.0','status','json','origin','master','error','info','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard','pull','npm\x20install\x20--production','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','migrations','readdirSync','server','length'];(function(_0x102ff9,_0x907658){var _0x24fa97=function(_0x3622ff){while(--_0x3622ff){_0x102ff9['push'](_0x102ff9['shift']());}};_0x24fa97(++_0x907658);}(_0xad9f,0x1be));var _0xfad9=function(_0x446cbb,_0x2003b6){_0x446cbb=_0x446cbb-0x0;var _0x5ee96f=_0xad9f[_0x446cbb];return _0x5ee96f;};'use strict';var Umzug=require(_0xfad9('0x0'));var path=require(_0xfad9('0x1'));var fs=require('fs');var _=require(_0xfad9('0x2'));var pkginfo=require('pkginfo')(module,_0xfad9('0x3'));var compareVersions=require(_0xfad9('0x4'));var exec=require(_0xfad9('0x5'))[_0xfad9('0x6')];var db=require('../../mysqldb')['db'];var config=require(_0xfad9('0x7'));var pm2=require('../../config/pm2');var logger=require(_0xfad9('0x8'))(_0xfad9('0x9'));var git=require(_0xfad9('0xa'))(config[_0xfad9('0xb')]);exports[_0xfad9('0xc')]=function(_0x19b6cc,_0x4d46a7){var _0x5580be={'current':module[_0xfad9('0xd')][_0xfad9('0x3')],'phonebar':0x2};if(_0x19b6cc[_0xfad9('0xe')]&&_0x19b6cc[_0xfad9('0xe')][_0xfad9('0xf')]){return git[_0xfad9('0x10')]()[_0xfad9('0x11')](function(_0xd07c02,_0x504242){_0x5580be[_0xfad9('0xf')]=(_0xd07c02?module[_0xfad9('0xd')][_0xfad9('0x3')]:_0x504242[_0xfad9('0xf')])||_0xfad9('0x12');return _0x4d46a7[_0xfad9('0x13')](0xc8)[_0xfad9('0x14')](_0x5580be);});}else{return _0x4d46a7[_0xfad9('0x13')](0xc8)[_0xfad9('0x14')](_0x5580be);}};exports[_0xfad9('0x10')]=function(_0x43e0bc,_0x491724){return git[_0xfad9('0x10')]([_0xfad9('0x15'),_0xfad9('0x16')],function(_0x2d4b3e){if(_0x2d4b3e){logger[_0xfad9('0x17')](_0x2d4b3e);return _0x491724[_0xfad9('0x13')](0x1f4)['json'](_0x2d4b3e);}logger[_0xfad9('0x18')]('git\x20fetch');return _0x491724[_0xfad9('0x13')](0xc8)[_0xfad9('0x14')]({'output':'git\x20fetch\x20origin\x20master'});});};exports['reset']=function(_0x41e7cc,_0x18e48a){return git[_0xfad9('0x19')]([_0xfad9('0x1a'),_0xfad9('0x1b')],function(_0x3f2ace){if(_0x3f2ace){logger[_0xfad9('0x17')](_0x3f2ace);return _0x18e48a[_0xfad9('0x13')](0x1f4)[_0xfad9('0x14')](_0x3f2ace);}logger[_0xfad9('0x18')]('git\x20reset\x20--hard\x20FETCH_HEAD');return _0x18e48a['status'](0xc8)['json']({'output':_0xfad9('0x1c')});});};exports[_0xfad9('0x1d')]=function(_0x377977,_0x3aac40){exec(_0xfad9('0x1e'),function(_0x25c53c,_0x5c157f,_0x46e091){logger[_0xfad9('0x18')](_0x5c157f);logger[_0xfad9('0x18')](_0x46e091);if(_0x25c53c){logger[_0xfad9('0x17')](_0x25c53c);return _0x3aac40[_0xfad9('0x13')](0x1f4)[_0xfad9('0x14')](_0x25c53c);}return _0x3aac40[_0xfad9('0x13')](0xc8)[_0xfad9('0x14')]({'output':_0x5c157f});});};exports[_0xfad9('0x1f')]=function(_0x58bd34,_0x179c9d){return pm2[_0xfad9('0x1f')](_0xfad9('0x20'))[_0xfad9('0x21')](function(_0x39f094){logger['info'](_0xfad9('0x22'),_0x39f094);return _0x179c9d['status'](0xc8)[_0xfad9('0x14')]({'output':_0xfad9('0x23')});})['catch'](function(_0x57e717){logger[_0xfad9('0x17')](_0x57e717);return _0x179c9d[_0xfad9('0x13')](0x1f4)['json'](_0x57e717);});};exports[_0xfad9('0x24')]=function(_0x5e61c9,_0x22b595){var _0x5a3ecb=fs[_0xfad9('0x25')](path['join'](config[_0xfad9('0xb')],_0xfad9('0x26'),'migrations'));var _0x1c72cd=[];for(var _0x44c125=0x0;_0x44c125<_0x5a3ecb[_0xfad9('0x27')];_0x44c125++){var _0x5dbb54=_0x5a3ecb[_0x44c125][_0xfad9('0x28')](_0xfad9('0x29'),'');if(compareVersions(module[_0xfad9('0xd')][_0xfad9('0x3')],_0x5dbb54)===-0x1){_0x1c72cd[_0xfad9('0x2a')](_0x5dbb54);}}if(_0x1c72cd['length']){var _0x3fbdbd=_0x1c72cd[_0xfad9('0x2b')](compareVersions);var _0x26ad65=new Umzug({'storage':_0xfad9('0x2c'),'storageOptions':{'model':db['Migration'],'modelName':'Migration','columnName':_0xfad9('0x3')},'migrations':{'params':[db['sequelize'][_0xfad9('0x2d')](),db[_0xfad9('0x2c')][_0xfad9('0x2e')],function(){throw new Error(_0xfad9('0x2f'));}],'path':path[_0xfad9('0x30')](config[_0xfad9('0xb')],_0xfad9('0x26'),_0xfad9('0x24')),'pattern':/\.js$/}});_0x26ad65['up']({'migrations':_['map'](_0x3fbdbd,function(_0x3ead13){return _0x3ead13+_0xfad9('0x29');})})[_0xfad9('0x21')](function(){return _0x22b595[_0xfad9('0x13')](0xc8)['json']({'output':_0xfad9('0x31')+module[_0xfad9('0xd')]['version']+'\x20to\x20'+_[_0xfad9('0x32')](_0x3fbdbd),'migrations':_['join'](_0x3fbdbd)});})[_0xfad9('0x33')](function(_0x5bb84e){if(_0x5bb84e instanceof db['sequelize'][_0xfad9('0x34')]){return _0x22b595['status'](0xc8)['json']({'output':_0xfad9('0x35')});}else{return _0x22b595[_0xfad9('0x13')](0x1f4)[_0xfad9('0x14')](_0x5bb84e);}});}else{return _0x22b595[_0xfad9('0x13')](0xc8)[_0xfad9('0x14')]({'output':_0xfad9('0x35')});}};