6f1e560b30c1d61d59f5f391c1bae64a0c77f69d
[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 _0x1cf6=['%s.%s','writeFileSync','binary','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','xlsx','inspect','Failed','exit','path','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','format','XLSX','Setting','split','splitSizeXlsx','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','SELECT','num','Empty','range','isInteger','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.xlsx','length','existsSync','join','each','%s%d.%s'];(function(_0xd98ca3,_0x38fbd9){var _0x35960d=function(_0x52e8ee){while(--_0x52e8ee){_0xd98ca3['push'](_0xd98ca3['shift']());}};_0x35960d(++_0x38fbd9);}(_0x1cf6,0x1a4));var _0x61cf=function(_0x751d0d,_0x3e714e){_0x751d0d=_0x751d0d-0x0;var _0xa06173=_0x1cf6[_0x751d0d];return _0xa06173;};'use strict';var util=require('util');var path=require(_0x61cf('0x0'));var _=require(_0x61cf('0x1'));var fs=require('fs');var json2xls=require(_0x61cf('0x2'));var BPromise=require(_0x61cf('0x3'));var zipdir=require(_0x61cf('0x4'));var rimraf=require(_0x61cf('0x5'));var db=require('../../mysqldb')['db'];var dbH=require(_0x61cf('0x6'))[_0x61cf('0x7')];var logger=require(_0x61cf('0x8'))(_0x61cf('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x61cf('0xa')][0x2]);var QUERY=process[_0x61cf('0xa')][0x3];var PATH=process[_0x61cf('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x412305,_0x437945){var _0x3c0798={'status':_0x412305};var _0x235576={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x437945){_0x3c0798[_0x61cf('0xb')]=_0x437945;}return db[_0x61cf('0xc')][_0x61cf('0xd')](_0x3c0798,_0x235576);}function main(){var _0x1aab6b=0x1388;var _0x43681d;logger['info'](util[_0x61cf('0xe')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x61cf('0xf')));return db[_0x61cf('0x10')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x61cf('0x11'),_0x61cf('0x12')]})[_0x61cf('0x13')](function(_0x18b674){if(_0x18b674){_0x43681d=_0x18b674;_0x1aab6b=_0x43681d[_0x61cf('0x12')]||0x1388;}})['then'](function(){return dbH['sequelize'][_0x61cf('0x14')](util[_0x61cf('0xe')](_0x61cf('0x15'),QUERY),{'type':dbH[_0x61cf('0x16')][_0x61cf('0x17')][_0x61cf('0x18')]});})[_0x61cf('0x13')](function(_0x4cc012){if(!_0x4cc012[0x0][_0x61cf('0x19')]){return analyticExtractedReport(_0x61cf('0x1a'));}var _0x41ad26=[];var _0xe6a050=0x0;if(_0x43681d[_0x61cf('0x11')]){if(_0x4cc012&&_0x4cc012['length']){var _0x1b9c24=_[_0x61cf('0x1b')](_0x4cc012[0x0][_0x61cf('0x19')]/_0x1aab6b);var _0x36f2d6=Number[_0x61cf('0x1c')](_0x4cc012[0x0][_0x61cf('0x19')]/_0x1aab6b)?_0x4cc012[0x0][_0x61cf('0x19')]%_0x1aab6b:0x0;_0x1b9c24['forEach'](function(_0x5bf713){if(_0x5bf713>0x0){_0xe6a050+=_0x1aab6b;}_0x41ad26[_0x61cf('0x1d')](dbH[_0x61cf('0x16')]['query'](util[_0x61cf('0xe')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1aab6b,_0xe6a050),{'type':dbH['sequelize'][_0x61cf('0x17')][_0x61cf('0x18')]}));});if(_0x36f2d6>0x0){_0xe6a050+=_0x1aab6b;_0x41ad26['push'](dbH['sequelize'][_0x61cf('0x14')](util['format'](_0x61cf('0x1e'),QUERY,_0x36f2d6,_0xe6a050),{'type':dbH['sequelize']['QueryTypes'][_0x61cf('0x18')]}));}}}else{_0x41ad26[_0x61cf('0x1d')](dbH[_0x61cf('0x16')][_0x61cf('0x14')](QUERY,{'type':dbH[_0x61cf('0x16')][_0x61cf('0x17')]['SELECT']}));}var _0x540c70=path[_0x61cf('0x1f')](PATH);var _0x3916e6=path[_0x61cf('0x20')](PATH,_0x61cf('0x21'));var _0x53f064=_0x43681d[_0x61cf('0x11')]&&_0x41ad26[_0x61cf('0x22')]>0x1;var _0x3730a1=[];if(!fs[_0x61cf('0x23')](path['join'](_0x540c70,_0x3916e6))&&_0x53f064){fs['mkdirSync'](path[_0x61cf('0x24')](_0x540c70,_0x3916e6));}return BPromise[_0x61cf('0x25')](_0x41ad26,function(_0x27a132){_0x3730a1[_0x61cf('0x1d')](_0x27a132);})['then'](function(){for(var _0x4b4d54=0x0;_0x4b4d54<_0x3730a1['length'];_0x4b4d54+=0x1){var _0x4966a8;var _0x3e3e3d=_0x3730a1[_0x4b4d54];if(_0x53f064){_0x4966a8=path[_0x61cf('0x24')](_0x540c70,_0x3916e6,util[_0x61cf('0xe')](_0x61cf('0x26'),_0x3916e6,_0x4b4d54,'xlsx'));}else{_0x4966a8=path[_0x61cf('0x24')](_0x540c70,util[_0x61cf('0xe')](_0x61cf('0x27'),_0x3916e6,'xlsx'));}fs[_0x61cf('0x28')](_0x4966a8,json2xls(_0x3e3e3d),_0x61cf('0x29'));}})[_0x61cf('0x13')](function(){if(_0x53f064){return new Promise(function(_0x4072ee){zipdir(path['join'](_0x540c70,_0x3916e6),{'saveTo':path[_0x61cf('0x24')](_0x540c70,util[_0x61cf('0xe')](_0x61cf('0x27'),_0x3916e6,_0x61cf('0x2a')))},function(_0x2072c6,_0x3749c4){rimraf(path[_0x61cf('0x24')](_0x540c70,_0x3916e6),function(){});_0x4072ee(_0x61cf('0x2b'));});});}})['then'](function(){logger[_0x61cf('0x2c')](util[_0x61cf('0xe')](_0x61cf('0x2d'),EXTRACTED_REPORT_ID,_0x61cf('0xf')));return analyticExtractedReport(_0x61cf('0x2e'),_0x53f064?util[_0x61cf('0xe')]('%s.%s',_0x3916e6,_0x53f064?_0x61cf('0x2a'):_0x61cf('0x2f')):null);});})['catch'](function(_0x6504d3){logger['info'](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x61cf('0xf')),util[_0x61cf('0x30')](_0x6504d3,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x61cf('0x31'));})['finally'](function(){process[_0x61cf('0x32')](EXIT_CODE);});}main();