be881876ae071a51188e55fe85949a4417e13c44
[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 _0x29fc=['../../config/pm2','update','root','index','exports','query','latest','fetch','tags','version','2.0.0','status','json','error','info','git\x20fetch','reset','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','npm\x20install\x20--production','restart','then','pm2\x20restart\x20motion\x20%s','catch','migrations','readdirSync','join','server','replace','.js','push','length','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.','map','\x20to\x20','last','Database\x20already\x20up-to-date','path','pkginfo','child_process','../../mysqldb'];(function(_0x56d660,_0x5b4e1f){var _0x37ffa8=function(_0x1245ee){while(--_0x1245ee){_0x56d660['push'](_0x56d660['shift']());}};_0x37ffa8(++_0x5b4e1f);}(_0x29fc,0xb0));var _0xc29f=function(_0x5a7290,_0x13fd07){_0x5a7290=_0x5a7290-0x0;var _0x5e5712=_0x29fc[_0x5a7290];return _0x5e5712;};'use strict';var Umzug=require('umzug');var path=require(_0xc29f('0x0'));var fs=require('fs');var _=require('lodash');var pkginfo=require(_0xc29f('0x1'))(module,'version');var compareVersions=require('compare-versions');var exec=require(_0xc29f('0x2'))['exec'];var db=require(_0xc29f('0x3'))['db'];var config=require('../../config/environment');var pm2=require(_0xc29f('0x4'));var logger=require('../../config/logger')(_0xc29f('0x5'));var git=require('simple-git')(config[_0xc29f('0x6')]);exports[_0xc29f('0x7')]=function(_0x4e5818,_0x58a5a2){var _0x25b854={'current':module[_0xc29f('0x8')]['version'],'phonebar':0x2};if(_0x4e5818['query']&&_0x4e5818[_0xc29f('0x9')][_0xc29f('0xa')]){return git[_0xc29f('0xb')]()[_0xc29f('0xc')](function(_0x54bd28,_0x3974e9){_0x25b854[_0xc29f('0xa')]=(_0x54bd28?module[_0xc29f('0x8')][_0xc29f('0xd')]:_0x3974e9[_0xc29f('0xa')])||_0xc29f('0xe');return _0x58a5a2[_0xc29f('0xf')](0xc8)['json'](_0x25b854);});}else{return _0x58a5a2[_0xc29f('0xf')](0xc8)[_0xc29f('0x10')](_0x25b854);}};exports[_0xc29f('0xb')]=function(_0x536e36,_0x1485ae){return git[_0xc29f('0xb')](['origin','master'],function(_0x535868){if(_0x535868){logger[_0xc29f('0x11')](_0x535868);return _0x1485ae[_0xc29f('0xf')](0x1f4)[_0xc29f('0x10')](_0x535868);}logger[_0xc29f('0x12')](_0xc29f('0x13'));return _0x1485ae[_0xc29f('0xf')](0xc8)[_0xc29f('0x10')]({'output':'git\x20fetch\x20origin\x20master'});});};exports[_0xc29f('0x14')]=function(_0x59b02f,_0x147cb4){return git[_0xc29f('0x14')](['--hard',_0xc29f('0x15')],function(_0x342dea){if(_0x342dea){logger[_0xc29f('0x11')](_0x342dea);return _0x147cb4['status'](0x1f4)[_0xc29f('0x10')](_0x342dea);}logger[_0xc29f('0x12')](_0xc29f('0x16'));return _0x147cb4['status'](0xc8)[_0xc29f('0x10')]({'output':'git\x20reset\x20--hard'});});};exports['pull']=function(_0x176e9e,_0x39194d){exec(_0xc29f('0x17'),function(_0x4af51c,_0x5a64bf,_0x30228e){logger[_0xc29f('0x12')](_0x5a64bf);logger[_0xc29f('0x12')](_0x30228e);if(_0x4af51c){logger[_0xc29f('0x11')](_0x4af51c);return _0x39194d[_0xc29f('0xf')](0x1f4)[_0xc29f('0x10')](_0x4af51c);}return _0x39194d[_0xc29f('0xf')](0xc8)[_0xc29f('0x10')]({'output':_0x5a64bf});});};exports[_0xc29f('0x18')]=function(_0x35bc22,_0x23143f){return pm2[_0xc29f('0x18')]('motion2')[_0xc29f('0x19')](function(_0x16f157){logger[_0xc29f('0x12')](_0xc29f('0x1a'),_0x16f157);return _0x23143f[_0xc29f('0xf')](0xc8)['json']({'output':'Your\x20system\x20has\x20been\x20restart\x20successfully'});})[_0xc29f('0x1b')](function(_0x5f59c0){logger[_0xc29f('0x11')](_0x5f59c0);return _0x23143f[_0xc29f('0xf')](0x1f4)[_0xc29f('0x10')](_0x5f59c0);});};exports[_0xc29f('0x1c')]=function(_0x14c30a,_0x5c048c){var _0x4b4a78=fs[_0xc29f('0x1d')](path[_0xc29f('0x1e')](config[_0xc29f('0x6')],_0xc29f('0x1f'),_0xc29f('0x1c')));var _0xf21a5=[];for(var _0x31f747=0x0;_0x31f747<_0x4b4a78['length'];_0x31f747++){var _0x187d4b=_0x4b4a78[_0x31f747][_0xc29f('0x20')](_0xc29f('0x21'),'');if(compareVersions(module[_0xc29f('0x8')]['version'],_0x187d4b)===-0x1){_0xf21a5[_0xc29f('0x22')](_0x187d4b);}}if(_0xf21a5[_0xc29f('0x23')]){var _0x40c498=_0xf21a5[_0xc29f('0x24')](compareVersions);var _0x394b51=new Umzug({'storage':_0xc29f('0x25'),'storageOptions':{'model':db['Migration'],'modelName':_0xc29f('0x26'),'columnName':_0xc29f('0xd')},'migrations':{'params':[db[_0xc29f('0x25')][_0xc29f('0x27')](),db['sequelize']['constructor'],function(){throw new Error(_0xc29f('0x28'));}],'path':path[_0xc29f('0x1e')](config[_0xc29f('0x6')],_0xc29f('0x1f'),_0xc29f('0x1c')),'pattern':/\.js$/}});_0x394b51['up']({'migrations':_[_0xc29f('0x29')](_0x40c498,function(_0x524d14){return _0x524d14+_0xc29f('0x21');})})[_0xc29f('0x19')](function(){return _0x5c048c['status'](0xc8)[_0xc29f('0x10')]({'output':'Database\x20migrated\x20successfully\x20from\x20version\x20'+module[_0xc29f('0x8')][_0xc29f('0xd')]+_0xc29f('0x2a')+_[_0xc29f('0x2b')](_0x40c498),'migrations':_['join'](_0x40c498)});})[_0xc29f('0x1b')](function(_0x492a3a){if(_0x492a3a instanceof db[_0xc29f('0x25')]['UniqueConstraintError']){return _0x5c048c[_0xc29f('0xf')](0xc8)[_0xc29f('0x10')]({'output':_0xc29f('0x2c')});}else{return _0x5c048c['status'](0x1f4)[_0xc29f('0x10')](_0x492a3a);}});}else{return _0x5c048c[_0xc29f('0xf')](0xc8)['json']({'output':_0xc29f('0x2c')});}};