cc5feceabb4c1af4c1114018cc3a41ad6e381067
[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 _0xf39e=['split','splitSizeXlsx','then','query','sequelize','QueryTypes','SELECT','num','Empty','length','push','dirname','basename','.xlsx','existsSync','join','each','xlsx','%s.%s','writeFileSync','binary','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','XLSX','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','util','path','lodash','bluebird','rimraf','../../mysqldb','../../config/logger','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','find'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0xf39e,0x18b));var _0xef39=function(_0xe3c832,_0x4e54c0){_0xe3c832=_0xe3c832-0x0;var _0x4cbafc=_0xf39e[_0xe3c832];return _0x4cbafc;};'use strict';var util=require(_0xef39('0x0'));var path=require(_0xef39('0x1'));var _=require(_0xef39('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0xef39('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0xef39('0x4'));var db=require(_0xef39('0x5'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0xef39('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xef39('0x7')][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];function analyticExtractedReport(_0x35b910,_0x1780c7){var _0x21579d={'status':_0x35b910};var _0x3ea60e={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1780c7){_0x21579d[_0xef39('0x8')]=_0x1780c7;}return db[_0xef39('0x9')][_0xef39('0xa')](_0x21579d,_0x3ea60e);}function main(){var _0x475324=0x1388;var _0x4f5bf0;logger[_0xef39('0xb')](util[_0xef39('0xc')](_0xef39('0xd'),EXTRACTED_REPORT_ID,'XLSX'));return db['Setting'][_0xef39('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xef39('0xf'),_0xef39('0x10')]})['then'](function(_0x57a6af){if(_0x57a6af){_0x4f5bf0=_0x57a6af;_0x475324=_0x4f5bf0[_0xef39('0x10')]||0x1388;}})[_0xef39('0x11')](function(){return dbH['sequelize'][_0xef39('0x12')](util[_0xef39('0xc')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xef39('0x13')][_0xef39('0x14')][_0xef39('0x15')]});})[_0xef39('0x11')](function(_0x433911){if(!_0x433911[0x0][_0xef39('0x16')]){return analyticExtractedReport(_0xef39('0x17'));}var _0x4da077=[];var _0x463a62=0x0;var _0x3d81a6=!![];if(_0x4f5bf0['split']){if(_0x433911&&_0x433911[_0xef39('0x18')]){var _0x51ccb6=_0x433911[0x0][_0xef39('0x16')]%(_0x463a62+_0x475324);for(;_0x3d81a6;_0x463a62+=_0x475324,_0x51ccb6=_0x433911[0x0][_0xef39('0x16')]%(_0x463a62+_0x475324)){if(_0x51ccb6==0x0||_0x51ccb6==_0x433911[0x0][_0xef39('0x16')]){_0x3d81a6=![];}_0x4da077[_0xef39('0x19')](dbH[_0xef39('0x13')]['query'](util[_0xef39('0xc')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x475324,_0x463a62),{'type':dbH[_0xef39('0x13')][_0xef39('0x14')][_0xef39('0x15')]}));}}}else{_0x4da077[_0xef39('0x19')](dbH[_0xef39('0x13')][_0xef39('0x12')](QUERY,{'type':dbH[_0xef39('0x13')]['QueryTypes'][_0xef39('0x15')]}));}var _0x59ec1e=path[_0xef39('0x1a')](PATH);var _0x3e879b=path[_0xef39('0x1b')](PATH,_0xef39('0x1c'));var _0x24c1c1=_0x4f5bf0[_0xef39('0xf')]&&_0x4da077[_0xef39('0x18')]>0x1;var _0x56bb62=[];if(!fs[_0xef39('0x1d')](path[_0xef39('0x1e')](_0x59ec1e,_0x3e879b))&&_0x24c1c1){fs['mkdirSync'](path[_0xef39('0x1e')](_0x59ec1e,_0x3e879b));}return BPromise[_0xef39('0x1f')](_0x4da077,function(_0x5a6b4e){_0x56bb62[_0xef39('0x19')](_0x5a6b4e);})[_0xef39('0x11')](function(){for(var _0x1d7416=0x0;_0x1d7416<_0x56bb62[_0xef39('0x18')];_0x1d7416+=0x1){var _0x22faf8;var _0x676ad=_0x56bb62[_0x1d7416];if(_0x24c1c1){_0x22faf8=path['join'](_0x59ec1e,_0x3e879b,util[_0xef39('0xc')]('%s%d.%s',_0x3e879b,_0x1d7416,_0xef39('0x20')));}else{_0x22faf8=path['join'](_0x59ec1e,util['format'](_0xef39('0x21'),_0x3e879b,_0xef39('0x20')));}fs[_0xef39('0x22')](_0x22faf8,json2xls(_0x676ad),_0xef39('0x23'));}})[_0xef39('0x11')](function(){if(_0x24c1c1){zipdir(path[_0xef39('0x1e')](_0x59ec1e,_0x3e879b),{'saveTo':path[_0xef39('0x1e')](_0x59ec1e,util['format']('%s.%s',_0x3e879b,'zip'))},function(_0x2a1a93,_0x8bc040){});rimraf(path[_0xef39('0x1e')](_0x59ec1e,_0x3e879b),function(){});}})[_0xef39('0x11')](function(){logger['info'](util[_0xef39('0xc')](_0xef39('0x24'),EXTRACTED_REPORT_ID,_0xef39('0x25')));return analyticExtractedReport(_0xef39('0x26'),_0x24c1c1?util[_0xef39('0xc')](_0xef39('0x21'),_0x3e879b,_0x24c1c1?'zip':_0xef39('0x20')):null);});})['catch'](function(_0x3b7b4e){logger[_0xef39('0xb')](util[_0xef39('0xc')](_0xef39('0x27'),EXTRACTED_REPORT_ID,_0xef39('0x25')),util['inspect'](_0x3b7b4e,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xef39('0x28'));});}main();