Built motion from commit 753c950e.|2.5.42
[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 _0x5c38=['../../config/logger','argv','AnalyticExtractedReport','info','format','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','SELECT','num','length','isInteger','push','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','.xlsx','existsSync','mkdirSync','join','each','%s%d.%s','xlsx','writeFileSync','binary','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','%s.%s','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','inspect','Failed','finally','exit','path','json2xls','bluebird','rimraf','../../mysqldb','dbH'];(function(_0x375b4b,_0x4bde7b){var _0x5450f6=function(_0x5ad847){while(--_0x5ad847){_0x375b4b['push'](_0x375b4b['shift']());}};_0x5450f6(++_0x4bde7b);}(_0x5c38,0xe0));var _0x85c3=function(_0x3323db,_0x2ff20e){_0x3323db=_0x3323db-0x0;var _0x1b8e56=_0x5c38[_0x3323db];return _0x1b8e56;};'use strict';var util=require('util');var path=require(_0x85c3('0x0'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0x85c3('0x1'));var BPromise=require(_0x85c3('0x2'));var zipdir=require('zip-dir');var rimraf=require(_0x85c3('0x3'));var db=require(_0x85c3('0x4'))['db'];var dbH=require(_0x85c3('0x4'))[_0x85c3('0x5')];var logger=require(_0x85c3('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x85c3('0x7')][0x2]);var QUERY=process[_0x85c3('0x7')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xe19177,_0x142421){var _0xaf804c={'status':_0xe19177};var _0x2a167e={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x142421){_0xaf804c['savename']=_0x142421;}return db[_0x85c3('0x8')]['update'](_0xaf804c,_0x2a167e);}function main(){var _0x5e876a=0x1388;var _0x24bfb0;logger[_0x85c3('0x9')](util[_0x85c3('0xa')](_0x85c3('0xb'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0x85c3('0xc')][_0x85c3('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x85c3('0xe'),_0x85c3('0xf')]})[_0x85c3('0x10')](function(_0x10c057){if(_0x10c057){_0x24bfb0=_0x10c057;_0x5e876a=_0x24bfb0[_0x85c3('0xf')]||0x1388;}})[_0x85c3('0x10')](function(){return dbH[_0x85c3('0x11')][_0x85c3('0x12')](util['format'](_0x85c3('0x13'),QUERY),{'type':dbH[_0x85c3('0x11')]['QueryTypes'][_0x85c3('0x14')]});})[_0x85c3('0x10')](function(_0xd85f9d){if(!_0xd85f9d[0x0][_0x85c3('0x15')]){return analyticExtractedReport('Empty');}var _0x20cd56=[];var _0x23fb46=0x0;if(_0x24bfb0[_0x85c3('0xe')]){if(_0xd85f9d&&_0xd85f9d[_0x85c3('0x16')]){var _0xce9c5b=_['range'](_0xd85f9d[0x0][_0x85c3('0x15')]/_0x5e876a);var _0x39c94e=Number[_0x85c3('0x17')](_0xd85f9d[0x0][_0x85c3('0x15')]/_0x5e876a)?_0xd85f9d[0x0][_0x85c3('0x15')]%_0x5e876a:0x0;_0xce9c5b['forEach'](function(_0x10b087){if(_0x10b087>0x0){_0x23fb46+=_0x5e876a;}_0x20cd56[_0x85c3('0x18')](dbH[_0x85c3('0x11')][_0x85c3('0x12')](util['format'](_0x85c3('0x19'),QUERY,_0x5e876a,_0x23fb46),{'type':dbH[_0x85c3('0x11')][_0x85c3('0x1a')][_0x85c3('0x14')]}));});if(_0x39c94e>0x0){_0x23fb46+=_0x5e876a;_0x20cd56[_0x85c3('0x18')](dbH[_0x85c3('0x11')][_0x85c3('0x12')](util['format'](_0x85c3('0x19'),QUERY,_0x39c94e,_0x23fb46),{'type':dbH[_0x85c3('0x11')][_0x85c3('0x1a')][_0x85c3('0x14')]}));}}}else{_0x20cd56['push'](dbH[_0x85c3('0x11')]['query'](QUERY,{'type':dbH['sequelize'][_0x85c3('0x1a')][_0x85c3('0x14')]}));}var _0x2eeb27=path['dirname'](PATH);var _0x321b67=path['basename'](PATH,_0x85c3('0x1b'));var _0x5a6864=_0x24bfb0[_0x85c3('0xe')]&&_0x20cd56['length']>0x1;var _0x24e3dc=[];if(!fs[_0x85c3('0x1c')](path['join'](_0x2eeb27,_0x321b67))&&_0x5a6864){fs[_0x85c3('0x1d')](path[_0x85c3('0x1e')](_0x2eeb27,_0x321b67));}return BPromise[_0x85c3('0x1f')](_0x20cd56,function(_0x58e5ba){_0x24e3dc[_0x85c3('0x18')](_0x58e5ba);})[_0x85c3('0x10')](function(){for(var _0x13b25d=0x0;_0x13b25d<_0x24e3dc[_0x85c3('0x16')];_0x13b25d+=0x1){var _0x42d504;var _0x527b0a=_0x24e3dc[_0x13b25d];if(_0x5a6864){_0x42d504=path[_0x85c3('0x1e')](_0x2eeb27,_0x321b67,util[_0x85c3('0xa')](_0x85c3('0x20'),_0x321b67,_0x13b25d,_0x85c3('0x21')));}else{_0x42d504=path[_0x85c3('0x1e')](_0x2eeb27,util[_0x85c3('0xa')]('%s.%s',_0x321b67,'xlsx'));}fs[_0x85c3('0x22')](_0x42d504,json2xls(_0x527b0a),_0x85c3('0x23'));}})[_0x85c3('0x10')](function(){if(_0x5a6864){return new Promise(function(_0x31d301){zipdir(path[_0x85c3('0x1e')](_0x2eeb27,_0x321b67),{'saveTo':path[_0x85c3('0x1e')](_0x2eeb27,util[_0x85c3('0xa')]('%s.%s',_0x321b67,'zip'))},function(_0x299178,_0x54f35e){rimraf(path[_0x85c3('0x1e')](_0x2eeb27,_0x321b67),function(){});_0x31d301('zip\x20finished');});});}})[_0x85c3('0x10')](function(){logger[_0x85c3('0x9')](util[_0x85c3('0xa')](_0x85c3('0x24'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport('Completed',_0x5a6864?util['format'](_0x85c3('0x25'),_0x321b67,_0x5a6864?_0x85c3('0x26'):_0x85c3('0x21')):null);});})[_0x85c3('0x27')](function(_0x2c1756){logger[_0x85c3('0x9')](util[_0x85c3('0xa')](_0x85c3('0x28'),EXTRACTED_REPORT_ID,_0x85c3('0x29')),util[_0x85c3('0x2a')](_0x2c1756,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x85c3('0x2b'));})[_0x85c3('0x2c')](function(){process[_0x85c3('0x2d')](EXIT_CODE);});}main();