8884e3114ee373ae697473b22a8e9260c775c326
[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 _0x359c=['push','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','.xlsx','existsSync','join','mkdirSync','%s%d.%s','xlsx','%s.%s','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','inspect','Failed','finally','exit','util','path','lodash','json2xls','bluebird','zip-dir','rimraf','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','then','sequelize','query','Empty','length','isInteger','num','forEach'];(function(_0x5b54ce,_0x50a38c){var _0x5e9502=function(_0x18d11a){while(--_0x18d11a){_0x5b54ce['push'](_0x5b54ce['shift']());}};_0x5e9502(++_0x50a38c);}(_0x359c,0xa5));var _0xc359=function(_0x1f7fcc,_0x5a1912){_0x1f7fcc=_0x1f7fcc-0x0;var _0x12eeb0=_0x359c[_0x1f7fcc];return _0x12eeb0;};'use strict';var util=require(_0xc359('0x0'));var path=require(_0xc359('0x1'));var _=require(_0xc359('0x2'));var fs=require('fs');var json2xls=require(_0xc359('0x3'));var BPromise=require(_0xc359('0x4'));var zipdir=require(_0xc359('0x5'));var rimraf=require(_0xc359('0x6'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0xc359('0x7')];var logger=require(_0xc359('0x8'))(_0xc359('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0xc359('0xa')][0x2]);var QUERY=process[_0xc359('0xa')][0x3];var PATH=process[_0xc359('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x1f612f,_0x306d9d){var _0x44a306={'status':_0x1f612f};var _0x332dd2={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x306d9d){_0x44a306[_0xc359('0xb')]=_0x306d9d;}return db[_0xc359('0xc')][_0xc359('0xd')](_0x44a306,_0x332dd2);}function main(){var _0x6dafab=0x1388;var _0x45de4b;logger['info'](util[_0xc359('0xe')](_0xc359('0xf'),EXTRACTED_REPORT_ID,_0xc359('0x10')));return db[_0xc359('0x11')][_0xc359('0x12')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split','splitSizeXlsx']})['then'](function(_0xc52332){if(_0xc52332){_0x45de4b=_0xc52332;_0x6dafab=_0x45de4b['splitSizeXlsx']||0x1388;}})[_0xc359('0x13')](function(){return dbH[_0xc359('0x14')][_0xc359('0x15')](util[_0xc359('0xe')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize']['QueryTypes']['SELECT']});})[_0xc359('0x13')](function(_0x2c628f){if(!_0x2c628f[0x0]['num']){return analyticExtractedReport(_0xc359('0x16'));}var _0x5b5008=[];var _0x1ec62c=0x0;if(_0x45de4b['split']){if(_0x2c628f&&_0x2c628f[_0xc359('0x17')]){var _0x5b41ce=_['range'](_0x2c628f[0x0]['num']/_0x6dafab);var _0xbd523b=Number[_0xc359('0x18')](_0x2c628f[0x0][_0xc359('0x19')]/_0x6dafab)?_0x2c628f[0x0]['num']%_0x6dafab:0x0;_0x5b41ce[_0xc359('0x1a')](function(_0x781589){if(_0x781589>0x0){_0x1ec62c+=_0x6dafab;}_0x5b5008[_0xc359('0x1b')](dbH[_0xc359('0x14')]['query'](util[_0xc359('0xe')](_0xc359('0x1c'),QUERY,_0x6dafab,_0x1ec62c),{'type':dbH[_0xc359('0x14')][_0xc359('0x1d')][_0xc359('0x1e')]}));});if(_0xbd523b>0x0){_0x1ec62c+=_0x6dafab;_0x5b5008[_0xc359('0x1b')](dbH[_0xc359('0x14')][_0xc359('0x15')](util[_0xc359('0xe')](_0xc359('0x1c'),QUERY,_0xbd523b,_0x1ec62c),{'type':dbH[_0xc359('0x14')]['QueryTypes'][_0xc359('0x1e')]}));}}}else{_0x5b5008[_0xc359('0x1b')](dbH[_0xc359('0x14')]['query'](QUERY,{'type':dbH['sequelize'][_0xc359('0x1d')]['SELECT']}));}var _0x1dcd75=path[_0xc359('0x1f')](PATH);var _0x3107d0=path[_0xc359('0x20')](PATH,_0xc359('0x21'));var _0x22c9b9=_0x45de4b['split']&&_0x5b5008[_0xc359('0x17')]>0x1;var _0x2b48fe=[];if(!fs[_0xc359('0x22')](path[_0xc359('0x23')](_0x1dcd75,_0x3107d0))&&_0x22c9b9){fs[_0xc359('0x24')](path[_0xc359('0x23')](_0x1dcd75,_0x3107d0));}return BPromise['each'](_0x5b5008,function(_0x7960f3){_0x2b48fe['push'](_0x7960f3);})['then'](function(){for(var _0x1e0137=0x0;_0x1e0137<_0x2b48fe[_0xc359('0x17')];_0x1e0137+=0x1){var _0x842276;var _0x7bd9a8=_0x2b48fe[_0x1e0137];if(_0x22c9b9){_0x842276=path[_0xc359('0x23')](_0x1dcd75,_0x3107d0,util['format'](_0xc359('0x25'),_0x3107d0,_0x1e0137,_0xc359('0x26')));}else{_0x842276=path['join'](_0x1dcd75,util[_0xc359('0xe')](_0xc359('0x27'),_0x3107d0,'xlsx'));}fs['writeFileSync'](_0x842276,json2xls(_0x7bd9a8),'binary');}})['then'](function(){if(_0x22c9b9){return new Promise(function(_0x4051fd){zipdir(path[_0xc359('0x23')](_0x1dcd75,_0x3107d0),{'saveTo':path[_0xc359('0x23')](_0x1dcd75,util[_0xc359('0xe')](_0xc359('0x27'),_0x3107d0,_0xc359('0x28')))},function(_0x80ecee,_0x2b748e){rimraf(path[_0xc359('0x23')](_0x1dcd75,_0x3107d0),function(){});_0x4051fd(_0xc359('0x29'));});});}})['then'](function(){logger[_0xc359('0x2a')](util[_0xc359('0xe')](_0xc359('0x2b'),EXTRACTED_REPORT_ID,_0xc359('0x10')));return analyticExtractedReport('Completed',_0x22c9b9?util[_0xc359('0xe')](_0xc359('0x27'),_0x3107d0,_0x22c9b9?'zip':_0xc359('0x26')):null);});})['catch'](function(_0x27e20e){logger[_0xc359('0x2a')](util[_0xc359('0xe')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'XLSX'),util[_0xc359('0x2c')](_0x27e20e,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xc359('0x2d'));})[_0xc359('0x2e')](function(){process[_0xc359('0x2f')](EXIT_CODE);});}main();