3751b7d526b9d56956e21f6d98a9afb1b42b4ac1
[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 _0x6445=['query','latest','fetch','exports','status','json','master','error','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','npm\x20install\x20--production','restart','motion2','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','readdirSync','server','migrations','length','.js','push','sort','sequelize','Migration','getQueryInterface','constructor','join','map','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','pkginfo','compare-versions','child_process','exec','../../config/pm2','update','simple-git','root','version'];(function(_0x22bb36,_0x4b481b){var _0x17b316=function(_0x14dbb3){while(--_0x14dbb3){_0x22bb36['push'](_0x22bb36['shift']());}};_0x17b316(++_0x4b481b);}(_0x6445,0x1f3));var _0x5644=function(_0x556d6c,_0x5c4205){_0x556d6c=_0x556d6c-0x0;var _0x87e072=_0x6445[_0x556d6c];return _0x87e072;};'use strict';var Umzug=require(_0x5644('0x0'));var path=require(_0x5644('0x1'));var fs=require('fs');var _=require('lodash');var pkginfo=require(_0x5644('0x2'))(module,'version');var compareVersions=require(_0x5644('0x3'));var exec=require(_0x5644('0x4'))[_0x5644('0x5')];var db=require('../../mysqldb')['db'];var config=require('../../config/environment');var pm2=require(_0x5644('0x6'));var logger=require('../../config/logger')(_0x5644('0x7'));var git=require(_0x5644('0x8'))(config[_0x5644('0x9')]);exports['index']=function(_0x47b8b4,_0x30288c){var _0x445520={'current':module['exports'][_0x5644('0xa')],'phonebar':0x2};if(_0x47b8b4['query']&&_0x47b8b4[_0x5644('0xb')][_0x5644('0xc')]){return git[_0x5644('0xd')]()['tags'](function(_0x498b0f,_0x21c199){_0x445520[_0x5644('0xc')]=(_0x498b0f?module[_0x5644('0xe')][_0x5644('0xa')]:_0x21c199[_0x5644('0xc')])||'2.0.0';return _0x30288c[_0x5644('0xf')](0xc8)[_0x5644('0x10')](_0x445520);});}else{return _0x30288c['status'](0xc8)[_0x5644('0x10')](_0x445520);}};exports[_0x5644('0xd')]=function(_0x2b7d92,_0x2a9109){return git[_0x5644('0xd')](['origin',_0x5644('0x11')],function(_0x5b8a86){if(_0x5b8a86){logger[_0x5644('0x12')](_0x5b8a86);return _0x2a9109[_0x5644('0xf')](0x1f4)[_0x5644('0x10')](_0x5b8a86);}logger[_0x5644('0x13')](_0x5644('0x14'));return _0x2a9109[_0x5644('0xf')](0xc8)['json']({'output':_0x5644('0x15')});});};exports[_0x5644('0x16')]=function(_0xb68338,_0x42aa29){return git[_0x5644('0x16')]([_0x5644('0x17'),_0x5644('0x18')],function(_0xf4ab44){if(_0xf4ab44){logger[_0x5644('0x12')](_0xf4ab44);return _0x42aa29['status'](0x1f4)['json'](_0xf4ab44);}logger[_0x5644('0x13')](_0x5644('0x19'));return _0x42aa29[_0x5644('0xf')](0xc8)[_0x5644('0x10')]({'output':_0x5644('0x1a')});});};exports[_0x5644('0x1b')]=function(_0x257620,_0xebead6){exec(_0x5644('0x1c'),function(_0x558a60,_0x5bef95,_0x575287){logger[_0x5644('0x13')](_0x5bef95);logger[_0x5644('0x13')](_0x575287);if(_0x558a60){logger[_0x5644('0x12')](_0x558a60);return _0xebead6[_0x5644('0xf')](0x1f4)[_0x5644('0x10')](_0x558a60);}return _0xebead6['status'](0xc8)[_0x5644('0x10')]({'output':_0x5bef95});});};exports[_0x5644('0x1d')]=function(_0x45e9ad,_0x49919a){return pm2[_0x5644('0x1d')](_0x5644('0x1e'))['then'](function(_0xd4a93){logger[_0x5644('0x13')](_0x5644('0x1f'),_0xd4a93);return _0x49919a[_0x5644('0xf')](0xc8)[_0x5644('0x10')]({'output':_0x5644('0x20')});})[_0x5644('0x21')](function(_0x4d3d4e){logger[_0x5644('0x12')](_0x4d3d4e);return _0x49919a[_0x5644('0xf')](0x1f4)['json'](_0x4d3d4e);});};exports['migrations']=function(_0x5247fb,_0x4c18e1){var _0x15b7d3=fs[_0x5644('0x22')](path['join'](config[_0x5644('0x9')],_0x5644('0x23'),_0x5644('0x24')));var _0x4f6ab8=[];for(var _0x3e5696=0x0;_0x3e5696<_0x15b7d3[_0x5644('0x25')];_0x3e5696++){var _0x524978=_0x15b7d3[_0x3e5696]['replace'](_0x5644('0x26'),'');if(compareVersions(module[_0x5644('0xe')]['version'],_0x524978)===-0x1){_0x4f6ab8[_0x5644('0x27')](_0x524978);}}if(_0x4f6ab8[_0x5644('0x25')]){var _0xe9de9f=_0x4f6ab8[_0x5644('0x28')](compareVersions);var _0xf59385=new Umzug({'storage':_0x5644('0x29'),'storageOptions':{'model':db[_0x5644('0x2a')],'modelName':'Migration','columnName':_0x5644('0xa')},'migrations':{'params':[db['sequelize'][_0x5644('0x2b')](),db[_0x5644('0x29')][_0x5644('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[_0x5644('0x2d')](config[_0x5644('0x9')],_0x5644('0x23'),_0x5644('0x24')),'pattern':/\.js$/}});_0xf59385['up']({'migrations':_[_0x5644('0x2e')](_0xe9de9f,function(_0x1d7408){return _0x1d7408+_0x5644('0x26');})})['then'](function(){return _0x4c18e1['status'](0xc8)['json']({'output':_0x5644('0x2f')+module[_0x5644('0xe')][_0x5644('0xa')]+_0x5644('0x30')+_['last'](_0xe9de9f),'migrations':_[_0x5644('0x2d')](_0xe9de9f)});})[_0x5644('0x21')](function(_0xa485c){if(_0xa485c instanceof db[_0x5644('0x29')][_0x5644('0x31')]){return _0x4c18e1[_0x5644('0xf')](0xc8)[_0x5644('0x10')]({'output':_0x5644('0x32')});}else{return _0x4c18e1[_0x5644('0xf')](0x1f4)[_0x5644('0x10')](_0xa485c);}});}else{return _0x4c18e1[_0x5644('0xf')](0xc8)[_0x5644('0x10')]({'output':_0x5644('0x32')});}};