Built motion from commit 14588770.|2.5.38
[motion2.git] / server / config / license / index.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 _0x629d=['toUpperCase','update','encryptString','YYYY-MM-DD\x20HH:mm','diff','decryptString','days','DEMO\x20START\x20AT\x20%s','error','message','getUuid','findOrCreate','spread','default','util','moment','request-promise','bluebird','../../mysqldb','../../components/encryptor','./hardware','../logger','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','version','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET','then','catch','get','data1','active','license','data2','info','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s'];(function(_0x1e255a,_0x1f3aaa){var _0x486680=function(_0x117d2f){while(--_0x117d2f){_0x1e255a['push'](_0x1e255a['shift']());}};_0x486680(++_0x1f3aaa);}(_0x629d,0x110));var _0xd629=function(_0x2acb77,_0x272b50){_0x2acb77=_0x2acb77-0x0;var _0x11c4ad=_0x629d[_0x2acb77];return _0x11c4ad;};'use strict';var util=require(_0xd629('0x0'));var moment=require(_0xd629('0x1'));var rp=require(_0xd629('0x2'));var BPromise=require(_0xd629('0x3'));var pkginfo=require('pkginfo')(module,'version');var db=require(_0xd629('0x4'))['db'];var encryptor=require(_0xd629('0x5'));var hardware=require(_0xd629('0x6'));var logger=require(_0xd629('0x7'))('license');var HOST=_0xd629('0x8');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x1052d9){return new BPromise(function(_0x3384ec,_0x46b78b){var _0x459bb2=util[_0xd629('0x9')](_0xd629('0xa'),HOST,_0x1052d9,module[_0xd629('0xb')][_0xd629('0xc')]);if(oldToken){_0x459bb2=util[_0xd629('0x9')](_0xd629('0xd'),HOST,_0x1052d9,module['exports']['version'],oldToken);}var _0x4e8019={'uri':_0x459bb2,'method':_0xd629('0xe'),'timeout':0xea60,'json':!![]};return rp(_0x4e8019)[_0xd629('0xf')](function(_0x3e5425){_0x3384ec(_0x3e5425);})[_0xd629('0x10')](function(_0x126acc){_0x46b78b(_0x126acc);});});}function manageLicense(_0x5eb11c,_0x48fe52){var _0x44fc7d=_0x48fe52[_0xd629('0x11')]({'plain':!![]});if(!isOldTokenSent&&_0x44fc7d[_0xd629('0x12')]!==_0x5eb11c&&!_0x44fc7d['data2']){oldToken=_0x44fc7d[_0xd629('0x12')];}httpRequest(_0x5eb11c)[_0xd629('0xf')](function(_0x296647){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x296647[_0xd629('0x13')]){isOldTokenSent=![];if(!_0x44fc7d[_0xd629('0x14')]&&_0x44fc7d[_0xd629('0x14')]!=_0x296647[_0xd629('0x14')]||_0x44fc7d[_0xd629('0x14')]&&_0x44fc7d[_0xd629('0x15')]){logger[_0xd629('0x16')]('THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED');}if(_0x44fc7d[_0xd629('0x14')]&&!_0x44fc7d[_0xd629('0x15')]&&_0x44fc7d['license']!=_0x296647['license']){logger[_0xd629('0x16')](_0xd629('0x17'));}if(_0x44fc7d['license']&&!_0x44fc7d[_0xd629('0x15')]&&_0x44fc7d['license']==_0x296647[_0xd629('0x14')]){return _0x48fe52;}return _0x48fe52['update']({'data1':_0x5eb11c,'data2':null,'license':_0x296647[_0xd629('0x14')]});}else{if(_0x296647[_0xd629('0x14')]||_0x44fc7d[_0xd629('0x14')]){if(!_0x44fc7d[_0xd629('0x15')]){if(_0x44fc7d[_0xd629('0x12')]==_0x5eb11c){GRAY_PERIOD_REASON=_0xd629('0x18');logger[_0xd629('0x16')](_0xd629('0x19'));}else{GRAY_PERIOD_REASON=_0xd629('0x1a');logger[_0xd629('0x16')](_0xd629('0x1b'),_0x44fc7d['data1'],_0x5eb11c);}logger[_0xd629('0x16')](_0xd629('0x1c'),GRAY_PERIOD_REASON[_0xd629('0x1d')](),moment()['format']('YYYY-MM-DD\x20HH:mm'));return _0x48fe52[_0xd629('0x1e')]({'data2':encryptor[_0xd629('0x1f')](moment()[_0xd629('0x9')](_0xd629('0x20')))});}else{if(moment()[_0xd629('0x21')](encryptor[_0xd629('0x22')](_0x44fc7d[_0xd629('0x15')]),_0xd629('0x23'))>DAYS){logger[_0xd629('0x16')](_0xd629('0x24'),moment()['format'](_0xd629('0x20')));isOldTokenSent=![];return _0x48fe52[_0xd629('0x1e')]({'data1':_0x5eb11c,'data2':null,'license':null});}}}else{if(_0x44fc7d[_0xd629('0x12')]!=_0x5eb11c){logger[_0xd629('0x16')](_0xd629('0x1b'),_0x44fc7d['data1'],_0x5eb11c);return _0x48fe52[_0xd629('0x1e')]({'data1':_0x5eb11c,'data2':null,'license':null});}}}return _0x48fe52;})[_0xd629('0xf')](function(_0x15acbd){_0x48fe52=_0x15acbd;})['catch'](function(_0x3edc3f){logger[_0xd629('0x25')](_0x3edc3f[_0xd629('0x26')]);})['finally'](function(){setTimeout(function(){manageLicense(hardware[_0xd629('0x27')](),_0x48fe52);},TIME);});}function defaultLicense(){var _0x414316=hardware[_0xd629('0x27')]();if(_0x414316){return db['License'][_0xd629('0x28')]({'where':{'id':0x1},'defaults':{'data1':_0x414316}})[_0xd629('0x29')](function(_0x5b6695,_0x46fa5b){logger[_0xd629('0x16')]('SERVICE\x20LICENSE\x20STARTED\x20%s',_0x414316);manageLicense(_0x414316,_0x5b6695);})[_0xd629('0x10')](function(_0x5ebc34){logger[_0xd629('0x25')](_0x5ebc34[_0xd629('0x26')]);});}}exports[_0xd629('0x2a')]=defaultLicense;