65c7fca474c9914ebab146baa8d60844a76d2256
[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 _0xefad=['%s.%s','xlsx','writeFileSync','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Failed','finally','exit','util','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','argv','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','split','splitSizeXlsx','then','sequelize','query','QueryTypes','SELECT','num','Empty','length','range','isInteger','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','push','dirname','basename','.xlsx','existsSync','mkdirSync','join','each','%s%d.%s'];(function(_0x62040,_0x49cb23){var _0x8c8a9=function(_0x3b72ac){while(--_0x3b72ac){_0x62040['push'](_0x62040['shift']());}};_0x8c8a9(++_0x49cb23);}(_0xefad,0x1d6));var _0xdefa=function(_0x53bd6f,_0x15828a){_0x53bd6f=_0x53bd6f-0x0;var _0x5f4e08=_0xefad[_0x53bd6f];return _0x5f4e08;};'use strict';var util=require(_0xdefa('0x0'));var path=require('path');var _=require(_0xdefa('0x1'));var fs=require('fs');var json2xls=require(_0xdefa('0x2'));var BPromise=require(_0xdefa('0x3'));var zipdir=require(_0xdefa('0x4'));var rimraf=require(_0xdefa('0x5'));var db=require(_0xdefa('0x6'))['db'];var dbH=require(_0xdefa('0x6'))[_0xdefa('0x7')];var logger=require(_0xdefa('0x8'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xdefa('0x9')][0x2]);var QUERY=process[_0xdefa('0x9')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x7cbdb1,_0xfe80f7){var _0x31382d={'status':_0x7cbdb1};var _0x5a8897={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xfe80f7){_0x31382d['savename']=_0xfe80f7;}return db['AnalyticExtractedReport'][_0xdefa('0xa')](_0x31382d,_0x5a8897);}function main(){var _0xeb3171=0x1388;var _0x1c57cc;logger[_0xdefa('0xb')](util[_0xdefa('0xc')](_0xdefa('0xd'),EXTRACTED_REPORT_ID,_0xdefa('0xe')));return db[_0xdefa('0xf')][_0xdefa('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xdefa('0x11'),_0xdefa('0x12')]})[_0xdefa('0x13')](function(_0x3c2e8a){if(_0x3c2e8a){_0x1c57cc=_0x3c2e8a;_0xeb3171=_0x1c57cc['splitSizeXlsx']||0x1388;}})[_0xdefa('0x13')](function(){return dbH[_0xdefa('0x14')][_0xdefa('0x15')](util[_0xdefa('0xc')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xdefa('0x14')][_0xdefa('0x16')][_0xdefa('0x17')]});})['then'](function(_0x3cf842){if(!_0x3cf842[0x0][_0xdefa('0x18')]){return analyticExtractedReport(_0xdefa('0x19'));}var _0x9e2c18=[];var _0x174441=0x0;if(_0x1c57cc['split']){if(_0x3cf842&&_0x3cf842[_0xdefa('0x1a')]){var _0x4138b2=_[_0xdefa('0x1b')](_0x3cf842[0x0][_0xdefa('0x18')]/_0xeb3171);var _0x3f3b86=Number[_0xdefa('0x1c')](_0x3cf842[0x0][_0xdefa('0x18')]/_0xeb3171)?_0x3cf842[0x0][_0xdefa('0x18')]%_0xeb3171:0x0;_0x4138b2[_0xdefa('0x1d')](function(_0x2ba495){if(_0x2ba495>0x0){_0x174441+=_0xeb3171;}_0x9e2c18['push'](dbH[_0xdefa('0x14')][_0xdefa('0x15')](util['format'](_0xdefa('0x1e'),QUERY,_0xeb3171,_0x174441),{'type':dbH[_0xdefa('0x14')][_0xdefa('0x16')]['SELECT']}));});if(_0x3f3b86>0x0){_0x174441+=_0xeb3171;_0x9e2c18['push'](dbH[_0xdefa('0x14')]['query'](util[_0xdefa('0xc')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x3f3b86,_0x174441),{'type':dbH[_0xdefa('0x14')]['QueryTypes'][_0xdefa('0x17')]}));}}}else{_0x9e2c18[_0xdefa('0x1f')](dbH[_0xdefa('0x14')][_0xdefa('0x15')](QUERY,{'type':dbH['sequelize'][_0xdefa('0x16')][_0xdefa('0x17')]}));}var _0x34c1d7=path[_0xdefa('0x20')](PATH);var _0x573257=path[_0xdefa('0x21')](PATH,_0xdefa('0x22'));var _0x4434b7=_0x1c57cc['split']&&_0x9e2c18[_0xdefa('0x1a')]>0x1;var _0x2501b6=[];if(!fs[_0xdefa('0x23')](path['join'](_0x34c1d7,_0x573257))&&_0x4434b7){fs[_0xdefa('0x24')](path[_0xdefa('0x25')](_0x34c1d7,_0x573257));}return BPromise[_0xdefa('0x26')](_0x9e2c18,function(_0x522e89){_0x2501b6[_0xdefa('0x1f')](_0x522e89);})[_0xdefa('0x13')](function(){for(var _0x4c87ea=0x0;_0x4c87ea<_0x2501b6[_0xdefa('0x1a')];_0x4c87ea+=0x1){var _0x2bf770;var _0x376b39=_0x2501b6[_0x4c87ea];if(_0x4434b7){_0x2bf770=path[_0xdefa('0x25')](_0x34c1d7,_0x573257,util[_0xdefa('0xc')](_0xdefa('0x27'),_0x573257,_0x4c87ea,'xlsx'));}else{_0x2bf770=path['join'](_0x34c1d7,util[_0xdefa('0xc')](_0xdefa('0x28'),_0x573257,_0xdefa('0x29')));}fs[_0xdefa('0x2a')](_0x2bf770,json2xls(_0x376b39),'binary');}})['then'](function(){if(_0x4434b7){return new Promise(function(_0x4c2b65){zipdir(path['join'](_0x34c1d7,_0x573257),{'saveTo':path['join'](_0x34c1d7,util[_0xdefa('0xc')](_0xdefa('0x28'),_0x573257,_0xdefa('0x2b')))},function(_0x407ffe,_0x6ddbe4){rimraf(path[_0xdefa('0x25')](_0x34c1d7,_0x573257),function(){});_0x4c2b65(_0xdefa('0x2c'));});});}})[_0xdefa('0x13')](function(){logger[_0xdefa('0xb')](util['format'](_0xdefa('0x2d'),EXTRACTED_REPORT_ID,_0xdefa('0xe')));return analyticExtractedReport(_0xdefa('0x2e'),_0x4434b7?util['format'](_0xdefa('0x28'),_0x573257,_0x4434b7?'zip':_0xdefa('0x29')):null);});})[_0xdefa('0x2f')](function(_0x391362){logger['info'](util[_0xdefa('0xc')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xdefa('0xe')),util['inspect'](_0x391362,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xdefa('0x30'));})[_0xdefa('0x31')](function(){process[_0xdefa('0x32')](EXIT_CODE);});}main();