9e8cfa35ccdc9b10a0f7cd90721967edbe4beb9e
[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 _0x7357=['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','encryptString','diff','decryptString','DEMO\x20START\x20AT\x20%s','message','finally','getUuid','License','findOrCreate','SERVICE\x20LICENSE\x20STARTED\x20%s','error','default','util','moment','bluebird','version','../../components/encryptor','./hardware','license','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET','then','catch','get','data1','data2','active','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','info'];(function(_0x376b45,_0x5964fb){var _0x2341b3=function(_0x5a7f01){while(--_0x5a7f01){_0x376b45['push'](_0x376b45['shift']());}};_0x2341b3(++_0x5964fb);}(_0x7357,0x12b));var _0x7735=function(_0x5412d4,_0x398b70){_0x5412d4=_0x5412d4-0x0;var _0x25be83=_0x7357[_0x5412d4];return _0x25be83;};'use strict';var util=require(_0x7735('0x0'));var moment=require(_0x7735('0x1'));var rp=require('request-promise');var BPromise=require(_0x7735('0x2'));var pkginfo=require('pkginfo')(module,_0x7735('0x3'));var db=require('../../mysqldb')['db'];var encryptor=require(_0x7735('0x4'));var hardware=require(_0x7735('0x5'));var logger=require('../logger')(_0x7735('0x6'));var HOST=_0x7735('0x7');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x3f2eb8){return new BPromise(function(_0x24fd10,_0x579a70){var _0x43baa7=util[_0x7735('0x8')](_0x7735('0x9'),HOST,_0x3f2eb8,module[_0x7735('0xa')][_0x7735('0x3')]);if(oldToken){_0x43baa7=util[_0x7735('0x8')](_0x7735('0xb'),HOST,_0x3f2eb8,module[_0x7735('0xa')][_0x7735('0x3')],oldToken);}var _0xe4976d={'uri':_0x43baa7,'method':_0x7735('0xc'),'timeout':0xea60,'json':!![]};return rp(_0xe4976d)[_0x7735('0xd')](function(_0x588aed){_0x24fd10(_0x588aed);})[_0x7735('0xe')](function(_0x17f83f){_0x579a70(_0x17f83f);});});}function manageLicense(_0x2bbf36,_0x1600ff){var _0x6c28e=_0x1600ff[_0x7735('0xf')]({'plain':!![]});if(!isOldTokenSent&&_0x6c28e[_0x7735('0x10')]!==_0x2bbf36&&!_0x6c28e[_0x7735('0x11')]){oldToken=_0x6c28e['data1'];}httpRequest(_0x2bbf36)[_0x7735('0xd')](function(_0x24b6b2){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x24b6b2[_0x7735('0x12')]){isOldTokenSent=![];if(!_0x6c28e[_0x7735('0x6')]&&_0x6c28e[_0x7735('0x6')]!=_0x24b6b2[_0x7735('0x6')]||_0x6c28e[_0x7735('0x6')]&&_0x6c28e['data2']){logger['info'](_0x7735('0x13'));}if(_0x6c28e['license']&&!_0x6c28e[_0x7735('0x11')]&&_0x6c28e[_0x7735('0x6')]!=_0x24b6b2[_0x7735('0x6')]){logger[_0x7735('0x14')]('THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED');}if(_0x6c28e[_0x7735('0x6')]&&!_0x6c28e['data2']&&_0x6c28e[_0x7735('0x6')]==_0x24b6b2[_0x7735('0x6')]){return _0x1600ff;}return _0x1600ff[_0x7735('0x15')]({'data1':_0x2bbf36,'data2':null,'license':_0x24b6b2[_0x7735('0x6')]});}else{if(_0x24b6b2[_0x7735('0x6')]||_0x6c28e[_0x7735('0x6')]){if(!_0x6c28e[_0x7735('0x11')]){if(_0x6c28e[_0x7735('0x10')]==_0x2bbf36){GRAY_PERIOD_REASON=_0x7735('0x16');logger[_0x7735('0x14')](_0x7735('0x17'));}else{GRAY_PERIOD_REASON='Changed';logger[_0x7735('0x14')](_0x7735('0x18'),_0x6c28e[_0x7735('0x10')],_0x2bbf36);}logger[_0x7735('0x14')](_0x7735('0x19'),GRAY_PERIOD_REASON[_0x7735('0x1a')](),moment()[_0x7735('0x8')](_0x7735('0x1b')));return _0x1600ff[_0x7735('0x15')]({'data2':encryptor[_0x7735('0x1c')](moment()[_0x7735('0x8')](_0x7735('0x1b')))});}else{if(moment()[_0x7735('0x1d')](encryptor[_0x7735('0x1e')](_0x6c28e['data2']),'days')>DAYS){logger[_0x7735('0x14')](_0x7735('0x1f'),moment()[_0x7735('0x8')](_0x7735('0x1b')));isOldTokenSent=![];return _0x1600ff[_0x7735('0x15')]({'data1':_0x2bbf36,'data2':null,'license':null});}}}else{if(_0x6c28e[_0x7735('0x10')]!=_0x2bbf36){logger[_0x7735('0x14')](_0x7735('0x18'),_0x6c28e[_0x7735('0x10')],_0x2bbf36);return _0x1600ff[_0x7735('0x15')]({'data1':_0x2bbf36,'data2':null,'license':null});}}}return _0x1600ff;})[_0x7735('0xd')](function(_0x4bc587){_0x1600ff=_0x4bc587;})['catch'](function(_0x360c3e){logger['error'](_0x360c3e[_0x7735('0x20')]);})[_0x7735('0x21')](function(){setTimeout(function(){manageLicense(hardware['getUuid'](),_0x1600ff);},TIME);});}function defaultLicense(){var _0x338c7d=hardware[_0x7735('0x22')]();if(_0x338c7d){return db[_0x7735('0x23')][_0x7735('0x24')]({'where':{'id':0x1},'defaults':{'data1':_0x338c7d}})['spread'](function(_0x421c64,_0x5f2566){logger['info'](_0x7735('0x25'),_0x338c7d);manageLicense(_0x338c7d,_0x421c64);})[_0x7735('0xe')](function(_0x5b42b8){logger[_0x7735('0x26')](_0x5b42b8[_0x7735('0x20')]);});}}exports[_0x7735('0x27')]=defaultLicense;