71c54e0364dfdca44222097ebd78396c85ddfd69
[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 _0x43b1=['argv','savename','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','splitSizeXlsx','then','sequelize','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','length','range','isInteger','forEach','query','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','.xlsx','split','existsSync','join','mkdirSync','each','push','%s%d.%s','%s.%s','xlsx','writeFileSync','binary','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','util','path','lodash','bluebird','zip-dir','../../mysqldb','dbH','../../config/logger'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x43b1,0x94));var _0x143b=function(_0x301efc,_0x1ada57){_0x301efc=_0x301efc-0x0;var _0x199cb9=_0x43b1[_0x301efc];return _0x199cb9;};'use strict';var util=require(_0x143b('0x0'));var path=require(_0x143b('0x1'));var _=require(_0x143b('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x143b('0x3'));var zipdir=require(_0x143b('0x4'));var rimraf=require('rimraf');var db=require(_0x143b('0x5'))['db'];var dbH=require(_0x143b('0x5'))[_0x143b('0x6')];var logger=require(_0x143b('0x7'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x143b('0x8')][0x2]);var QUERY=process[_0x143b('0x8')][0x3];var PATH=process[_0x143b('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x1c62b7,_0x4cae90){var _0x15b9fd={'status':_0x1c62b7};var _0x37fad1={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x4cae90){_0x15b9fd[_0x143b('0x9')]=_0x4cae90;}return db['AnalyticExtractedReport'][_0x143b('0xa')](_0x15b9fd,_0x37fad1);}function main(){var _0x398a98=0x1388;var _0x22c78b;logger[_0x143b('0xb')](util[_0x143b('0xc')](_0x143b('0xd'),EXTRACTED_REPORT_ID,_0x143b('0xe')));return db[_0x143b('0xf')][_0x143b('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x143b('0x11')]})[_0x143b('0x12')](function(_0x4bda6d){if(_0x4bda6d){_0x22c78b=_0x4bda6d;_0x398a98=_0x22c78b[_0x143b('0x11')]||0x1388;}})[_0x143b('0x12')](function(){return dbH[_0x143b('0x13')]['query'](util[_0x143b('0xc')](_0x143b('0x14'),QUERY),{'type':dbH['sequelize'][_0x143b('0x15')][_0x143b('0x16')]});})[_0x143b('0x12')](function(_0x10ce95){if(!_0x10ce95[0x0][_0x143b('0x17')]){return analyticExtractedReport('Empty');}var _0x345345=[];var _0x178ca0=0x0;if(_0x22c78b['split']){if(_0x10ce95&&_0x10ce95[_0x143b('0x18')]){var _0x33fbe3=_[_0x143b('0x19')](_0x10ce95[0x0][_0x143b('0x17')]/_0x398a98);var _0x3a0baa=Number[_0x143b('0x1a')](_0x10ce95[0x0][_0x143b('0x17')]/_0x398a98)?_0x10ce95[0x0]['num']%_0x398a98:0x0;_0x33fbe3[_0x143b('0x1b')](function(_0x270f89){if(_0x270f89>0x0){_0x178ca0+=_0x398a98;}_0x345345['push'](dbH['sequelize'][_0x143b('0x1c')](util[_0x143b('0xc')](_0x143b('0x1d'),QUERY,_0x398a98,_0x178ca0),{'type':dbH[_0x143b('0x13')]['QueryTypes'][_0x143b('0x16')]}));});if(_0x3a0baa>0x0){_0x178ca0+=_0x398a98;_0x345345['push'](dbH[_0x143b('0x13')][_0x143b('0x1c')](util['format'](_0x143b('0x1d'),QUERY,_0x3a0baa,_0x178ca0),{'type':dbH[_0x143b('0x13')][_0x143b('0x15')][_0x143b('0x16')]}));}}}else{_0x345345['push'](dbH[_0x143b('0x13')][_0x143b('0x1c')](QUERY,{'type':dbH[_0x143b('0x13')][_0x143b('0x15')]['SELECT']}));}var _0x1b5cfb=path[_0x143b('0x1e')](PATH);var _0x3b7e9a=path['basename'](PATH,_0x143b('0x1f'));var _0x675bcf=_0x22c78b[_0x143b('0x20')]&&_0x345345[_0x143b('0x18')]>0x1;var _0x4abde2=[];if(!fs[_0x143b('0x21')](path[_0x143b('0x22')](_0x1b5cfb,_0x3b7e9a))&&_0x675bcf){fs[_0x143b('0x23')](path[_0x143b('0x22')](_0x1b5cfb,_0x3b7e9a));}return BPromise[_0x143b('0x24')](_0x345345,function(_0x358a85){_0x4abde2[_0x143b('0x25')](_0x358a85);})['then'](function(){for(var _0x1918c6=0x0;_0x1918c6<_0x4abde2[_0x143b('0x18')];_0x1918c6+=0x1){var _0x540dcd;var _0x1e7e00=_0x4abde2[_0x1918c6];if(_0x675bcf){_0x540dcd=path[_0x143b('0x22')](_0x1b5cfb,_0x3b7e9a,util[_0x143b('0xc')](_0x143b('0x26'),_0x3b7e9a,_0x1918c6,'xlsx'));}else{_0x540dcd=path['join'](_0x1b5cfb,util[_0x143b('0xc')](_0x143b('0x27'),_0x3b7e9a,_0x143b('0x28')));}fs[_0x143b('0x29')](_0x540dcd,json2xls(_0x1e7e00),_0x143b('0x2a'));}})[_0x143b('0x12')](function(){if(_0x675bcf){return new Promise(function(_0x4f4d82){zipdir(path[_0x143b('0x22')](_0x1b5cfb,_0x3b7e9a),{'saveTo':path[_0x143b('0x22')](_0x1b5cfb,util['format'](_0x143b('0x27'),_0x3b7e9a,'zip'))},function(_0x34649e,_0x5d8e52){rimraf(path[_0x143b('0x22')](_0x1b5cfb,_0x3b7e9a),function(){});_0x4f4d82(_0x143b('0x2b'));});});}})[_0x143b('0x12')](function(){logger[_0x143b('0xb')](util[_0x143b('0xc')](_0x143b('0x2c'),EXTRACTED_REPORT_ID,_0x143b('0xe')));return analyticExtractedReport(_0x143b('0x2d'),_0x675bcf?util[_0x143b('0xc')](_0x143b('0x27'),_0x3b7e9a,_0x675bcf?'zip':_0x143b('0x28')):null);});})[_0x143b('0x2e')](function(_0x42465b){logger['info'](util[_0x143b('0xc')](_0x143b('0x2f'),EXTRACTED_REPORT_ID,_0x143b('0xe')),util[_0x143b('0x30')](_0x42465b,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x143b('0x31'));})[_0x143b('0x32')](function(){process[_0x143b('0x33')](EXIT_CODE);});}main();