73b3f11d024437bd5e72bc2b8150e29558e3adb1
[motion2.git] / server / components / export / xlsx.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 _0xe33c=['inspect','Failed','finally','exit','path','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','find','split','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','length','range','isInteger','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','push','dirname','basename','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','writeFileSync','binary','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','XLSX'];(function(_0x431a2d,_0x53c582){var _0x5ac2ae=function(_0x290ba1){while(--_0x290ba1){_0x431a2d['push'](_0x431a2d['shift']());}};_0x5ac2ae(++_0x53c582);}(_0xe33c,0x1a4));var _0xce33=function(_0x2d440b,_0x4972fa){_0x2d440b=_0x2d440b-0x0;var _0x562a32=_0xe33c[_0x2d440b];return _0x562a32;};'use strict';var util=require('util');var path=require(_0xce33('0x0'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0xce33('0x1'));var BPromise=require(_0xce33('0x2'));var zipdir=require(_0xce33('0x3'));var rimraf=require(_0xce33('0x4'));var db=require('../../mysqldb')['db'];var dbH=require(_0xce33('0x5'))[_0xce33('0x6')];var logger=require(_0xce33('0x7'))(_0xce33('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0xce33('0x9')][0x2]);var QUERY=process[_0xce33('0x9')][0x3];var PATH=process[_0xce33('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x41f42f,_0x21cd17){var _0x18b060={'status':_0x41f42f};var _0x168733={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x21cd17){_0x18b060[_0xce33('0xa')]=_0x21cd17;}return db[_0xce33('0xb')][_0xce33('0xc')](_0x18b060,_0x168733);}function main(){var _0x53f9e2=0x1388;var _0x3fbc1c;logger[_0xce33('0xd')](util[_0xce33('0xe')](_0xce33('0xf'),EXTRACTED_REPORT_ID,'XLSX'));return db['Setting'][_0xce33('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xce33('0x11'),_0xce33('0x12')]})[_0xce33('0x13')](function(_0x52db70){if(_0x52db70){_0x3fbc1c=_0x52db70;_0x53f9e2=_0x3fbc1c[_0xce33('0x12')]||0x1388;}})[_0xce33('0x13')](function(){return dbH[_0xce33('0x14')][_0xce33('0x15')](util[_0xce33('0xe')](_0xce33('0x16'),QUERY),{'type':dbH[_0xce33('0x14')][_0xce33('0x17')][_0xce33('0x18')]});})['then'](function(_0x18b206){if(!_0x18b206[0x0][_0xce33('0x19')]){return analyticExtractedReport('Empty');}var _0x15c180=[];var _0x35659b=0x0;if(_0x3fbc1c[_0xce33('0x11')]){if(_0x18b206&&_0x18b206[_0xce33('0x1a')]){var _0x3c7cde=_[_0xce33('0x1b')](_0x18b206[0x0][_0xce33('0x19')]/_0x53f9e2);var _0x50bfff=Number[_0xce33('0x1c')](_0x18b206[0x0][_0xce33('0x19')]/_0x53f9e2)?_0x18b206[0x0]['num']%_0x53f9e2:0x0;_0x3c7cde[_0xce33('0x1d')](function(_0x498991){if(_0x498991>0x0){_0x35659b+=_0x53f9e2;}_0x15c180['push'](dbH[_0xce33('0x14')][_0xce33('0x15')](util[_0xce33('0xe')](_0xce33('0x1e'),QUERY,_0x53f9e2,_0x35659b),{'type':dbH[_0xce33('0x14')][_0xce33('0x17')][_0xce33('0x18')]}));});if(_0x50bfff>0x0){_0x35659b+=_0x53f9e2;_0x15c180[_0xce33('0x1f')](dbH[_0xce33('0x14')]['query'](util[_0xce33('0xe')](_0xce33('0x1e'),QUERY,_0x50bfff,_0x35659b),{'type':dbH[_0xce33('0x14')][_0xce33('0x17')][_0xce33('0x18')]}));}}}else{_0x15c180['push'](dbH['sequelize'][_0xce33('0x15')](QUERY,{'type':dbH[_0xce33('0x14')][_0xce33('0x17')][_0xce33('0x18')]}));}var _0x7c7c2a=path[_0xce33('0x20')](PATH);var _0x2f914c=path[_0xce33('0x21')](PATH,'.xlsx');var _0x544c9c=_0x3fbc1c['split']&&_0x15c180[_0xce33('0x1a')]>0x1;var _0x3e2d83=[];if(!fs['existsSync'](path[_0xce33('0x22')](_0x7c7c2a,_0x2f914c))&&_0x544c9c){fs[_0xce33('0x23')](path['join'](_0x7c7c2a,_0x2f914c));}return BPromise[_0xce33('0x24')](_0x15c180,function(_0x50a87b){_0x3e2d83[_0xce33('0x1f')](_0x50a87b);})[_0xce33('0x13')](function(){for(var _0x4e2f9b=0x0;_0x4e2f9b<_0x3e2d83[_0xce33('0x1a')];_0x4e2f9b+=0x1){var _0x150de3;var _0x3b4b8d=_0x3e2d83[_0x4e2f9b];if(_0x544c9c){_0x150de3=path[_0xce33('0x22')](_0x7c7c2a,_0x2f914c,util[_0xce33('0xe')](_0xce33('0x25'),_0x2f914c,_0x4e2f9b,_0xce33('0x26')));}else{_0x150de3=path[_0xce33('0x22')](_0x7c7c2a,util['format'](_0xce33('0x27'),_0x2f914c,_0xce33('0x26')));}fs[_0xce33('0x28')](_0x150de3,json2xls(_0x3b4b8d),_0xce33('0x29'));}})[_0xce33('0x13')](function(){if(_0x544c9c){return new Promise(function(_0x1ffca8){zipdir(path['join'](_0x7c7c2a,_0x2f914c),{'saveTo':path['join'](_0x7c7c2a,util[_0xce33('0xe')]('%s.%s',_0x2f914c,_0xce33('0x2a')))},function(_0x3b8c0b,_0xeb56f1){rimraf(path[_0xce33('0x22')](_0x7c7c2a,_0x2f914c),function(){});_0x1ffca8(_0xce33('0x2b'));});});}})['then'](function(){logger['info'](util[_0xce33('0xe')](_0xce33('0x2c'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0xce33('0x2d'),_0x544c9c?util[_0xce33('0xe')](_0xce33('0x27'),_0x2f914c,_0x544c9c?_0xce33('0x2a'):_0xce33('0x26')):null);});})[_0xce33('0x2e')](function(_0x3c732d){logger[_0xce33('0xd')](util[_0xce33('0xe')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xce33('0x2f')),util[_0xce33('0x30')](_0x3c732d,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xce33('0x31'));})[_0xce33('0x32')](function(){process[_0xce33('0x33')](EXIT_CODE);});}main();