4335970e5ab4ffbd0da22f6216297ad4247b9518
[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 _0xe451=['../../config/environment','../../config/logger','update','simple-git','index','exports','version','query','latest','fetch','tags','status','json','master','error','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','FETCH_HEAD','git\x20reset\x20--hard','restart','motion2','then','pm2\x20restart\x20motion\x20%s','catch','migrations','readdirSync','root','length','.js','push','sort','sequelize','Migration','getQueryInterface','constructor','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','join','server','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','last','UniqueConstraintError','lodash','child_process','exec','../../mysqldb'];(function(_0x5575f4,_0x1a1716){var _0x231dde=function(_0x34e842){while(--_0x34e842){_0x5575f4['push'](_0x5575f4['shift']());}};_0x231dde(++_0x1a1716);}(_0xe451,0xec));var _0x1e45=function(_0x566bf1,_0x1942bd){_0x566bf1=_0x566bf1-0x0;var _0x644a07=_0xe451[_0x566bf1];return _0x644a07;};'use strict';var Umzug=require('umzug');var path=require('path');var fs=require('fs');var _=require(_0x1e45('0x0'));var pkginfo=require('pkginfo')(module,'version');var compareVersions=require('compare-versions');var exec=require(_0x1e45('0x1'))[_0x1e45('0x2')];var db=require(_0x1e45('0x3'))['db'];var config=require(_0x1e45('0x4'));var pm2=require('../../config/pm2');var logger=require(_0x1e45('0x5'))(_0x1e45('0x6'));var git=require(_0x1e45('0x7'))(config['root']);exports[_0x1e45('0x8')]=function(_0x31c118,_0x4dd77f){var _0x544710={'current':module[_0x1e45('0x9')][_0x1e45('0xa')],'phonebar':0x2};if(_0x31c118[_0x1e45('0xb')]&&_0x31c118['query'][_0x1e45('0xc')]){return git[_0x1e45('0xd')]()[_0x1e45('0xe')](function(_0x47dc82,_0x5d25e1){_0x544710[_0x1e45('0xc')]=(_0x47dc82?module[_0x1e45('0x9')][_0x1e45('0xa')]:_0x5d25e1[_0x1e45('0xc')])||'2.0.0';return _0x4dd77f[_0x1e45('0xf')](0xc8)[_0x1e45('0x10')](_0x544710);});}else{return _0x4dd77f[_0x1e45('0xf')](0xc8)['json'](_0x544710);}};exports[_0x1e45('0xd')]=function(_0x4657c2,_0x31215a){return git[_0x1e45('0xd')](['origin',_0x1e45('0x11')],function(_0x53d31b){if(_0x53d31b){logger[_0x1e45('0x12')](_0x53d31b);return _0x31215a[_0x1e45('0xf')](0x1f4)['json'](_0x53d31b);}logger[_0x1e45('0x13')](_0x1e45('0x14'));return _0x31215a[_0x1e45('0xf')](0xc8)[_0x1e45('0x10')]({'output':_0x1e45('0x15')});});};exports[_0x1e45('0x16')]=function(_0x43cbe4,_0x2a6f47){return git[_0x1e45('0x16')](['--hard',_0x1e45('0x17')],function(_0x50a16f){if(_0x50a16f){logger['error'](_0x50a16f);return _0x2a6f47[_0x1e45('0xf')](0x1f4)['json'](_0x50a16f);}logger['info']('git\x20reset\x20--hard\x20FETCH_HEAD');return _0x2a6f47['status'](0xc8)[_0x1e45('0x10')]({'output':_0x1e45('0x18')});});};exports['pull']=function(_0xc0deec,_0x47c19d){exec('npm\x20install\x20--production',function(_0x41cfae,_0x59aaa7,_0x4ffe97){logger[_0x1e45('0x13')](_0x59aaa7);logger[_0x1e45('0x13')](_0x4ffe97);if(_0x41cfae){logger['error'](_0x41cfae);return _0x47c19d[_0x1e45('0xf')](0x1f4)[_0x1e45('0x10')](_0x41cfae);}return _0x47c19d[_0x1e45('0xf')](0xc8)[_0x1e45('0x10')]({'output':_0x59aaa7});});};exports[_0x1e45('0x19')]=function(_0x3dc1c0,_0x39284e){return pm2['restart'](_0x1e45('0x1a'))[_0x1e45('0x1b')](function(_0xb2fa51){logger[_0x1e45('0x13')](_0x1e45('0x1c'),_0xb2fa51);return _0x39284e[_0x1e45('0xf')](0xc8)[_0x1e45('0x10')]({'output':'Your\x20system\x20has\x20been\x20restart\x20successfully'});})[_0x1e45('0x1d')](function(_0x3a9286){logger[_0x1e45('0x12')](_0x3a9286);return _0x39284e[_0x1e45('0xf')](0x1f4)['json'](_0x3a9286);});};exports[_0x1e45('0x1e')]=function(_0x34046e,_0x3dd6c3){var _0x5229e7=fs[_0x1e45('0x1f')](path['join'](config[_0x1e45('0x20')],'server','migrations'));var _0x34d75e=[];for(var _0x3f33bf=0x0;_0x3f33bf<_0x5229e7[_0x1e45('0x21')];_0x3f33bf++){var _0x3e6836=_0x5229e7[_0x3f33bf]['replace'](_0x1e45('0x22'),'');if(compareVersions(module['exports'][_0x1e45('0xa')],_0x3e6836)===-0x1){_0x34d75e[_0x1e45('0x23')](_0x3e6836);}}if(_0x34d75e[_0x1e45('0x21')]){var _0x52a77e=_0x34d75e[_0x1e45('0x24')](compareVersions);var _0x435fc2=new Umzug({'storage':_0x1e45('0x25'),'storageOptions':{'model':db['Migration'],'modelName':_0x1e45('0x26'),'columnName':_0x1e45('0xa')},'migrations':{'params':[db[_0x1e45('0x25')][_0x1e45('0x27')](),db['sequelize'][_0x1e45('0x28')],function(){throw new Error(_0x1e45('0x29'));}],'path':path[_0x1e45('0x2a')](config[_0x1e45('0x20')],_0x1e45('0x2b'),'migrations'),'pattern':/\.js$/}});_0x435fc2['up']({'migrations':_['map'](_0x52a77e,function(_0x542443){return _0x542443+'.js';})})[_0x1e45('0x1b')](function(){return _0x3dd6c3['status'](0xc8)[_0x1e45('0x10')]({'output':_0x1e45('0x2c')+module['exports']['version']+_0x1e45('0x2d')+_[_0x1e45('0x2e')](_0x52a77e),'migrations':_[_0x1e45('0x2a')](_0x52a77e)});})[_0x1e45('0x1d')](function(_0x5947b5){if(_0x5947b5 instanceof db[_0x1e45('0x25')][_0x1e45('0x2f')]){return _0x3dd6c3[_0x1e45('0xf')](0xc8)[_0x1e45('0x10')]({'output':'Database\x20already\x20up-to-date'});}else{return _0x3dd6c3[_0x1e45('0xf')](0x1f4)[_0x1e45('0x10')](_0x5947b5);}});}else{return _0x3dd6c3[_0x1e45('0xf')](0xc8)['json']({'output':'Database\x20already\x20up-to-date'});}};