9c533465aaa4074bbd98fa91c1ff0a60debf11b9
[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 _0x1477=['splitSizeXlsx','then','sequelize','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','split','length','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.xlsx','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','writeFileSync','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','XLSX','Completed','catch','inspect','Failed','finally','util','path','lodash','json2xls','bluebird','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','find'];(function(_0x4b1838,_0xa594c7){var _0x372879=function(_0x5a9689){while(--_0x5a9689){_0x4b1838['push'](_0x4b1838['shift']());}};_0x372879(++_0xa594c7);}(_0x1477,0x122));var _0x7147=function(_0x5dc3cc,_0x5ea4bb){_0x5dc3cc=_0x5dc3cc-0x0;var _0x1ad47d=_0x1477[_0x5dc3cc];return _0x1ad47d;};'use strict';var util=require(_0x7147('0x0'));var path=require(_0x7147('0x1'));var _=require(_0x7147('0x2'));var fs=require('fs');var json2xls=require(_0x7147('0x3'));var BPromise=require(_0x7147('0x4'));var zipdir=require('zip-dir');var rimraf=require(_0x7147('0x5'));var db=require(_0x7147('0x6'))['db'];var dbH=require('../../mysqldb')[_0x7147('0x7')];var logger=require(_0x7147('0x8'))(_0x7147('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x7147('0xa')][0x2]);var QUERY=process[_0x7147('0xa')][0x3];var PATH=process[_0x7147('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x538d62,_0x5207ba){var _0x5a1a99={'status':_0x538d62};var _0x5c0e1a={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5207ba){_0x5a1a99[_0x7147('0xb')]=_0x5207ba;}return db[_0x7147('0xc')]['update'](_0x5a1a99,_0x5c0e1a);}function main(){var _0x263d6a=0x1388;var _0x110dd9;logger[_0x7147('0xd')](util['format'](_0x7147('0xe'),EXTRACTED_REPORT_ID,'XLSX'));return db['Setting'][_0x7147('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x7147('0x10')]})[_0x7147('0x11')](function(_0x50e05e){if(_0x50e05e){_0x110dd9=_0x50e05e;_0x263d6a=_0x110dd9['splitSizeXlsx']||0x1388;}})[_0x7147('0x11')](function(){return dbH[_0x7147('0x12')][_0x7147('0x13')](util[_0x7147('0x14')](_0x7147('0x15'),QUERY),{'type':dbH['sequelize'][_0x7147('0x16')][_0x7147('0x17')]});})[_0x7147('0x11')](function(_0xd3fabf){if(!_0xd3fabf[0x0][_0x7147('0x18')]){return analyticExtractedReport(_0x7147('0x19'));}var _0x32fdc9=[];var _0x4ee0bd=0x0;if(_0x110dd9[_0x7147('0x1a')]){if(_0xd3fabf&&_0xd3fabf[_0x7147('0x1b')]){var _0x1226a9=_['range'](_0xd3fabf[0x0][_0x7147('0x18')]/_0x263d6a);var _0x4ae0d3=Number['isInteger'](_0xd3fabf[0x0][_0x7147('0x18')]/_0x263d6a)?_0xd3fabf[0x0][_0x7147('0x18')]%_0x263d6a:0x0;_0x1226a9[_0x7147('0x1c')](function(_0x1f5044){if(_0x1f5044>0x0){_0x4ee0bd+=_0x263d6a;}_0x32fdc9[_0x7147('0x1d')](dbH[_0x7147('0x12')][_0x7147('0x13')](util['format'](_0x7147('0x1e'),QUERY,_0x263d6a,_0x4ee0bd),{'type':dbH[_0x7147('0x12')]['QueryTypes'][_0x7147('0x17')]}));});if(_0x4ae0d3>0x0){_0x4ee0bd+=_0x263d6a;_0x32fdc9[_0x7147('0x1d')](dbH[_0x7147('0x12')][_0x7147('0x13')](util[_0x7147('0x14')](_0x7147('0x1e'),QUERY,_0x4ae0d3,_0x4ee0bd),{'type':dbH[_0x7147('0x12')]['QueryTypes'][_0x7147('0x17')]}));}}}else{_0x32fdc9[_0x7147('0x1d')](dbH[_0x7147('0x12')][_0x7147('0x13')](QUERY,{'type':dbH[_0x7147('0x12')][_0x7147('0x16')][_0x7147('0x17')]}));}var _0x2b8e0a=path[_0x7147('0x1f')](PATH);var _0x5ecc40=path[_0x7147('0x20')](PATH,_0x7147('0x21'));var _0x36c126=_0x110dd9['split']&&_0x32fdc9[_0x7147('0x1b')]>0x1;var _0x2092ad=[];if(!fs[_0x7147('0x22')](path[_0x7147('0x23')](_0x2b8e0a,_0x5ecc40))&&_0x36c126){fs[_0x7147('0x24')](path[_0x7147('0x23')](_0x2b8e0a,_0x5ecc40));}return BPromise[_0x7147('0x25')](_0x32fdc9,function(_0x4f6ca4){_0x2092ad[_0x7147('0x1d')](_0x4f6ca4);})[_0x7147('0x11')](function(){for(var _0x34cb07=0x0;_0x34cb07<_0x2092ad[_0x7147('0x1b')];_0x34cb07+=0x1){var _0x30c86a;var _0xe5ff17=_0x2092ad[_0x34cb07];if(_0x36c126){_0x30c86a=path[_0x7147('0x23')](_0x2b8e0a,_0x5ecc40,util[_0x7147('0x14')](_0x7147('0x26'),_0x5ecc40,_0x34cb07,_0x7147('0x27')));}else{_0x30c86a=path[_0x7147('0x23')](_0x2b8e0a,util[_0x7147('0x14')](_0x7147('0x28'),_0x5ecc40,_0x7147('0x27')));}fs[_0x7147('0x29')](_0x30c86a,json2xls(_0xe5ff17),'binary');}})['then'](function(){if(_0x36c126){return new Promise(function(_0x4c11bc){zipdir(path['join'](_0x2b8e0a,_0x5ecc40),{'saveTo':path[_0x7147('0x23')](_0x2b8e0a,util[_0x7147('0x14')](_0x7147('0x28'),_0x5ecc40,_0x7147('0x2a')))},function(_0x5eb689,_0x11d37c){rimraf(path[_0x7147('0x23')](_0x2b8e0a,_0x5ecc40),function(){});_0x4c11bc(_0x7147('0x2b'));});});}})[_0x7147('0x11')](function(){logger['info'](util[_0x7147('0x14')](_0x7147('0x2c'),EXTRACTED_REPORT_ID,_0x7147('0x2d')));return analyticExtractedReport(_0x7147('0x2e'),_0x36c126?util['format'](_0x7147('0x28'),_0x5ecc40,_0x36c126?_0x7147('0x2a'):'xlsx'):null);});})[_0x7147('0x2f')](function(_0x498652){logger[_0x7147('0xd')](util[_0x7147('0x14')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x7147('0x2d')),util[_0x7147('0x30')](_0x498652,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x7147('0x31'));})[_0x7147('0x32')](function(){process['exit'](EXIT_CODE);});}main();