42b477fdde84449e21cb6a08ae6df6d7c83c2cbc
[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 _0x8d02=['analytics','argv','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','length','num','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','existsSync','mkdirSync','each','join','%s%d.%s','%s.%s','binary','zip','zip\x20finished','Completed','xlsx','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','inspect','Failed','exit','util','path','json2xls','bluebird','zip-dir','rimraf','../../mysqldb'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x8d02,0x134));var _0x28d0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8d02[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x28d0('0x0'));var path=require(_0x28d0('0x1'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0x28d0('0x2'));var BPromise=require(_0x28d0('0x3'));var zipdir=require(_0x28d0('0x4'));var rimraf=require(_0x28d0('0x5'));var db=require(_0x28d0('0x6'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require('../../config/logger')(_0x28d0('0x7'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x28d0('0x8')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x4bc63e,_0x58f343){var _0x3ef5fb={'status':_0x4bc63e};var _0x58d8d2={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x58f343){_0x3ef5fb['savename']=_0x58f343;}return db[_0x28d0('0x9')]['update'](_0x3ef5fb,_0x58d8d2);}function main(){var _0x57f8ac=0x1388;var _0xee9c43;logger[_0x28d0('0xa')](util[_0x28d0('0xb')](_0x28d0('0xc'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0x28d0('0xd')][_0x28d0('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x28d0('0xf'),_0x28d0('0x10')]})['then'](function(_0x2aa7ac){if(_0x2aa7ac){_0xee9c43=_0x2aa7ac;_0x57f8ac=_0xee9c43[_0x28d0('0x10')]||0x1388;}})[_0x28d0('0x11')](function(){return dbH[_0x28d0('0x12')][_0x28d0('0x13')](util[_0x28d0('0xb')](_0x28d0('0x14'),QUERY),{'type':dbH['sequelize'][_0x28d0('0x15')][_0x28d0('0x16')]});})[_0x28d0('0x11')](function(_0x29532a){if(!_0x29532a[0x0]['num']){return analyticExtractedReport('Empty');}var _0x121527=[];var _0x37342d=0x0;if(_0xee9c43[_0x28d0('0xf')]){if(_0x29532a&&_0x29532a[_0x28d0('0x17')]){var _0x56fd84=_['range'](_0x29532a[0x0][_0x28d0('0x18')]/_0x57f8ac);var _0x3ac280=Number[_0x28d0('0x19')](_0x29532a[0x0][_0x28d0('0x18')]/_0x57f8ac)?_0x29532a[0x0][_0x28d0('0x18')]%_0x57f8ac:0x0;_0x56fd84[_0x28d0('0x1a')](function(_0x87b79f){if(_0x87b79f>0x0){_0x37342d+=_0x57f8ac;}_0x121527[_0x28d0('0x1b')](dbH[_0x28d0('0x12')][_0x28d0('0x13')](util[_0x28d0('0xb')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x57f8ac,_0x37342d),{'type':dbH[_0x28d0('0x12')][_0x28d0('0x15')][_0x28d0('0x16')]}));});if(_0x3ac280>0x0){_0x37342d+=_0x57f8ac;_0x121527[_0x28d0('0x1b')](dbH[_0x28d0('0x12')][_0x28d0('0x13')](util['format'](_0x28d0('0x1c'),QUERY,_0x3ac280,_0x37342d),{'type':dbH[_0x28d0('0x12')][_0x28d0('0x15')][_0x28d0('0x16')]}));}}}else{_0x121527[_0x28d0('0x1b')](dbH[_0x28d0('0x12')][_0x28d0('0x13')](QUERY,{'type':dbH[_0x28d0('0x12')]['QueryTypes'][_0x28d0('0x16')]}));}var _0x355bfd=path['dirname'](PATH);var _0x3e71d3=path['basename'](PATH,'.xlsx');var _0x857290=_0xee9c43[_0x28d0('0xf')]&&_0x121527[_0x28d0('0x17')]>0x1;var _0x431278=[];if(!fs[_0x28d0('0x1d')](path['join'](_0x355bfd,_0x3e71d3))&&_0x857290){fs[_0x28d0('0x1e')](path['join'](_0x355bfd,_0x3e71d3));}return BPromise[_0x28d0('0x1f')](_0x121527,function(_0x5e1801){_0x431278[_0x28d0('0x1b')](_0x5e1801);})[_0x28d0('0x11')](function(){for(var _0x48e4bc=0x0;_0x48e4bc<_0x431278[_0x28d0('0x17')];_0x48e4bc+=0x1){var _0x35a250;var _0x44f50b=_0x431278[_0x48e4bc];if(_0x857290){_0x35a250=path[_0x28d0('0x20')](_0x355bfd,_0x3e71d3,util[_0x28d0('0xb')](_0x28d0('0x21'),_0x3e71d3,_0x48e4bc,'xlsx'));}else{_0x35a250=path[_0x28d0('0x20')](_0x355bfd,util[_0x28d0('0xb')](_0x28d0('0x22'),_0x3e71d3,'xlsx'));}fs['writeFileSync'](_0x35a250,json2xls(_0x44f50b),_0x28d0('0x23'));}})['then'](function(){if(_0x857290){return new Promise(function(_0x1c948d){zipdir(path[_0x28d0('0x20')](_0x355bfd,_0x3e71d3),{'saveTo':path[_0x28d0('0x20')](_0x355bfd,util[_0x28d0('0xb')](_0x28d0('0x22'),_0x3e71d3,_0x28d0('0x24')))},function(_0x4e4557,_0x4157ef){rimraf(path['join'](_0x355bfd,_0x3e71d3),function(){});_0x1c948d(_0x28d0('0x25'));});});}})[_0x28d0('0x11')](function(){logger[_0x28d0('0xa')](util[_0x28d0('0xb')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0x28d0('0x26'),_0x857290?util[_0x28d0('0xb')]('%s.%s',_0x3e71d3,_0x857290?_0x28d0('0x24'):_0x28d0('0x27')):null);});})['catch'](function(_0x5800b8){logger[_0x28d0('0xa')](util[_0x28d0('0xb')](_0x28d0('0x28'),EXTRACTED_REPORT_ID,_0x28d0('0x29')),util[_0x28d0('0x2a')](_0x5800b8,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x28d0('0x2b'));})['finally'](function(){process[_0x28d0('0x2c')](EXIT_CODE);});}main();