9254da62df7fb6aa3c66f102d4d5112ede6023e6
[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 _0x39aa=['XLSX','inspect','Failed','util','lodash','json2xls','bluebird','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','splitSizeXlsx','then','sequelize','query','QueryTypes','SELECT','num','Empty','split','length','%s\x20limit\x20%d\x20OFFSET\x20%d','push','dirname','basename','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','writeFileSync','binary','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','%s.%s','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format'];(function(_0x3b231a,_0x53a00d){var _0x18d67a=function(_0x5e14c6){while(--_0x5e14c6){_0x3b231a['push'](_0x3b231a['shift']());}};_0x18d67a(++_0x53a00d);}(_0x39aa,0x1ed));var _0xa39a=function(_0x3246a6,_0x2a685a){_0x3246a6=_0x3246a6-0x0;var _0x1df64d=_0x39aa[_0x3246a6];return _0x1df64d;};'use strict';var util=require(_0xa39a('0x0'));var path=require('path');var _=require(_0xa39a('0x1'));var fs=require('fs');var json2xls=require(_0xa39a('0x2'));var BPromise=require(_0xa39a('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0xa39a('0x4'));var db=require(_0xa39a('0x5'))['db'];var dbH=require(_0xa39a('0x5'))[_0xa39a('0x6')];var logger=require(_0xa39a('0x7'))(_0xa39a('0x8'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xa39a('0x9')][0x3];var PATH=process[_0xa39a('0x9')][0x4];function analyticExtractedReport(_0x3a7d74,_0xaa5b95){var _0x4eae38={'status':_0x3a7d74};var _0x54a9d2={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xaa5b95){_0x4eae38[_0xa39a('0xa')]=_0xaa5b95;}return db[_0xa39a('0xb')][_0xa39a('0xc')](_0x4eae38,_0x54a9d2);}function main(){var _0x2b80dc=0x1388;var _0x332dba;logger[_0xa39a('0xd')](util[_0xa39a('0xe')](_0xa39a('0xf'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0xa39a('0x10')][_0xa39a('0x11')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xa39a('0x12')]})[_0xa39a('0x13')](function(_0x52e2d4){if(_0x52e2d4){_0x332dba=_0x52e2d4;_0x2b80dc=_0x332dba[_0xa39a('0x12')]||0x1388;}})['then'](function(){return dbH[_0xa39a('0x14')][_0xa39a('0x15')](util[_0xa39a('0xe')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0xa39a('0x16')][_0xa39a('0x17')]});})[_0xa39a('0x13')](function(_0x4d01a5){if(!_0x4d01a5[0x0][_0xa39a('0x18')]){return analyticExtractedReport(_0xa39a('0x19'));}var _0x4276b3=[];var _0x666210=0x0;var _0x2d2eb9=!![];if(_0x332dba[_0xa39a('0x1a')]){if(_0x4d01a5&&_0x4d01a5[_0xa39a('0x1b')]){var _0x33716b=_0x4d01a5[0x0]['num']%(_0x666210+_0x2b80dc);for(;_0x2d2eb9;_0x666210+=_0x2b80dc,_0x33716b=_0x4d01a5[0x0][_0xa39a('0x18')]%(_0x666210+_0x2b80dc)){if(_0x33716b==0x0||_0x33716b==_0x4d01a5[0x0][_0xa39a('0x18')]){_0x2d2eb9=![];}_0x4276b3['push'](dbH[_0xa39a('0x14')]['query'](util[_0xa39a('0xe')](_0xa39a('0x1c'),QUERY,_0x2b80dc,_0x666210),{'type':dbH[_0xa39a('0x14')][_0xa39a('0x16')][_0xa39a('0x17')]}));}}}else{_0x4276b3[_0xa39a('0x1d')](dbH[_0xa39a('0x14')][_0xa39a('0x15')](QUERY,{'type':dbH[_0xa39a('0x14')][_0xa39a('0x16')]['SELECT']}));}var _0x45619d=path[_0xa39a('0x1e')](PATH);var _0x421f99=path[_0xa39a('0x1f')](PATH,'.xlsx');var _0x10f4e8=_0x332dba[_0xa39a('0x1a')]&&_0x4276b3[_0xa39a('0x1b')]>0x1;var _0x326548=[];if(!fs[_0xa39a('0x20')](path[_0xa39a('0x21')](_0x45619d,_0x421f99))&&_0x10f4e8){fs[_0xa39a('0x22')](path[_0xa39a('0x21')](_0x45619d,_0x421f99));}return BPromise[_0xa39a('0x23')](_0x4276b3,function(_0x2b354e){_0x326548[_0xa39a('0x1d')](_0x2b354e);})[_0xa39a('0x13')](function(){for(var _0x5a26a7=0x0;_0x5a26a7<_0x326548[_0xa39a('0x1b')];_0x5a26a7+=0x1){var _0xc49d49;var _0x2b3953=_0x326548[_0x5a26a7];if(_0x10f4e8){_0xc49d49=path['join'](_0x45619d,_0x421f99,util[_0xa39a('0xe')](_0xa39a('0x24'),_0x421f99,_0x5a26a7,_0xa39a('0x25')));}else{_0xc49d49=path[_0xa39a('0x21')](_0x45619d,util[_0xa39a('0xe')]('%s.%s',_0x421f99,'xlsx'));}fs[_0xa39a('0x26')](_0xc49d49,json2xls(_0x2b3953),_0xa39a('0x27'));}})[_0xa39a('0x13')](function(){if(_0x10f4e8){zipdir(path['join'](_0x45619d,_0x421f99),{'saveTo':path[_0xa39a('0x21')](_0x45619d,util[_0xa39a('0xe')]('%s.%s',_0x421f99,'zip'))},function(_0x5107c1,_0x5b2201){});rimraf(path[_0xa39a('0x21')](_0x45619d,_0x421f99),function(){});}})[_0xa39a('0x13')](function(){logger[_0xa39a('0xd')](util[_0xa39a('0xe')](_0xa39a('0x28'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0xa39a('0x29'),_0x10f4e8?util[_0xa39a('0xe')](_0xa39a('0x2a'),_0x421f99,_0x10f4e8?_0xa39a('0x2b'):_0xa39a('0x25')):null);});})[_0xa39a('0x2c')](function(_0x6b87b0){logger['info'](util[_0xa39a('0xe')](_0xa39a('0x2d'),EXTRACTED_REPORT_ID,_0xa39a('0x2e')),util[_0xa39a('0x2f')](_0x6b87b0,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xa39a('0x30'));});}main();