244e13e6982b2c222792b73d1d9c08421ca32e3f
[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 _0xc3e0=['finally','License','findOrCreate','spread','catch','default','util','request-promise','bluebird','../../mysqldb','./hardware','../logger','license','https://www.xcallymotion.com','%s/api/servers/%s/check?version=%s','exports','version','format','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET','data1','data2','then','active','info','update','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','toUpperCase','YYYY-MM-DD\x20HH:mm','diff','decryptString','days','DEMO\x20START\x20AT\x20%s','error','message'];(function(_0x129479,_0x256c7e){var _0x3fa0ce=function(_0x35401f){while(--_0x35401f){_0x129479['push'](_0x129479['shift']());}};_0x3fa0ce(++_0x256c7e);}(_0xc3e0,0xea));var _0x0c3e=function(_0x6fa996,_0x3dfa10){_0x6fa996=_0x6fa996-0x0;var _0x448be7=_0xc3e0[_0x6fa996];return _0x448be7;};'use strict';var util=require(_0x0c3e('0x0'));var moment=require('moment');var rp=require(_0x0c3e('0x1'));var BPromise=require(_0x0c3e('0x2'));var pkginfo=require('pkginfo')(module,'version');var db=require(_0x0c3e('0x3'))['db'];var encryptor=require('../../components/encryptor');var hardware=require(_0x0c3e('0x4'));var logger=require(_0x0c3e('0x5'))(_0x0c3e('0x6'));var HOST=_0x0c3e('0x7');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x1bad39){return new BPromise(function(_0x3b51bc,_0x279da0){var _0x502f61=util['format'](_0x0c3e('0x8'),HOST,_0x1bad39,module[_0x0c3e('0x9')][_0x0c3e('0xa')]);if(oldToken){_0x502f61=util[_0x0c3e('0xb')](_0x0c3e('0xc'),HOST,_0x1bad39,module[_0x0c3e('0x9')][_0x0c3e('0xa')],oldToken);}var _0xf38aa3={'uri':_0x502f61,'method':_0x0c3e('0xd'),'timeout':0xea60,'json':!![]};return rp(_0xf38aa3)['then'](function(_0xd6f4e0){_0x3b51bc(_0xd6f4e0);})['catch'](function(_0x1413f2){_0x279da0(_0x1413f2);});});}function manageLicense(_0x221e35,_0x1effec){var _0x13df61=_0x1effec['get']({'plain':!![]});if(!isOldTokenSent&&_0x13df61[_0x0c3e('0xe')]!==_0x221e35&&!_0x13df61[_0x0c3e('0xf')]){oldToken=_0x13df61[_0x0c3e('0xe')];}httpRequest(_0x221e35)[_0x0c3e('0x10')](function(_0x1c3e6e){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x1c3e6e[_0x0c3e('0x11')]){isOldTokenSent=![];if(!_0x13df61[_0x0c3e('0x6')]&&_0x13df61['license']!=_0x1c3e6e['license']||_0x13df61[_0x0c3e('0x6')]&&_0x13df61[_0x0c3e('0xf')]){logger[_0x0c3e('0x12')]('THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED');}if(_0x13df61['license']&&!_0x13df61[_0x0c3e('0xf')]&&_0x13df61['license']!=_0x1c3e6e[_0x0c3e('0x6')]){logger[_0x0c3e('0x12')]('THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED');}if(_0x13df61[_0x0c3e('0x6')]&&!_0x13df61[_0x0c3e('0xf')]&&_0x13df61[_0x0c3e('0x6')]==_0x1c3e6e[_0x0c3e('0x6')]){return _0x1effec;}return _0x1effec[_0x0c3e('0x13')]({'data1':_0x221e35,'data2':null,'license':_0x1c3e6e['license']});}else{if(_0x1c3e6e['license']||_0x13df61['license']){if(!_0x13df61[_0x0c3e('0xf')]){if(_0x13df61['data1']==_0x221e35){GRAY_PERIOD_REASON=_0x0c3e('0x14');logger[_0x0c3e('0x12')](_0x0c3e('0x15'));}else{GRAY_PERIOD_REASON='Changed';logger['info'](_0x0c3e('0x16'),_0x13df61[_0x0c3e('0xe')],_0x221e35);}logger[_0x0c3e('0x12')](_0x0c3e('0x17'),GRAY_PERIOD_REASON[_0x0c3e('0x18')](),moment()[_0x0c3e('0xb')](_0x0c3e('0x19')));return _0x1effec[_0x0c3e('0x13')]({'data2':encryptor['encryptString'](moment()['format']('YYYY-MM-DD\x20HH:mm'))});}else{if(moment()[_0x0c3e('0x1a')](encryptor[_0x0c3e('0x1b')](_0x13df61[_0x0c3e('0xf')]),_0x0c3e('0x1c'))>DAYS){logger['info'](_0x0c3e('0x1d'),moment()[_0x0c3e('0xb')](_0x0c3e('0x19')));isOldTokenSent=![];return _0x1effec[_0x0c3e('0x13')]({'data1':_0x221e35,'data2':null,'license':null});}}}else{if(_0x13df61[_0x0c3e('0xe')]!=_0x221e35){logger['info'](_0x0c3e('0x16'),_0x13df61[_0x0c3e('0xe')],_0x221e35);return _0x1effec['update']({'data1':_0x221e35,'data2':null,'license':null});}}}return _0x1effec;})[_0x0c3e('0x10')](function(_0x3a2aff){_0x1effec=_0x3a2aff;})['catch'](function(_0x1dd5b9){logger[_0x0c3e('0x1e')](_0x1dd5b9[_0x0c3e('0x1f')]);})[_0x0c3e('0x20')](function(){setTimeout(function(){manageLicense(hardware['getUuid'](),_0x1effec);},TIME);});}function defaultLicense(){var _0x4b4496=hardware['getUuid']();if(_0x4b4496){return db[_0x0c3e('0x21')][_0x0c3e('0x22')]({'where':{'id':0x1},'defaults':{'data1':_0x4b4496}})[_0x0c3e('0x23')](function(_0x407331,_0x4ad28c){logger['info']('SERVICE\x20LICENSE\x20STARTED\x20%s',_0x4b4496);manageLicense(_0x4b4496,_0x407331);})[_0x0c3e('0x24')](function(_0x4d0ae8){logger[_0x0c3e('0x1e')](_0x4d0ae8[_0x0c3e('0x1f')]);});}}exports[_0x0c3e('0x25')]=defaultLicense;