63d98ae9c61e898f1f994c286ce60da6a75082c1
[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 _0xaef4=['catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','util','path','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','split','splitSizeXlsx','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','length','range','sequelize','push','basename','.xlsx','existsSync','mkdirSync','join','xlsx','%s.%s','binary','zip','zip\x20finished','Completed'];(function(_0x4a4d8f,_0x13aae4){var _0xf1b3d5=function(_0x1c705c){while(--_0x1c705c){_0x4a4d8f['push'](_0x4a4d8f['shift']());}};_0xf1b3d5(++_0x13aae4);}(_0xaef4,0xfb));var _0x4aef=function(_0x2ad4df,_0x5d12f0){_0x2ad4df=_0x2ad4df-0x0;var _0x4d91e9=_0xaef4[_0x2ad4df];return _0x4d91e9;};'use strict';var util=require(_0x4aef('0x0'));var path=require(_0x4aef('0x1'));var _=require(_0x4aef('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x4aef('0x3'));var zipdir=require(_0x4aef('0x4'));var rimraf=require(_0x4aef('0x5'));var db=require(_0x4aef('0x6'))['db'];var dbH=require('../../mysqldb')[_0x4aef('0x7')];var logger=require(_0x4aef('0x8'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x4aef('0x9')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x4aef('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x475917,_0x1e863a){var _0x2f594c={'status':_0x475917};var _0x1dee01={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1e863a){_0x2f594c[_0x4aef('0xa')]=_0x1e863a;}return db[_0x4aef('0xb')][_0x4aef('0xc')](_0x2f594c,_0x1dee01);}function main(){var _0x1f6b61=0x1388;var _0x3da5b8;logger[_0x4aef('0xd')](util[_0x4aef('0xe')](_0x4aef('0xf'),EXTRACTED_REPORT_ID,_0x4aef('0x10')));return db[_0x4aef('0x11')][_0x4aef('0x12')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4aef('0x13'),'splitSizeXlsx']})['then'](function(_0x34a796){if(_0x34a796){_0x3da5b8=_0x34a796;_0x1f6b61=_0x3da5b8[_0x4aef('0x14')]||0x1388;}})[_0x4aef('0x15')](function(){return dbH['sequelize'][_0x4aef('0x16')](util['format'](_0x4aef('0x17'),QUERY),{'type':dbH['sequelize'][_0x4aef('0x18')][_0x4aef('0x19')]});})[_0x4aef('0x15')](function(_0x246c2d){if(!_0x246c2d[0x0][_0x4aef('0x1a')]){return analyticExtractedReport(_0x4aef('0x1b'));}var _0x3ee38c=[];var _0x2a9a7f=0x0;if(_0x3da5b8[_0x4aef('0x13')]){if(_0x246c2d&&_0x246c2d[_0x4aef('0x1c')]){var _0x4b2afc=_[_0x4aef('0x1d')](_0x246c2d[0x0][_0x4aef('0x1a')]/_0x1f6b61);var _0x48d6bc=Number['isInteger'](_0x246c2d[0x0]['num']/_0x1f6b61)?_0x246c2d[0x0][_0x4aef('0x1a')]%_0x1f6b61:0x0;_0x4b2afc['forEach'](function(_0x57dc6e){if(_0x57dc6e>0x0){_0x2a9a7f+=_0x1f6b61;}_0x3ee38c['push'](dbH[_0x4aef('0x1e')][_0x4aef('0x16')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1f6b61,_0x2a9a7f),{'type':dbH['sequelize'][_0x4aef('0x18')]['SELECT']}));});if(_0x48d6bc>0x0){_0x2a9a7f+=_0x1f6b61;_0x3ee38c['push'](dbH[_0x4aef('0x1e')]['query'](util[_0x4aef('0xe')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x48d6bc,_0x2a9a7f),{'type':dbH['sequelize'][_0x4aef('0x18')][_0x4aef('0x19')]}));}}}else{_0x3ee38c[_0x4aef('0x1f')](dbH[_0x4aef('0x1e')]['query'](QUERY,{'type':dbH['sequelize']['QueryTypes'][_0x4aef('0x19')]}));}var _0x3d7f7f=path['dirname'](PATH);var _0x3e7842=path[_0x4aef('0x20')](PATH,_0x4aef('0x21'));var _0x474122=_0x3da5b8[_0x4aef('0x13')]&&_0x3ee38c['length']>0x1;var _0x5f3960=[];if(!fs[_0x4aef('0x22')](path['join'](_0x3d7f7f,_0x3e7842))&&_0x474122){fs[_0x4aef('0x23')](path[_0x4aef('0x24')](_0x3d7f7f,_0x3e7842));}return BPromise['each'](_0x3ee38c,function(_0x5b16b8){_0x5f3960[_0x4aef('0x1f')](_0x5b16b8);})[_0x4aef('0x15')](function(){for(var _0x3b959c=0x0;_0x3b959c<_0x5f3960['length'];_0x3b959c+=0x1){var _0x35b29e;var _0x39501c=_0x5f3960[_0x3b959c];if(_0x474122){_0x35b29e=path['join'](_0x3d7f7f,_0x3e7842,util[_0x4aef('0xe')]('%s%d.%s',_0x3e7842,_0x3b959c,_0x4aef('0x25')));}else{_0x35b29e=path[_0x4aef('0x24')](_0x3d7f7f,util['format'](_0x4aef('0x26'),_0x3e7842,_0x4aef('0x25')));}fs['writeFileSync'](_0x35b29e,json2xls(_0x39501c),_0x4aef('0x27'));}})[_0x4aef('0x15')](function(){if(_0x474122){return new Promise(function(_0x437e8f){zipdir(path[_0x4aef('0x24')](_0x3d7f7f,_0x3e7842),{'saveTo':path[_0x4aef('0x24')](_0x3d7f7f,util[_0x4aef('0xe')](_0x4aef('0x26'),_0x3e7842,_0x4aef('0x28')))},function(_0x1dc2c9,_0x9620d1){rimraf(path[_0x4aef('0x24')](_0x3d7f7f,_0x3e7842),function(){});_0x437e8f(_0x4aef('0x29'));});});}})['then'](function(){logger['info'](util[_0x4aef('0xe')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x4aef('0x10')));return analyticExtractedReport(_0x4aef('0x2a'),_0x474122?util[_0x4aef('0xe')](_0x4aef('0x26'),_0x3e7842,_0x474122?_0x4aef('0x28'):'xlsx'):null);});})[_0x4aef('0x2b')](function(_0x4b1a5e){logger[_0x4aef('0xd')](util[_0x4aef('0xe')](_0x4aef('0x2c'),EXTRACTED_REPORT_ID,'XLSX'),util[_0x4aef('0x2d')](_0x4b1a5e,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x4aef('0x2e'));})[_0x4aef('0x2f')](function(){process[_0x4aef('0x30')](EXIT_CODE);});}main();