397ab5530204dbe9d70048565074a6b38a093409
[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 _0x97ac=['info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','find','split','splitSizeXlsx','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','then','Empty','length','num','push','SELECT','dirname','.xlsx','existsSync','mkdirSync','each','join','xlsx','%s.%s','writeFileSync','binary','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','XLSX','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','util','path','lodash','bluebird','zip-dir','../../mysqldb','dbH','analytics','argv','savename','update'];(function(_0x3582eb,_0x442738){var _0x35378c=function(_0x1361b9){while(--_0x1361b9){_0x3582eb['push'](_0x3582eb['shift']());}};_0x35378c(++_0x442738);}(_0x97ac,0xa1));var _0xc97a=function(_0x241b27,_0x755b3b){_0x241b27=_0x241b27-0x0;var _0x17e5de=_0x97ac[_0x241b27];return _0x17e5de;};'use strict';var util=require(_0xc97a('0x0'));var path=require(_0xc97a('0x1'));var _=require(_0xc97a('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0xc97a('0x3'));var zipdir=require(_0xc97a('0x4'));var rimraf=require('rimraf');var db=require(_0xc97a('0x5'))['db'];var dbH=require(_0xc97a('0x5'))[_0xc97a('0x6')];var logger=require('../../config/logger')(_0xc97a('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0xc97a('0x8')][0x2]);var QUERY=process[_0xc97a('0x8')][0x3];var PATH=process[_0xc97a('0x8')][0x4];function analyticExtractedReport(_0x169911,_0x439215){var _0x4e9d9c={'status':_0x169911};var _0x48ea80={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x439215){_0x4e9d9c[_0xc97a('0x9')]=_0x439215;}return db['AnalyticExtractedReport'][_0xc97a('0xa')](_0x4e9d9c,_0x48ea80);}function main(){var _0x32264b=0x1388;var _0x59c3d0;logger[_0xc97a('0xb')](util[_0xc97a('0xc')](_0xc97a('0xd'),EXTRACTED_REPORT_ID,'XLSX'));return db['Setting'][_0xc97a('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xc97a('0xf'),_0xc97a('0x10')]})['then'](function(_0x515fe6){if(_0x515fe6){_0x59c3d0=_0x515fe6;_0x32264b=_0x59c3d0[_0xc97a('0x10')]||0x1388;}})['then'](function(){return dbH['sequelize'][_0xc97a('0x11')](util['format'](_0xc97a('0x12'),QUERY),{'type':dbH[_0xc97a('0x13')][_0xc97a('0x14')]['SELECT']});})[_0xc97a('0x15')](function(_0x2a0209){if(!_0x2a0209[0x0]['num']){return analyticExtractedReport(_0xc97a('0x16'));}var _0xdb8af3=[];var _0x2682b5=0x0;var _0x295ac6=!![];if(_0x59c3d0[_0xc97a('0xf')]){if(_0x2a0209&&_0x2a0209[_0xc97a('0x17')]){var _0x545c05=_0x2a0209[0x0][_0xc97a('0x18')]%(_0x2682b5+_0x32264b);for(;_0x295ac6;_0x2682b5+=_0x32264b,_0x545c05=_0x2a0209[0x0]['num']%(_0x2682b5+_0x32264b)){if(_0x545c05==0x0||_0x545c05==_0x2a0209[0x0][_0xc97a('0x18')]){_0x295ac6=![];}_0xdb8af3[_0xc97a('0x19')](dbH['sequelize'][_0xc97a('0x11')](util[_0xc97a('0xc')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x32264b,_0x2682b5),{'type':dbH[_0xc97a('0x13')][_0xc97a('0x14')][_0xc97a('0x1a')]}));}}}else{_0xdb8af3['push'](dbH['sequelize']['query'](QUERY,{'type':dbH[_0xc97a('0x13')][_0xc97a('0x14')][_0xc97a('0x1a')]}));}var _0x259e9a=path[_0xc97a('0x1b')](PATH);var _0x965b79=path['basename'](PATH,_0xc97a('0x1c'));var _0x16152b=_0x59c3d0[_0xc97a('0xf')]&&_0xdb8af3['length']>0x1;var _0x508fe4=[];if(!fs[_0xc97a('0x1d')](path['join'](_0x259e9a,_0x965b79))&&_0x16152b){fs[_0xc97a('0x1e')](path['join'](_0x259e9a,_0x965b79));}return BPromise[_0xc97a('0x1f')](_0xdb8af3,function(_0x2916ad){_0x508fe4[_0xc97a('0x19')](_0x2916ad);})['then'](function(){for(var _0x49a526=0x0;_0x49a526<_0x508fe4[_0xc97a('0x17')];_0x49a526+=0x1){var _0x44d60a;var _0x408245=_0x508fe4[_0x49a526];if(_0x16152b){_0x44d60a=path[_0xc97a('0x20')](_0x259e9a,_0x965b79,util[_0xc97a('0xc')]('%s%d.%s',_0x965b79,_0x49a526,_0xc97a('0x21')));}else{_0x44d60a=path[_0xc97a('0x20')](_0x259e9a,util[_0xc97a('0xc')](_0xc97a('0x22'),_0x965b79,_0xc97a('0x21')));}fs[_0xc97a('0x23')](_0x44d60a,json2xls(_0x408245),_0xc97a('0x24'));}})['then'](function(){if(_0x16152b){zipdir(path[_0xc97a('0x20')](_0x259e9a,_0x965b79),{'saveTo':path[_0xc97a('0x20')](_0x259e9a,util[_0xc97a('0xc')](_0xc97a('0x22'),_0x965b79,_0xc97a('0x25')))},function(_0x3ba76f,_0x52ed6f){});rimraf(path[_0xc97a('0x20')](_0x259e9a,_0x965b79),function(){});}})['then'](function(){logger[_0xc97a('0xb')](util[_0xc97a('0xc')](_0xc97a('0x26'),EXTRACTED_REPORT_ID,_0xc97a('0x27')));return analyticExtractedReport(_0xc97a('0x28'),_0x16152b?util['format'](_0xc97a('0x22'),_0x965b79,_0x16152b?_0xc97a('0x25'):_0xc97a('0x21')):null);});})['catch'](function(_0x25973c){logger[_0xc97a('0xb')](util[_0xc97a('0xc')](_0xc97a('0x29'),EXTRACTED_REPORT_ID,'XLSX'),util['inspect'](_0x25973c,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xc97a('0x2a'));});}main();