467f0fa60c6d627b1f35298c03e7465d928d212b
[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 _0xc113=['basename','.xlsx','length','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','binary','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','inspect','finally','exit','util','path','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','update','info','format','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','sequelize','QueryTypes','num','Empty','range','isInteger','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','push','SELECT'];(function(_0x139254,_0x53097b){var _0x5b1f66=function(_0x2444ab){while(--_0x2444ab){_0x139254['push'](_0x139254['shift']());}};_0x5b1f66(++_0x53097b);}(_0xc113,0x1ab));var _0x3c11=function(_0xd91e4c,_0x5d707f){_0xd91e4c=_0xd91e4c-0x0;var _0x34b657=_0xc113[_0xd91e4c];return _0x34b657;};'use strict';var util=require(_0x3c11('0x0'));var path=require(_0x3c11('0x1'));var _=require(_0x3c11('0x2'));var fs=require('fs');var json2xls=require(_0x3c11('0x3'));var BPromise=require(_0x3c11('0x4'));var zipdir=require(_0x3c11('0x5'));var rimraf=require(_0x3c11('0x6'));var db=require(_0x3c11('0x7'))['db'];var dbH=require(_0x3c11('0x7'))['dbH'];var logger=require(_0x3c11('0x8'))(_0x3c11('0x9'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x3c11('0xa')][0x3];var PATH=process[_0x3c11('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2fa44d,_0x5d6f91){var _0x16959a={'status':_0x2fa44d};var _0x4e98c0={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5d6f91){_0x16959a['savename']=_0x5d6f91;}return db['AnalyticExtractedReport'][_0x3c11('0xb')](_0x16959a,_0x4e98c0);}function main(){var _0x23d4ad=0x1388;var _0x5275df;logger[_0x3c11('0xc')](util[_0x3c11('0xd')](_0x3c11('0xe'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0x3c11('0xf')][_0x3c11('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x3c11('0x11'),_0x3c11('0x12')]})[_0x3c11('0x13')](function(_0x58c7c8){if(_0x58c7c8){_0x5275df=_0x58c7c8;_0x23d4ad=_0x5275df[_0x3c11('0x12')]||0x1388;}})[_0x3c11('0x13')](function(){return dbH['sequelize'][_0x3c11('0x14')](util[_0x3c11('0xd')](_0x3c11('0x15'),QUERY),{'type':dbH[_0x3c11('0x16')][_0x3c11('0x17')]['SELECT']});})[_0x3c11('0x13')](function(_0x2ba437){if(!_0x2ba437[0x0][_0x3c11('0x18')]){return analyticExtractedReport(_0x3c11('0x19'));}var _0x1d05f2=[];var _0x5b223f=0x0;if(_0x5275df['split']){if(_0x2ba437&&_0x2ba437['length']){var _0x43ee61=_[_0x3c11('0x1a')](_0x2ba437[0x0][_0x3c11('0x18')]/_0x23d4ad);var _0x42db8d=Number[_0x3c11('0x1b')](_0x2ba437[0x0][_0x3c11('0x18')]/_0x23d4ad)?_0x2ba437[0x0][_0x3c11('0x18')]%_0x23d4ad:0x0;_0x43ee61[_0x3c11('0x1c')](function(_0x3c2a18){if(_0x3c2a18>0x0){_0x5b223f+=_0x23d4ad;}_0x1d05f2['push'](dbH['sequelize'][_0x3c11('0x14')](util['format'](_0x3c11('0x1d'),QUERY,_0x23d4ad,_0x5b223f),{'type':dbH['sequelize'][_0x3c11('0x17')]['SELECT']}));});if(_0x42db8d>0x0){_0x5b223f+=_0x23d4ad;_0x1d05f2[_0x3c11('0x1e')](dbH['sequelize']['query'](util[_0x3c11('0xd')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x42db8d,_0x5b223f),{'type':dbH[_0x3c11('0x16')][_0x3c11('0x17')][_0x3c11('0x1f')]}));}}}else{_0x1d05f2[_0x3c11('0x1e')](dbH[_0x3c11('0x16')]['query'](QUERY,{'type':dbH[_0x3c11('0x16')]['QueryTypes'][_0x3c11('0x1f')]}));}var _0x414c02=path['dirname'](PATH);var _0x29f3cd=path[_0x3c11('0x20')](PATH,_0x3c11('0x21'));var _0x2df95d=_0x5275df[_0x3c11('0x11')]&&_0x1d05f2[_0x3c11('0x22')]>0x1;var _0x1af1fb=[];if(!fs[_0x3c11('0x23')](path[_0x3c11('0x24')](_0x414c02,_0x29f3cd))&&_0x2df95d){fs[_0x3c11('0x25')](path['join'](_0x414c02,_0x29f3cd));}return BPromise[_0x3c11('0x26')](_0x1d05f2,function(_0x3de4ab){_0x1af1fb[_0x3c11('0x1e')](_0x3de4ab);})[_0x3c11('0x13')](function(){for(var _0x50aec6=0x0;_0x50aec6<_0x1af1fb[_0x3c11('0x22')];_0x50aec6+=0x1){var _0x21401c;var _0x5151b0=_0x1af1fb[_0x50aec6];if(_0x2df95d){_0x21401c=path[_0x3c11('0x24')](_0x414c02,_0x29f3cd,util[_0x3c11('0xd')](_0x3c11('0x27'),_0x29f3cd,_0x50aec6,_0x3c11('0x28')));}else{_0x21401c=path[_0x3c11('0x24')](_0x414c02,util[_0x3c11('0xd')](_0x3c11('0x29'),_0x29f3cd,_0x3c11('0x28')));}fs['writeFileSync'](_0x21401c,json2xls(_0x5151b0),_0x3c11('0x2a'));}})[_0x3c11('0x13')](function(){if(_0x2df95d){return new Promise(function(_0x1ec787){zipdir(path[_0x3c11('0x24')](_0x414c02,_0x29f3cd),{'saveTo':path[_0x3c11('0x24')](_0x414c02,util[_0x3c11('0xd')](_0x3c11('0x29'),_0x29f3cd,'zip'))},function(_0xe9a49f,_0x6db1f0){rimraf(path[_0x3c11('0x24')](_0x414c02,_0x29f3cd),function(){});_0x1ec787(_0x3c11('0x2b'));});});}})[_0x3c11('0x13')](function(){logger[_0x3c11('0xc')](util['format'](_0x3c11('0x2c'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport('Completed',_0x2df95d?util[_0x3c11('0xd')](_0x3c11('0x29'),_0x29f3cd,_0x2df95d?'zip':_0x3c11('0x28')):null);});})[_0x3c11('0x2d')](function(_0x19b137){logger['info'](util[_0x3c11('0xd')](_0x3c11('0x2e'),EXTRACTED_REPORT_ID,_0x3c11('0x2f')),util[_0x3c11('0x30')](_0x19b137,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x3c11('0x31')](function(){process[_0x3c11('0x32')](EXIT_CODE);});}main();