8393017075baaac3a5d76e34f909555b18f99149
[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 _0x1198=['split','then','splitSizeXlsx','sequelize','query','SELECT','num','length','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','dirname','basename','.xlsx','existsSync','join','mkdirSync','%s%d.%s','%s.%s','xlsx','writeFileSync','binary','zip','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','finally','util','lodash','json2xls','zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','find'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x1198,0x1b4));var _0x8119=function(_0xfa3874,_0x119104){_0xfa3874=_0xfa3874-0x0;var _0x27d880=_0x1198[_0xfa3874];return _0x27d880;};'use strict';var util=require(_0x8119('0x0'));var path=require('path');var _=require(_0x8119('0x1'));var fs=require('fs');var json2xls=require(_0x8119('0x2'));var BPromise=require('bluebird');var zipdir=require(_0x8119('0x3'));var rimraf=require(_0x8119('0x4'));var db=require(_0x8119('0x5'))['db'];var dbH=require(_0x8119('0x5'))['dbH'];var logger=require(_0x8119('0x6'))(_0x8119('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x8119('0x8')][0x2]);var QUERY=process[_0x8119('0x8')][0x3];var PATH=process[_0x8119('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x329ea2,_0x3079a4){var _0x3b8581={'status':_0x329ea2};var _0x287475={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3079a4){_0x3b8581['savename']=_0x3079a4;}return db['AnalyticExtractedReport'][_0x8119('0x9')](_0x3b8581,_0x287475);}function main(){var _0x2a2bbd=0x1388;var _0x56c9d8;logger['info'](util[_0x8119('0xa')](_0x8119('0xb'),EXTRACTED_REPORT_ID,_0x8119('0xc')));return db['Setting'][_0x8119('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x8119('0xe'),'splitSizeXlsx']})[_0x8119('0xf')](function(_0x4d2101){if(_0x4d2101){_0x56c9d8=_0x4d2101;_0x2a2bbd=_0x56c9d8[_0x8119('0x10')]||0x1388;}})[_0x8119('0xf')](function(){return dbH[_0x8119('0x11')][_0x8119('0x12')](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize']['QueryTypes'][_0x8119('0x13')]});})[_0x8119('0xf')](function(_0x625a1c){if(!_0x625a1c[0x0][_0x8119('0x14')]){return analyticExtractedReport('Empty');}var _0x2243e2=[];var _0x5174bf=0x0;if(_0x56c9d8[_0x8119('0xe')]){if(_0x625a1c&&_0x625a1c[_0x8119('0x15')]){var _0x248aa3=_['range'](_0x625a1c[0x0][_0x8119('0x14')]/_0x2a2bbd);var _0x8d78f0=Number[_0x8119('0x16')](_0x625a1c[0x0]['num']/_0x2a2bbd)?_0x625a1c[0x0]['num']%_0x2a2bbd:0x0;_0x248aa3[_0x8119('0x17')](function(_0x4306d8){if(_0x4306d8>0x0){_0x5174bf+=_0x2a2bbd;}_0x2243e2[_0x8119('0x18')](dbH[_0x8119('0x11')][_0x8119('0x12')](util[_0x8119('0xa')](_0x8119('0x19'),QUERY,_0x2a2bbd,_0x5174bf),{'type':dbH[_0x8119('0x11')]['QueryTypes'][_0x8119('0x13')]}));});if(_0x8d78f0>0x0){_0x5174bf+=_0x2a2bbd;_0x2243e2[_0x8119('0x18')](dbH['sequelize'][_0x8119('0x12')](util[_0x8119('0xa')](_0x8119('0x19'),QUERY,_0x8d78f0,_0x5174bf),{'type':dbH['sequelize'][_0x8119('0x1a')][_0x8119('0x13')]}));}}}else{_0x2243e2[_0x8119('0x18')](dbH['sequelize'][_0x8119('0x12')](QUERY,{'type':dbH[_0x8119('0x11')]['QueryTypes'][_0x8119('0x13')]}));}var _0x1bc8a7=path[_0x8119('0x1b')](PATH);var _0x43898c=path[_0x8119('0x1c')](PATH,_0x8119('0x1d'));var _0x171cc7=_0x56c9d8[_0x8119('0xe')]&&_0x2243e2[_0x8119('0x15')]>0x1;var _0x1b14ae=[];if(!fs[_0x8119('0x1e')](path[_0x8119('0x1f')](_0x1bc8a7,_0x43898c))&&_0x171cc7){fs[_0x8119('0x20')](path[_0x8119('0x1f')](_0x1bc8a7,_0x43898c));}return BPromise['each'](_0x2243e2,function(_0x38e576){_0x1b14ae['push'](_0x38e576);})['then'](function(){for(var _0x5186b4=0x0;_0x5186b4<_0x1b14ae['length'];_0x5186b4+=0x1){var _0x4c9532;var _0x789a77=_0x1b14ae[_0x5186b4];if(_0x171cc7){_0x4c9532=path['join'](_0x1bc8a7,_0x43898c,util['format'](_0x8119('0x21'),_0x43898c,_0x5186b4,'xlsx'));}else{_0x4c9532=path[_0x8119('0x1f')](_0x1bc8a7,util[_0x8119('0xa')](_0x8119('0x22'),_0x43898c,_0x8119('0x23')));}fs[_0x8119('0x24')](_0x4c9532,json2xls(_0x789a77),_0x8119('0x25'));}})[_0x8119('0xf')](function(){if(_0x171cc7){return new Promise(function(_0x1c8b2b){zipdir(path[_0x8119('0x1f')](_0x1bc8a7,_0x43898c),{'saveTo':path[_0x8119('0x1f')](_0x1bc8a7,util['format'](_0x8119('0x22'),_0x43898c,_0x8119('0x26')))},function(_0x59f80d,_0x2ce45e){rimraf(path['join'](_0x1bc8a7,_0x43898c),function(){});_0x1c8b2b('zip\x20finished');});});}})['then'](function(){logger[_0x8119('0x27')](util[_0x8119('0xa')](_0x8119('0x28'),EXTRACTED_REPORT_ID,_0x8119('0xc')));return analyticExtractedReport('Completed',_0x171cc7?util[_0x8119('0xa')]('%s.%s',_0x43898c,_0x171cc7?_0x8119('0x26'):_0x8119('0x23')):null);});})[_0x8119('0x29')](function(_0x4b6e42){logger['info'](util['format'](_0x8119('0x2a'),EXTRACTED_REPORT_ID,_0x8119('0xc')),util['inspect'](_0x4b6e42,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x8119('0x2b'));})[_0x8119('0x2c')](function(){process['exit'](EXIT_CODE);});}main();