79b67938f60c062b7c6bea2ccaf612bf166ab3bf
[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 _0x92f2=['util','path','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','num','Empty','length','range','isInteger','forEach','push','format','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','.xlsx','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','binary','zip','zip\x20finished','XLSX','catch','Failed','exit'];(function(_0x5841b7,_0x3ce91b){var _0x52972d=function(_0x121c1a){while(--_0x121c1a){_0x5841b7['push'](_0x5841b7['shift']());}};_0x52972d(++_0x3ce91b);}(_0x92f2,0x15e));var _0x292f=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x92f2[_0xbca1b1];return _0x4e1686;};'use strict';var util=require(_0x292f('0x0'));var path=require(_0x292f('0x1'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0x292f('0x2'));var BPromise=require(_0x292f('0x3'));var zipdir=require(_0x292f('0x4'));var rimraf=require(_0x292f('0x5'));var db=require(_0x292f('0x6'))['db'];var dbH=require('../../mysqldb')[_0x292f('0x7')];var logger=require(_0x292f('0x8'))(_0x292f('0x9'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x292f('0xa')][0x3];var PATH=process[_0x292f('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2e2da0,_0x2f4002){var _0x51dc78={'status':_0x2e2da0};var _0x4848f8={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x2f4002){_0x51dc78[_0x292f('0xb')]=_0x2f4002;}return db[_0x292f('0xc')]['update'](_0x51dc78,_0x4848f8);}function main(){var _0x4dea10=0x1388;var _0x5ceb1f;logger[_0x292f('0xd')](util['format'](_0x292f('0xe'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0x292f('0xf')][_0x292f('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x292f('0x11'),_0x292f('0x12')]})[_0x292f('0x13')](function(_0x45f9ab){if(_0x45f9ab){_0x5ceb1f=_0x45f9ab;_0x4dea10=_0x5ceb1f[_0x292f('0x12')]||0x1388;}})[_0x292f('0x13')](function(){return dbH[_0x292f('0x14')][_0x292f('0x15')](util['format'](_0x292f('0x16'),QUERY),{'type':dbH[_0x292f('0x14')]['QueryTypes']['SELECT']});})[_0x292f('0x13')](function(_0x8724a5){if(!_0x8724a5[0x0][_0x292f('0x17')]){return analyticExtractedReport(_0x292f('0x18'));}var _0x43860a=[];var _0x3862c6=0x0;if(_0x5ceb1f[_0x292f('0x11')]){if(_0x8724a5&&_0x8724a5[_0x292f('0x19')]){var _0x589d09=_[_0x292f('0x1a')](_0x8724a5[0x0][_0x292f('0x17')]/_0x4dea10);var _0x1d2344=Number[_0x292f('0x1b')](_0x8724a5[0x0]['num']/_0x4dea10)?_0x8724a5[0x0]['num']%_0x4dea10:0x0;_0x589d09[_0x292f('0x1c')](function(_0x1d1d16){if(_0x1d1d16>0x0){_0x3862c6+=_0x4dea10;}_0x43860a[_0x292f('0x1d')](dbH[_0x292f('0x14')][_0x292f('0x15')](util[_0x292f('0x1e')](_0x292f('0x1f'),QUERY,_0x4dea10,_0x3862c6),{'type':dbH[_0x292f('0x14')][_0x292f('0x20')][_0x292f('0x21')]}));});if(_0x1d2344>0x0){_0x3862c6+=_0x4dea10;_0x43860a[_0x292f('0x1d')](dbH[_0x292f('0x14')][_0x292f('0x15')](util['format'](_0x292f('0x1f'),QUERY,_0x1d2344,_0x3862c6),{'type':dbH[_0x292f('0x14')][_0x292f('0x20')][_0x292f('0x21')]}));}}}else{_0x43860a[_0x292f('0x1d')](dbH['sequelize']['query'](QUERY,{'type':dbH[_0x292f('0x14')][_0x292f('0x20')]['SELECT']}));}var _0x401808=path[_0x292f('0x22')](PATH);var _0x17f799=path['basename'](PATH,_0x292f('0x23'));var _0x2ca528=_0x5ceb1f[_0x292f('0x11')]&&_0x43860a[_0x292f('0x19')]>0x1;var _0x10060e=[];if(!fs[_0x292f('0x24')](path[_0x292f('0x25')](_0x401808,_0x17f799))&&_0x2ca528){fs[_0x292f('0x26')](path['join'](_0x401808,_0x17f799));}return BPromise[_0x292f('0x27')](_0x43860a,function(_0x2ce51c){_0x10060e[_0x292f('0x1d')](_0x2ce51c);})[_0x292f('0x13')](function(){for(var _0x1b39fd=0x0;_0x1b39fd<_0x10060e[_0x292f('0x19')];_0x1b39fd+=0x1){var _0x394a17;var _0x2ffde3=_0x10060e[_0x1b39fd];if(_0x2ca528){_0x394a17=path[_0x292f('0x25')](_0x401808,_0x17f799,util[_0x292f('0x1e')](_0x292f('0x28'),_0x17f799,_0x1b39fd,_0x292f('0x29')));}else{_0x394a17=path[_0x292f('0x25')](_0x401808,util['format'](_0x292f('0x2a'),_0x17f799,_0x292f('0x29')));}fs['writeFileSync'](_0x394a17,json2xls(_0x2ffde3),_0x292f('0x2b'));}})['then'](function(){if(_0x2ca528){return new Promise(function(_0x5239c0){zipdir(path[_0x292f('0x25')](_0x401808,_0x17f799),{'saveTo':path[_0x292f('0x25')](_0x401808,util[_0x292f('0x1e')](_0x292f('0x2a'),_0x17f799,_0x292f('0x2c')))},function(_0x2f33eb,_0x4d0f78){rimraf(path['join'](_0x401808,_0x17f799),function(){});_0x5239c0(_0x292f('0x2d'));});});}})[_0x292f('0x13')](function(){logger[_0x292f('0xd')](util[_0x292f('0x1e')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x292f('0x2e')));return analyticExtractedReport('Completed',_0x2ca528?util[_0x292f('0x1e')](_0x292f('0x2a'),_0x17f799,_0x2ca528?'zip':_0x292f('0x29')):null);});})[_0x292f('0x2f')](function(_0x3ab1f6){logger[_0x292f('0xd')](util[_0x292f('0x1e')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'XLSX'),util['inspect'](_0x3ab1f6,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x292f('0x30'));})['finally'](function(){process[_0x292f('0x31')](EXIT_CODE);});}main();