b0ead3bc613f2275e35d727cfb72af1d49cab9b2
[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 _0xc41b=['Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','splitSizeXlsx','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','Empty','length','num','sequelize','QueryTypes','push','dirname','.xlsx','existsSync','join','mkdirSync','%s%d.%s','xlsx','writeFileSync','binary','%s.%s','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','path','lodash','json2xls','zip-dir','rimraf','dbH','argv','savename','info','format'];(function(_0x13d2d8,_0x11f706){var _0x659366=function(_0x215458){while(--_0x215458){_0x13d2d8['push'](_0x13d2d8['shift']());}};_0x659366(++_0x11f706);}(_0xc41b,0x9a));var _0xbc41=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0xc41b[_0x59ee6f];return _0x4c0979;};'use strict';var util=require('util');var path=require(_0xbc41('0x0'));var _=require(_0xbc41('0x1'));var fs=require('fs');var json2xls=require(_0xbc41('0x2'));var BPromise=require('bluebird');var zipdir=require(_0xbc41('0x3'));var rimraf=require(_0xbc41('0x4'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0xbc41('0x5')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xbc41('0x6')][0x2]);var QUERY=process[_0xbc41('0x6')][0x3];var PATH=process[_0xbc41('0x6')][0x4];function analyticExtractedReport(_0x21ed3c,_0x35d283){var _0x22f796={'status':_0x21ed3c};var _0x1e3cf5={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x35d283){_0x22f796[_0xbc41('0x7')]=_0x35d283;}return db['AnalyticExtractedReport']['update'](_0x22f796,_0x1e3cf5);}function main(){var _0x1c91a0=0x1388;var _0x4d283e;logger[_0xbc41('0x8')](util[_0xbc41('0x9')](_0xbc41('0xa'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0xbc41('0xb')][_0xbc41('0xc')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xbc41('0xd'),_0xbc41('0xe')]})['then'](function(_0xa129da){if(_0xa129da){_0x4d283e=_0xa129da;_0x1c91a0=_0x4d283e[_0xbc41('0xe')]||0x1388;}})[_0xbc41('0xf')](function(){return dbH['sequelize'][_0xbc41('0x10')](util[_0xbc41('0x9')](_0xbc41('0x11'),QUERY),{'type':dbH['sequelize']['QueryTypes'][_0xbc41('0x12')]});})['then'](function(_0x25b71d){if(!_0x25b71d[0x0]['num']){return analyticExtractedReport(_0xbc41('0x13'));}var _0x2d59f7=[];var _0x463400=0x0;var _0xd8cbe6=!![];if(_0x4d283e[_0xbc41('0xd')]){if(_0x25b71d&&_0x25b71d[_0xbc41('0x14')]){var _0x16f22c=_0x25b71d[0x0][_0xbc41('0x15')]%(_0x463400+_0x1c91a0);for(;_0xd8cbe6;_0x463400+=_0x1c91a0,_0x16f22c=_0x25b71d[0x0]['num']%(_0x463400+_0x1c91a0)){if(_0x16f22c==0x0||_0x16f22c==_0x25b71d[0x0][_0xbc41('0x15')]){_0xd8cbe6=![];}_0x2d59f7['push'](dbH[_0xbc41('0x16')][_0xbc41('0x10')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1c91a0,_0x463400),{'type':dbH[_0xbc41('0x16')][_0xbc41('0x17')][_0xbc41('0x12')]}));}}}else{_0x2d59f7[_0xbc41('0x18')](dbH[_0xbc41('0x16')]['query'](QUERY,{'type':dbH['sequelize'][_0xbc41('0x17')][_0xbc41('0x12')]}));}var _0x21fdb1=path[_0xbc41('0x19')](PATH);var _0x2541d8=path['basename'](PATH,_0xbc41('0x1a'));var _0x55cbcf=_0x4d283e[_0xbc41('0xd')]&&_0x2d59f7[_0xbc41('0x14')]>0x1;var _0x3d747f=[];if(!fs[_0xbc41('0x1b')](path[_0xbc41('0x1c')](_0x21fdb1,_0x2541d8))&&_0x55cbcf){fs[_0xbc41('0x1d')](path[_0xbc41('0x1c')](_0x21fdb1,_0x2541d8));}return BPromise['each'](_0x2d59f7,function(_0x189c74){_0x3d747f[_0xbc41('0x18')](_0x189c74);})[_0xbc41('0xf')](function(){for(var _0x1c7341=0x0;_0x1c7341<_0x3d747f[_0xbc41('0x14')];_0x1c7341+=0x1){var _0x2f0377;var _0x5b3766=_0x3d747f[_0x1c7341];if(_0x55cbcf){_0x2f0377=path[_0xbc41('0x1c')](_0x21fdb1,_0x2541d8,util[_0xbc41('0x9')](_0xbc41('0x1e'),_0x2541d8,_0x1c7341,'xlsx'));}else{_0x2f0377=path['join'](_0x21fdb1,util['format']('%s.%s',_0x2541d8,_0xbc41('0x1f')));}fs[_0xbc41('0x20')](_0x2f0377,json2xls(_0x5b3766),_0xbc41('0x21'));}})[_0xbc41('0xf')](function(){if(_0x55cbcf){zipdir(path[_0xbc41('0x1c')](_0x21fdb1,_0x2541d8),{'saveTo':path['join'](_0x21fdb1,util['format'](_0xbc41('0x22'),_0x2541d8,_0xbc41('0x23')))},function(_0x258f70,_0x562d1c){});rimraf(path[_0xbc41('0x1c')](_0x21fdb1,_0x2541d8),function(){});}})[_0xbc41('0xf')](function(){logger[_0xbc41('0x8')](util[_0xbc41('0x9')](_0xbc41('0x24'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0xbc41('0x25'),_0x55cbcf?util['format'](_0xbc41('0x22'),_0x2541d8,_0x55cbcf?_0xbc41('0x23'):_0xbc41('0x1f')):null);});})[_0xbc41('0x26')](function(_0x3b76e8){logger['info'](util[_0xbc41('0x9')](_0xbc41('0x27'),EXTRACTED_REPORT_ID,_0xbc41('0x28')),util['inspect'](_0x3b76e8,{'showHidden':![],'depth':null}));return analyticExtractedReport('Failed');});}main();