da76896eb3fd1c759412685e158713ccb46b22ff
[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 _0xf9ac=['Database\x20migrated\x20successfully\x20from\x20version\x20','last','Database\x20already\x20up-to-date','umzug','pkginfo','version','child_process','../../mysqldb','../../config/logger','update','simple-git','root','query','fetch','latest','2.0.0','status','json','error','info','git\x20fetch','reset','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','npm\x20install\x20--production','restart','motion2','then','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','server','migrations','length','replace','exports','push','sort','sequelize','Migration','getQueryInterface','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','join','.js'];(function(_0x204a09,_0xf4f03c){var _0x2d627d=function(_0x50c721){while(--_0x50c721){_0x204a09['push'](_0x204a09['shift']());}};_0x2d627d(++_0xf4f03c);}(_0xf9ac,0x87));var _0xcf9a=function(_0xde6b0,_0x47ff01){_0xde6b0=_0xde6b0-0x0;var _0x49da46=_0xf9ac[_0xde6b0];return _0x49da46;};'use strict';var Umzug=require(_0xcf9a('0x0'));var path=require('path');var fs=require('fs');var _=require('lodash');var pkginfo=require(_0xcf9a('0x1'))(module,_0xcf9a('0x2'));var compareVersions=require('compare-versions');var exec=require(_0xcf9a('0x3'))['exec'];var db=require(_0xcf9a('0x4'))['db'];var config=require('../../config/environment');var pm2=require('../../config/pm2');var logger=require(_0xcf9a('0x5'))(_0xcf9a('0x6'));var git=require(_0xcf9a('0x7'))(config[_0xcf9a('0x8')]);exports['index']=function(_0x33a1a6,_0x3d2f54){var _0x4c0665={'current':module['exports'][_0xcf9a('0x2')],'phonebar':0x2};if(_0x33a1a6['query']&&_0x33a1a6[_0xcf9a('0x9')]['latest']){return git[_0xcf9a('0xa')]()['tags'](function(_0x3d93ad,_0x683ab8){_0x4c0665[_0xcf9a('0xb')]=(_0x3d93ad?module['exports']['version']:_0x683ab8['latest'])||_0xcf9a('0xc');return _0x3d2f54[_0xcf9a('0xd')](0xc8)['json'](_0x4c0665);});}else{return _0x3d2f54[_0xcf9a('0xd')](0xc8)[_0xcf9a('0xe')](_0x4c0665);}};exports[_0xcf9a('0xa')]=function(_0x583cdf,_0x1998a4){return git['fetch'](['origin','master'],function(_0x55c27a){if(_0x55c27a){logger[_0xcf9a('0xf')](_0x55c27a);return _0x1998a4[_0xcf9a('0xd')](0x1f4)[_0xcf9a('0xe')](_0x55c27a);}logger[_0xcf9a('0x10')](_0xcf9a('0x11'));return _0x1998a4[_0xcf9a('0xd')](0xc8)[_0xcf9a('0xe')]({'output':'git\x20fetch\x20origin\x20master'});});};exports[_0xcf9a('0x12')]=function(_0x2a5f92,_0x503390){return git[_0xcf9a('0x12')](['--hard',_0xcf9a('0x13')],function(_0x4f1714){if(_0x4f1714){logger[_0xcf9a('0xf')](_0x4f1714);return _0x503390[_0xcf9a('0xd')](0x1f4)[_0xcf9a('0xe')](_0x4f1714);}logger[_0xcf9a('0x10')](_0xcf9a('0x14'));return _0x503390['status'](0xc8)['json']({'output':_0xcf9a('0x15')});});};exports['pull']=function(_0x46d8b0,_0x2e308a){exec(_0xcf9a('0x16'),function(_0x5e8019,_0x366682,_0x2388d1){logger[_0xcf9a('0x10')](_0x366682);logger['info'](_0x2388d1);if(_0x5e8019){logger[_0xcf9a('0xf')](_0x5e8019);return _0x2e308a[_0xcf9a('0xd')](0x1f4)[_0xcf9a('0xe')](_0x5e8019);}return _0x2e308a['status'](0xc8)['json']({'output':_0x366682});});};exports[_0xcf9a('0x17')]=function(_0x41fa37,_0x11f372){return pm2[_0xcf9a('0x17')](_0xcf9a('0x18'))[_0xcf9a('0x19')](function(_0x4f9b8c){logger[_0xcf9a('0x10')]('pm2\x20restart\x20motion\x20%s',_0x4f9b8c);return _0x11f372['status'](0xc8)[_0xcf9a('0xe')]({'output':_0xcf9a('0x1a')});})[_0xcf9a('0x1b')](function(_0x465ed0){logger[_0xcf9a('0xf')](_0x465ed0);return _0x11f372[_0xcf9a('0xd')](0x1f4)[_0xcf9a('0xe')](_0x465ed0);});};exports['migrations']=function(_0x5cb115,_0xe79752){var _0x409207=fs['readdirSync'](path['join'](config['root'],_0xcf9a('0x1c'),_0xcf9a('0x1d')));var _0x40d7d7=[];for(var _0x5664bd=0x0;_0x5664bd<_0x409207[_0xcf9a('0x1e')];_0x5664bd++){var _0xce0179=_0x409207[_0x5664bd][_0xcf9a('0x1f')]('.js','');if(compareVersions(module[_0xcf9a('0x20')][_0xcf9a('0x2')],_0xce0179)===-0x1){_0x40d7d7[_0xcf9a('0x21')](_0xce0179);}}if(_0x40d7d7[_0xcf9a('0x1e')]){var _0x12a4c8=_0x40d7d7[_0xcf9a('0x22')](compareVersions);var _0x6a5e8b=new Umzug({'storage':_0xcf9a('0x23'),'storageOptions':{'model':db[_0xcf9a('0x24')],'modelName':_0xcf9a('0x24'),'columnName':_0xcf9a('0x2')},'migrations':{'params':[db['sequelize'][_0xcf9a('0x25')](),db['sequelize']['constructor'],function(){throw new Error(_0xcf9a('0x26'));}],'path':path[_0xcf9a('0x27')](config[_0xcf9a('0x8')],_0xcf9a('0x1c'),_0xcf9a('0x1d')),'pattern':/\.js$/}});_0x6a5e8b['up']({'migrations':_['map'](_0x12a4c8,function(_0x51294a){return _0x51294a+_0xcf9a('0x28');})})[_0xcf9a('0x19')](function(){return _0xe79752[_0xcf9a('0xd')](0xc8)['json']({'output':_0xcf9a('0x29')+module[_0xcf9a('0x20')]['version']+'\x20to\x20'+_[_0xcf9a('0x2a')](_0x12a4c8),'migrations':_[_0xcf9a('0x27')](_0x12a4c8)});})[_0xcf9a('0x1b')](function(_0x1bd386){if(_0x1bd386 instanceof db[_0xcf9a('0x23')]['UniqueConstraintError']){return _0xe79752[_0xcf9a('0xd')](0xc8)[_0xcf9a('0xe')]({'output':'Database\x20already\x20up-to-date'});}else{return _0xe79752[_0xcf9a('0xd')](0x1f4)['json'](_0x1bd386);}});}else{return _0xe79752[_0xcf9a('0xd')](0xc8)[_0xcf9a('0xe')]({'output':_0xcf9a('0x2b')});}};