6e3421642fa8f5041bab7c72b7ac625bfb415c34
[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 _0x1000=['QueryTypes','dirname','basename','.xlsx','length','mkdirSync','each','%s%d.%s','join','%s.%s','xlsx','writeFileSync','binary','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','util','path','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','split','splitSizeXlsx','sequelize','query','format','SELECT','then','num','Empty','push','%s\x20limit\x20%d\x20OFFSET\x20%d'];(function(_0xc5caf7,_0xc6d31b){var _0x509351=function(_0x531902){while(--_0x531902){_0xc5caf7['push'](_0xc5caf7['shift']());}};_0x509351(++_0xc6d31b);}(_0x1000,0x1e8));var _0x0100=function(_0xa0ffd4,_0x534d12){_0xa0ffd4=_0xa0ffd4-0x0;var _0x335527=_0x1000[_0xa0ffd4];return _0x335527;};'use strict';var util=require(_0x0100('0x0'));var path=require(_0x0100('0x1'));var _=require(_0x0100('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x0100('0x3'));var zipdir=require(_0x0100('0x4'));var rimraf=require(_0x0100('0x5'));var db=require(_0x0100('0x6'))['db'];var dbH=require(_0x0100('0x6'))[_0x0100('0x7')];var logger=require(_0x0100('0x8'))(_0x0100('0x9'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x0100('0xa')][0x3];var PATH=process[_0x0100('0xa')][0x4];function analyticExtractedReport(_0x486c69,_0x31ba5d){var _0x287c21={'status':_0x486c69};var _0x37d07c={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x31ba5d){_0x287c21[_0x0100('0xb')]=_0x31ba5d;}return db[_0x0100('0xc')]['update'](_0x287c21,_0x37d07c);}function main(){var _0xe8b55e=0x1388;var _0x12332f;logger[_0x0100('0xd')](util['format'](_0x0100('0xe'),EXTRACTED_REPORT_ID,_0x0100('0xf')));return db[_0x0100('0x10')][_0x0100('0x11')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x0100('0x12'),_0x0100('0x13')]})['then'](function(_0x59534a){if(_0x59534a){_0x12332f=_0x59534a;_0xe8b55e=_0x12332f[_0x0100('0x13')]||0x1388;}})['then'](function(){return dbH[_0x0100('0x14')][_0x0100('0x15')](util[_0x0100('0x16')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x0100('0x14')]['QueryTypes'][_0x0100('0x17')]});})[_0x0100('0x18')](function(_0xe4f142){if(!_0xe4f142[0x0][_0x0100('0x19')]){return analyticExtractedReport(_0x0100('0x1a'));}var _0x1a649a=[];var _0x17725b=0x0;var _0x512723=!![];if(_0x12332f[_0x0100('0x12')]){if(_0xe4f142&&_0xe4f142['length']){var _0x2b683c=_0xe4f142[0x0][_0x0100('0x19')]%(_0x17725b+_0xe8b55e);for(;_0x512723;_0x17725b+=_0xe8b55e,_0x2b683c=_0xe4f142[0x0][_0x0100('0x19')]%(_0x17725b+_0xe8b55e)){if(_0x2b683c==0x0||_0x2b683c==_0xe4f142[0x0]['num']){_0x512723=![];}_0x1a649a[_0x0100('0x1b')](dbH[_0x0100('0x14')][_0x0100('0x15')](util[_0x0100('0x16')](_0x0100('0x1c'),QUERY,_0xe8b55e,_0x17725b),{'type':dbH[_0x0100('0x14')]['QueryTypes']['SELECT']}));}}}else{_0x1a649a[_0x0100('0x1b')](dbH[_0x0100('0x14')][_0x0100('0x15')](QUERY,{'type':dbH[_0x0100('0x14')][_0x0100('0x1d')][_0x0100('0x17')]}));}var _0x44d8ee=path[_0x0100('0x1e')](PATH);var _0x7d6da8=path[_0x0100('0x1f')](PATH,_0x0100('0x20'));var _0x2b15c1=_0x12332f[_0x0100('0x12')]&&_0x1a649a[_0x0100('0x21')]>0x1;var _0x4f41e9=[];if(!fs['existsSync'](path['join'](_0x44d8ee,_0x7d6da8))&&_0x2b15c1){fs[_0x0100('0x22')](path['join'](_0x44d8ee,_0x7d6da8));}return BPromise[_0x0100('0x23')](_0x1a649a,function(_0xac00e9){_0x4f41e9[_0x0100('0x1b')](_0xac00e9);})[_0x0100('0x18')](function(){for(var _0x423b85=0x0;_0x423b85<_0x4f41e9[_0x0100('0x21')];_0x423b85+=0x1){var _0x2042f5;var _0x3c529f=_0x4f41e9[_0x423b85];if(_0x2b15c1){_0x2042f5=path['join'](_0x44d8ee,_0x7d6da8,util['format'](_0x0100('0x24'),_0x7d6da8,_0x423b85,'xlsx'));}else{_0x2042f5=path[_0x0100('0x25')](_0x44d8ee,util[_0x0100('0x16')](_0x0100('0x26'),_0x7d6da8,_0x0100('0x27')));}fs[_0x0100('0x28')](_0x2042f5,json2xls(_0x3c529f),_0x0100('0x29'));}})[_0x0100('0x18')](function(){if(_0x2b15c1){zipdir(path[_0x0100('0x25')](_0x44d8ee,_0x7d6da8),{'saveTo':path[_0x0100('0x25')](_0x44d8ee,util[_0x0100('0x16')](_0x0100('0x26'),_0x7d6da8,_0x0100('0x2a')))},function(_0x14f155,_0x488cbb){});rimraf(path[_0x0100('0x25')](_0x44d8ee,_0x7d6da8),function(){});}})[_0x0100('0x18')](function(){logger[_0x0100('0xd')](util['format'](_0x0100('0x2b'),EXTRACTED_REPORT_ID,_0x0100('0xf')));return analyticExtractedReport('Completed',_0x2b15c1?util[_0x0100('0x16')]('%s.%s',_0x7d6da8,_0x2b15c1?_0x0100('0x2a'):'xlsx'):null);});})[_0x0100('0x2c')](function(_0x1933c4){logger[_0x0100('0xd')](util[_0x0100('0x16')](_0x0100('0x2d'),EXTRACTED_REPORT_ID,_0x0100('0xf')),util['inspect'](_0x1933c4,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x0100('0x2e'));});}main();