Built motion from commit b5413ace.|2.6.9
[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 _0x6932=['License','findOrCreate','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','util','moment','request-promise','bluebird','pkginfo','version','../../mysqldb','../../components/encryptor','../logger','license','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','%s/api/servers/%s/check?version=%s&oldtoken=%s','exports','GET','then','catch','data2','data1','active','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Disabled','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','YYYY-MM-DD\x20HH:mm','diff','decryptString','DEMO\x20START\x20AT\x20%s','error','message','finally','getUuid'];(function(_0x2f01f2,_0x37a59b){var _0x4b9b28=function(_0x517420){while(--_0x517420){_0x2f01f2['push'](_0x2f01f2['shift']());}};_0x4b9b28(++_0x37a59b);}(_0x6932,0x7f));var _0x2693=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x6932[_0x17d9e3];return _0x14192d;};'use strict';var util=require(_0x2693('0x0'));var moment=require(_0x2693('0x1'));var rp=require(_0x2693('0x2'));var BPromise=require(_0x2693('0x3'));var pkginfo=require(_0x2693('0x4'))(module,_0x2693('0x5'));var db=require(_0x2693('0x6'))['db'];var encryptor=require(_0x2693('0x7'));var hardware=require('./hardware');var logger=require(_0x2693('0x8'))(_0x2693('0x9'));var HOST=_0x2693('0xa');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x341b24){return new BPromise(function(_0x371245,_0x339d6e){var _0x4b976d=util[_0x2693('0xb')](_0x2693('0xc'),HOST,_0x341b24,module['exports']['version']);if(oldToken){_0x4b976d=util['format'](_0x2693('0xd'),HOST,_0x341b24,module[_0x2693('0xe')][_0x2693('0x5')],oldToken);}var _0x2abdd2={'uri':_0x4b976d,'method':_0x2693('0xf'),'timeout':0xea60,'json':!![]};return rp(_0x2abdd2)[_0x2693('0x10')](function(_0x582aed){_0x371245(_0x582aed);})[_0x2693('0x11')](function(_0x5216a4){_0x339d6e(_0x5216a4);});});}function manageLicense(_0x5779eb,_0x3515ca){var _0x5cb082=_0x3515ca['get']({'plain':!![]});if(!isOldTokenSent&&_0x5cb082['data1']!==_0x5779eb&&!_0x5cb082[_0x2693('0x12')]){oldToken=_0x5cb082[_0x2693('0x13')];}httpRequest(_0x5779eb)[_0x2693('0x10')](function(_0x2d7f11){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x2d7f11[_0x2693('0x14')]){isOldTokenSent=![];if(!_0x5cb082[_0x2693('0x9')]&&_0x5cb082[_0x2693('0x9')]!=_0x2d7f11[_0x2693('0x9')]||_0x5cb082[_0x2693('0x9')]&&_0x5cb082[_0x2693('0x12')]){logger[_0x2693('0x15')](_0x2693('0x16'));}if(_0x5cb082['license']&&!_0x5cb082[_0x2693('0x12')]&&_0x5cb082['license']!=_0x2d7f11[_0x2693('0x9')]){logger[_0x2693('0x15')](_0x2693('0x17'));}if(_0x5cb082[_0x2693('0x9')]&&!_0x5cb082['data2']&&_0x5cb082[_0x2693('0x9')]==_0x2d7f11[_0x2693('0x9')]){return _0x3515ca;}return _0x3515ca[_0x2693('0x18')]({'data1':_0x5779eb,'data2':null,'license':_0x2d7f11[_0x2693('0x9')]});}else{if(_0x2d7f11[_0x2693('0x9')]||_0x5cb082[_0x2693('0x9')]){if(!_0x5cb082['data2']){if(_0x5cb082['data1']==_0x5779eb){GRAY_PERIOD_REASON=_0x2693('0x19');logger[_0x2693('0x15')]('THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED');}else{GRAY_PERIOD_REASON=_0x2693('0x1a');logger[_0x2693('0x15')](_0x2693('0x1b'),_0x5cb082['data1'],_0x5779eb);}logger['info'](_0x2693('0x1c'),GRAY_PERIOD_REASON['toUpperCase'](),moment()[_0x2693('0xb')](_0x2693('0x1d')));return _0x3515ca[_0x2693('0x18')]({'data2':encryptor['encryptString'](moment()[_0x2693('0xb')](_0x2693('0x1d')))});}else{if(moment()[_0x2693('0x1e')](encryptor[_0x2693('0x1f')](_0x5cb082[_0x2693('0x12')]),'days')>DAYS){logger[_0x2693('0x15')](_0x2693('0x20'),moment()[_0x2693('0xb')](_0x2693('0x1d')));isOldTokenSent=![];return _0x3515ca[_0x2693('0x18')]({'data1':_0x5779eb,'data2':null,'license':null});}}}else{if(_0x5cb082['data1']!=_0x5779eb){logger[_0x2693('0x15')](_0x2693('0x1b'),_0x5cb082[_0x2693('0x13')],_0x5779eb);return _0x3515ca[_0x2693('0x18')]({'data1':_0x5779eb,'data2':null,'license':null});}}}return _0x3515ca;})['then'](function(_0x44d2d8){_0x3515ca=_0x44d2d8;})['catch'](function(_0x45d2e4){logger[_0x2693('0x21')](_0x45d2e4[_0x2693('0x22')]);})[_0x2693('0x23')](function(){setTimeout(function(){manageLicense(hardware[_0x2693('0x24')](),_0x3515ca);},TIME);});}function defaultLicense(){var _0x346c4d=hardware['getUuid']();if(_0x346c4d){return db[_0x2693('0x25')][_0x2693('0x26')]({'where':{'id':0x1},'defaults':{'data1':_0x346c4d}})[_0x2693('0x27')](function(_0x8abd44,_0x3e7afc){logger['info'](_0x2693('0x28'),_0x346c4d);manageLicense(_0x346c4d,_0x8abd44);})[_0x2693('0x11')](function(_0x25ac3a){logger[_0x2693('0x21')](_0x25ac3a[_0x2693('0x22')]);});}}exports['default']=defaultLicense;