5b2fe2ac0a0fc5daba876aadc07117d1edda1173
[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 _0x4f99=['json','origin','error','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','pull','npm\x20install\x20--production','motion2','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','migrations','readdirSync','server','length','replace','.js','push','sort','sequelize','Migration','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','join','map','then','\x20to\x20','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','pkginfo','compare-versions','exec','../../mysqldb','../../config/environment','update','simple-git','root','index','query','latest','fetch','tags','exports','version','status'];(function(_0x13d07a,_0x41efc3){var _0x5ee0ee=function(_0x4ca94a){while(--_0x4ca94a){_0x13d07a['push'](_0x13d07a['shift']());}};_0x5ee0ee(++_0x41efc3);}(_0x4f99,0x152));var _0x94f9=function(_0x4c8800,_0x347854){_0x4c8800=_0x4c8800-0x0;var _0x5d085d=_0x4f99[_0x4c8800];return _0x5d085d;};'use strict';var Umzug=require(_0x94f9('0x0'));var path=require(_0x94f9('0x1'));var fs=require('fs');var _=require(_0x94f9('0x2'));var pkginfo=require(_0x94f9('0x3'))(module,'version');var compareVersions=require(_0x94f9('0x4'));var exec=require('child_process')[_0x94f9('0x5')];var db=require(_0x94f9('0x6'))['db'];var config=require(_0x94f9('0x7'));var pm2=require('../../config/pm2');var logger=require('../../config/logger')(_0x94f9('0x8'));var git=require(_0x94f9('0x9'))(config[_0x94f9('0xa')]);exports[_0x94f9('0xb')]=function(_0x3b3d75,_0xa3c8b3){var _0x524931={'current':module['exports']['version'],'phonebar':0x2};if(_0x3b3d75[_0x94f9('0xc')]&&_0x3b3d75[_0x94f9('0xc')][_0x94f9('0xd')]){return git[_0x94f9('0xe')]()[_0x94f9('0xf')](function(_0x51ba2e,_0x4a0b43){_0x524931[_0x94f9('0xd')]=(_0x51ba2e?module[_0x94f9('0x10')][_0x94f9('0x11')]:_0x4a0b43[_0x94f9('0xd')])||'2.0.0';return _0xa3c8b3[_0x94f9('0x12')](0xc8)[_0x94f9('0x13')](_0x524931);});}else{return _0xa3c8b3[_0x94f9('0x12')](0xc8)[_0x94f9('0x13')](_0x524931);}};exports[_0x94f9('0xe')]=function(_0x3c6ccc,_0xa3f89a){return git['fetch']([_0x94f9('0x14'),'master'],function(_0x5b49de){if(_0x5b49de){logger[_0x94f9('0x15')](_0x5b49de);return _0xa3f89a['status'](0x1f4)[_0x94f9('0x13')](_0x5b49de);}logger[_0x94f9('0x16')](_0x94f9('0x17'));return _0xa3f89a[_0x94f9('0x12')](0xc8)['json']({'output':_0x94f9('0x18')});});};exports['reset']=function(_0x4d7373,_0xfdb648){return git[_0x94f9('0x19')](['--hard',_0x94f9('0x1a')],function(_0x7ae0b2){if(_0x7ae0b2){logger[_0x94f9('0x15')](_0x7ae0b2);return _0xfdb648[_0x94f9('0x12')](0x1f4)[_0x94f9('0x13')](_0x7ae0b2);}logger[_0x94f9('0x16')](_0x94f9('0x1b'));return _0xfdb648[_0x94f9('0x12')](0xc8)[_0x94f9('0x13')]({'output':'git\x20reset\x20--hard'});});};exports[_0x94f9('0x1c')]=function(_0xc17214,_0x1a2127){exec(_0x94f9('0x1d'),function(_0x229814,_0x56001f,_0x5240d7){logger['info'](_0x56001f);logger[_0x94f9('0x16')](_0x5240d7);if(_0x229814){logger['error'](_0x229814);return _0x1a2127['status'](0x1f4)[_0x94f9('0x13')](_0x229814);}return _0x1a2127[_0x94f9('0x12')](0xc8)[_0x94f9('0x13')]({'output':_0x56001f});});};exports['restart']=function(_0x536d51,_0x184833){return pm2['restart'](_0x94f9('0x1e'))['then'](function(_0x1c3a37){logger['info'](_0x94f9('0x1f'),_0x1c3a37);return _0x184833[_0x94f9('0x12')](0xc8)[_0x94f9('0x13')]({'output':_0x94f9('0x20')});})[_0x94f9('0x21')](function(_0x3f7aab){logger['error'](_0x3f7aab);return _0x184833[_0x94f9('0x12')](0x1f4)[_0x94f9('0x13')](_0x3f7aab);});};exports[_0x94f9('0x22')]=function(_0x5cdf89,_0x310173){var _0x2320f9=fs[_0x94f9('0x23')](path['join'](config[_0x94f9('0xa')],_0x94f9('0x24'),_0x94f9('0x22')));var _0x51875a=[];for(var _0x18418f=0x0;_0x18418f<_0x2320f9[_0x94f9('0x25')];_0x18418f++){var _0x9dcabc=_0x2320f9[_0x18418f][_0x94f9('0x26')](_0x94f9('0x27'),'');if(compareVersions(module[_0x94f9('0x10')][_0x94f9('0x11')],_0x9dcabc)===-0x1){_0x51875a[_0x94f9('0x28')](_0x9dcabc);}}if(_0x51875a[_0x94f9('0x25')]){var _0x2d4b8f=_0x51875a[_0x94f9('0x29')](compareVersions);var _0x2052ee=new Umzug({'storage':_0x94f9('0x2a'),'storageOptions':{'model':db[_0x94f9('0x2b')],'modelName':_0x94f9('0x2b'),'columnName':_0x94f9('0x11')},'migrations':{'params':[db['sequelize']['getQueryInterface'](),db[_0x94f9('0x2a')]['constructor'],function(){throw new Error(_0x94f9('0x2c'));}],'path':path[_0x94f9('0x2d')](config[_0x94f9('0xa')],_0x94f9('0x24'),'migrations'),'pattern':/\.js$/}});_0x2052ee['up']({'migrations':_[_0x94f9('0x2e')](_0x2d4b8f,function(_0x4ec465){return _0x4ec465+_0x94f9('0x27');})})[_0x94f9('0x2f')](function(){return _0x310173['status'](0xc8)['json']({'output':'Database\x20migrated\x20successfully\x20from\x20version\x20'+module[_0x94f9('0x10')][_0x94f9('0x11')]+_0x94f9('0x30')+_['last'](_0x2d4b8f),'migrations':_[_0x94f9('0x2d')](_0x2d4b8f)});})[_0x94f9('0x21')](function(_0x1746e3){if(_0x1746e3 instanceof db[_0x94f9('0x2a')][_0x94f9('0x31')]){return _0x310173[_0x94f9('0x12')](0xc8)['json']({'output':'Database\x20already\x20up-to-date'});}else{return _0x310173[_0x94f9('0x12')](0x1f4)[_0x94f9('0x13')](_0x1746e3);}});}else{return _0x310173[_0x94f9('0x12')](0xc8)[_0x94f9('0x13')]({'output':_0x94f9('0x32')});}};