1031e10492825541c4e9fab1ad1521cd8715b960
[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 _0xc808=['../../config/logger','analytics','argv','savename','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','split','splitSizeXlsx','then','sequelize','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','num','Empty','length','range','isInteger','forEach','push','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','.xlsx','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','writeFileSync','binary','zip','zip\x20finished','%s.%s','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','finally','exit','util','path','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH'];(function(_0x11abe0,_0x23bcc6){var _0x117940=function(_0x3746d8){while(--_0x3746d8){_0x11abe0['push'](_0x11abe0['shift']());}};_0x117940(++_0x23bcc6);}(_0xc808,0x97));var _0x8c80=function(_0x2b47ad,_0x55c7cc){_0x2b47ad=_0x2b47ad-0x0;var _0x1a2426=_0xc808[_0x2b47ad];return _0x1a2426;};'use strict';var util=require(_0x8c80('0x0'));var path=require(_0x8c80('0x1'));var _=require(_0x8c80('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x8c80('0x3'));var zipdir=require(_0x8c80('0x4'));var rimraf=require(_0x8c80('0x5'));var db=require(_0x8c80('0x6'))['db'];var dbH=require(_0x8c80('0x6'))[_0x8c80('0x7')];var logger=require(_0x8c80('0x8'))(_0x8c80('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x8c80('0xa')][0x2]);var QUERY=process[_0x8c80('0xa')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x4f2902,_0xf929ab){var _0x5468a3={'status':_0x4f2902};var _0x2ec495={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xf929ab){_0x5468a3[_0x8c80('0xb')]=_0xf929ab;}return db['AnalyticExtractedReport'][_0x8c80('0xc')](_0x5468a3,_0x2ec495);}function main(){var _0x12a111=0x1388;var _0x3b8765;logger[_0x8c80('0xd')](util[_0x8c80('0xe')](_0x8c80('0xf'),EXTRACTED_REPORT_ID,_0x8c80('0x10')));return db[_0x8c80('0x11')][_0x8c80('0x12')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x8c80('0x13'),_0x8c80('0x14')]})[_0x8c80('0x15')](function(_0x1aa841){if(_0x1aa841){_0x3b8765=_0x1aa841;_0x12a111=_0x3b8765[_0x8c80('0x14')]||0x1388;}})['then'](function(){return dbH[_0x8c80('0x16')]['query'](util[_0x8c80('0xe')](_0x8c80('0x17'),QUERY),{'type':dbH[_0x8c80('0x16')]['QueryTypes']['SELECT']});})[_0x8c80('0x15')](function(_0x374c48){if(!_0x374c48[0x0][_0x8c80('0x18')]){return analyticExtractedReport(_0x8c80('0x19'));}var _0x314570=[];var _0x545b0f=0x0;if(_0x3b8765[_0x8c80('0x13')]){if(_0x374c48&&_0x374c48[_0x8c80('0x1a')]){var _0x498181=_[_0x8c80('0x1b')](_0x374c48[0x0]['num']/_0x12a111);var _0x384023=Number[_0x8c80('0x1c')](_0x374c48[0x0][_0x8c80('0x18')]/_0x12a111)?_0x374c48[0x0][_0x8c80('0x18')]%_0x12a111:0x0;_0x498181[_0x8c80('0x1d')](function(_0x541f88){if(_0x541f88>0x0){_0x545b0f+=_0x12a111;}_0x314570[_0x8c80('0x1e')](dbH[_0x8c80('0x16')][_0x8c80('0x1f')](util[_0x8c80('0xe')](_0x8c80('0x20'),QUERY,_0x12a111,_0x545b0f),{'type':dbH[_0x8c80('0x16')][_0x8c80('0x21')]['SELECT']}));});if(_0x384023>0x0){_0x545b0f+=_0x12a111;_0x314570['push'](dbH[_0x8c80('0x16')][_0x8c80('0x1f')](util[_0x8c80('0xe')](_0x8c80('0x20'),QUERY,_0x384023,_0x545b0f),{'type':dbH[_0x8c80('0x16')]['QueryTypes'][_0x8c80('0x22')]}));}}}else{_0x314570[_0x8c80('0x1e')](dbH['sequelize']['query'](QUERY,{'type':dbH[_0x8c80('0x16')][_0x8c80('0x21')][_0x8c80('0x22')]}));}var _0x3fcec3=path[_0x8c80('0x23')](PATH);var _0x157bb5=path[_0x8c80('0x24')](PATH,_0x8c80('0x25'));var _0x36e059=_0x3b8765[_0x8c80('0x13')]&&_0x314570['length']>0x1;var _0x11a075=[];if(!fs[_0x8c80('0x26')](path[_0x8c80('0x27')](_0x3fcec3,_0x157bb5))&&_0x36e059){fs[_0x8c80('0x28')](path['join'](_0x3fcec3,_0x157bb5));}return BPromise[_0x8c80('0x29')](_0x314570,function(_0x5b57ce){_0x11a075[_0x8c80('0x1e')](_0x5b57ce);})[_0x8c80('0x15')](function(){for(var _0x5d1d4c=0x0;_0x5d1d4c<_0x11a075['length'];_0x5d1d4c+=0x1){var _0x4c267c;var _0x4a4303=_0x11a075[_0x5d1d4c];if(_0x36e059){_0x4c267c=path['join'](_0x3fcec3,_0x157bb5,util['format'](_0x8c80('0x2a'),_0x157bb5,_0x5d1d4c,_0x8c80('0x2b')));}else{_0x4c267c=path[_0x8c80('0x27')](_0x3fcec3,util[_0x8c80('0xe')]('%s.%s',_0x157bb5,_0x8c80('0x2b')));}fs[_0x8c80('0x2c')](_0x4c267c,json2xls(_0x4a4303),_0x8c80('0x2d'));}})['then'](function(){if(_0x36e059){return new Promise(function(_0x35cd41){zipdir(path['join'](_0x3fcec3,_0x157bb5),{'saveTo':path[_0x8c80('0x27')](_0x3fcec3,util[_0x8c80('0xe')]('%s.%s',_0x157bb5,_0x8c80('0x2e')))},function(_0x41b527,_0x1b5c0e){rimraf(path[_0x8c80('0x27')](_0x3fcec3,_0x157bb5),function(){});_0x35cd41(_0x8c80('0x2f'));});});}})['then'](function(){logger[_0x8c80('0xd')](util[_0x8c80('0xe')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x8c80('0x10')));return analyticExtractedReport('Completed',_0x36e059?util['format'](_0x8c80('0x30'),_0x157bb5,_0x36e059?_0x8c80('0x2e'):'xlsx'):null);});})[_0x8c80('0x31')](function(_0x439dc4){logger['info'](util['format'](_0x8c80('0x32'),EXTRACTED_REPORT_ID,_0x8c80('0x10')),util['inspect'](_0x439dc4,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x8c80('0x33')](function(){process[_0x8c80('0x34')](EXIT_CODE);});}main();