75eaf699c598341b0ba88866856b0046262457b2
[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 _0x4fdb=['XLSX','Setting','find','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','length','push','dirname','basename','.xlsx','existsSync','join','xlsx','%s.%s','binary','zip','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','util','path','lodash','json2xls','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format'];(function(_0x31cb5f,_0x2df766){var _0x586042=function(_0x53c807){while(--_0x53c807){_0x31cb5f['push'](_0x31cb5f['shift']());}};_0x586042(++_0x2df766);}(_0x4fdb,0xa3));var _0xb4fd=function(_0x197f36,_0x1e2e51){_0x197f36=_0x197f36-0x0;var _0x5c4079=_0x4fdb[_0x197f36];return _0x5c4079;};'use strict';var util=require(_0xb4fd('0x0'));var path=require(_0xb4fd('0x1'));var _=require(_0xb4fd('0x2'));var fs=require('fs');var json2xls=require(_0xb4fd('0x3'));var BPromise=require('bluebird');var zipdir=require(_0xb4fd('0x4'));var rimraf=require(_0xb4fd('0x5'));var db=require(_0xb4fd('0x6'))['db'];var dbH=require('../../mysqldb')[_0xb4fd('0x7')];var logger=require(_0xb4fd('0x8'))(_0xb4fd('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0xb4fd('0xa')][0x2]);var QUERY=process[_0xb4fd('0xa')][0x3];var PATH=process[_0xb4fd('0xa')][0x4];function analyticExtractedReport(_0x3e295a,_0x538085){var _0x53f71e={'status':_0x3e295a};var _0x25809e={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x538085){_0x53f71e[_0xb4fd('0xb')]=_0x538085;}return db[_0xb4fd('0xc')][_0xb4fd('0xd')](_0x53f71e,_0x25809e);}function main(){var _0x350a7c=0x1388;var _0x1b01b8;logger[_0xb4fd('0xe')](util[_0xb4fd('0xf')](_0xb4fd('0x10'),EXTRACTED_REPORT_ID,_0xb4fd('0x11')));return db[_0xb4fd('0x12')][_0xb4fd('0x13')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xb4fd('0x14')]})['then'](function(_0x2188a7){if(_0x2188a7){_0x1b01b8=_0x2188a7;_0x350a7c=_0x1b01b8[_0xb4fd('0x14')]||0x1388;}})[_0xb4fd('0x15')](function(){return dbH[_0xb4fd('0x16')][_0xb4fd('0x17')](util[_0xb4fd('0xf')](_0xb4fd('0x18'),QUERY),{'type':dbH[_0xb4fd('0x16')][_0xb4fd('0x19')][_0xb4fd('0x1a')]});})[_0xb4fd('0x15')](function(_0x2ff205){if(!_0x2ff205[0x0][_0xb4fd('0x1b')]){return analyticExtractedReport('Empty');}var _0x2a1ff6=[];var _0x38b46f=0x0;var _0x27abbd=!![];if(_0x1b01b8['split']){if(_0x2ff205&&_0x2ff205[_0xb4fd('0x1c')]){var _0x4aaba8=_0x2ff205[0x0][_0xb4fd('0x1b')]%(_0x38b46f+_0x350a7c);for(;_0x27abbd;_0x38b46f+=_0x350a7c,_0x4aaba8=_0x2ff205[0x0]['num']%(_0x38b46f+_0x350a7c)){if(_0x4aaba8==0x0||_0x4aaba8==_0x2ff205[0x0][_0xb4fd('0x1b')]){_0x27abbd=![];}_0x2a1ff6[_0xb4fd('0x1d')](dbH[_0xb4fd('0x16')]['query'](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x350a7c,_0x38b46f),{'type':dbH[_0xb4fd('0x16')]['QueryTypes']['SELECT']}));}}}else{_0x2a1ff6['push'](dbH[_0xb4fd('0x16')][_0xb4fd('0x17')](QUERY,{'type':dbH[_0xb4fd('0x16')][_0xb4fd('0x19')][_0xb4fd('0x1a')]}));}var _0x9e9b09=path[_0xb4fd('0x1e')](PATH);var _0xc535b3=path[_0xb4fd('0x1f')](PATH,_0xb4fd('0x20'));var _0x54385c=_0x1b01b8['split']&&_0x2a1ff6[_0xb4fd('0x1c')]>0x1;var _0x3dfa25=[];if(!fs[_0xb4fd('0x21')](path[_0xb4fd('0x22')](_0x9e9b09,_0xc535b3))&&_0x54385c){fs['mkdirSync'](path[_0xb4fd('0x22')](_0x9e9b09,_0xc535b3));}return BPromise['each'](_0x2a1ff6,function(_0x205a89){_0x3dfa25[_0xb4fd('0x1d')](_0x205a89);})[_0xb4fd('0x15')](function(){for(var _0x22fc27=0x0;_0x22fc27<_0x3dfa25[_0xb4fd('0x1c')];_0x22fc27+=0x1){var _0x2e9e2c;var _0x2ccca9=_0x3dfa25[_0x22fc27];if(_0x54385c){_0x2e9e2c=path[_0xb4fd('0x22')](_0x9e9b09,_0xc535b3,util[_0xb4fd('0xf')]('%s%d.%s',_0xc535b3,_0x22fc27,_0xb4fd('0x23')));}else{_0x2e9e2c=path[_0xb4fd('0x22')](_0x9e9b09,util[_0xb4fd('0xf')](_0xb4fd('0x24'),_0xc535b3,_0xb4fd('0x23')));}fs['writeFileSync'](_0x2e9e2c,json2xls(_0x2ccca9),_0xb4fd('0x25'));}})[_0xb4fd('0x15')](function(){if(_0x54385c){zipdir(path[_0xb4fd('0x22')](_0x9e9b09,_0xc535b3),{'saveTo':path['join'](_0x9e9b09,util['format']('%s.%s',_0xc535b3,_0xb4fd('0x26')))},function(_0x587ba1,_0x1f8e5e){});rimraf(path[_0xb4fd('0x22')](_0x9e9b09,_0xc535b3),function(){});}})[_0xb4fd('0x15')](function(){logger['info'](util[_0xb4fd('0xf')](_0xb4fd('0x27'),EXTRACTED_REPORT_ID,_0xb4fd('0x11')));return analyticExtractedReport(_0xb4fd('0x28'),_0x54385c?util[_0xb4fd('0xf')](_0xb4fd('0x24'),_0xc535b3,_0x54385c?_0xb4fd('0x26'):_0xb4fd('0x23')):null);});})[_0xb4fd('0x29')](function(_0x4f5921){logger[_0xb4fd('0xe')](util[_0xb4fd('0xf')](_0xb4fd('0x2a'),EXTRACTED_REPORT_ID,'XLSX'),util[_0xb4fd('0x2b')](_0x4f5921,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xb4fd('0x2c'));});}main();