8a34dd198ad70c7e4fe93ea0c239546cc6beb968
[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 _0xe798=['lodash','bluebird','zip-dir','../../mysqldb','dbH','../../config/logger','argv','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','splitSizeXlsx','then','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','SELECT','num','Empty','length','range','isInteger','forEach','push','query','dirname','.xlsx','split','join','mkdirSync','each','xlsx','%s.%s','binary','zip','zip\x20finished','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','path'];(function(_0x32b8a9,_0x59d62b){var _0x40105c=function(_0x54c048){while(--_0x54c048){_0x32b8a9['push'](_0x32b8a9['shift']());}};_0x40105c(++_0x59d62b);}(_0xe798,0xe4));var _0x8e79=function(_0x23d666,_0x5deeae){_0x23d666=_0x23d666-0x0;var _0x3150b9=_0xe798[_0x23d666];return _0x3150b9;};'use strict';var util=require(_0x8e79('0x0'));var path=require(_0x8e79('0x1'));var _=require(_0x8e79('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x8e79('0x3'));var zipdir=require(_0x8e79('0x4'));var rimraf=require('rimraf');var db=require(_0x8e79('0x5'))['db'];var dbH=require(_0x8e79('0x5'))[_0x8e79('0x6')];var logger=require(_0x8e79('0x7'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x8e79('0x8')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x8e79('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x22d41b,_0x19b51d){var _0x8fee14={'status':_0x22d41b};var _0x53bce4={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x19b51d){_0x8fee14['savename']=_0x19b51d;}return db[_0x8e79('0x9')][_0x8e79('0xa')](_0x8fee14,_0x53bce4);}function main(){var _0x58f8ae=0x1388;var _0x14147f;logger[_0x8e79('0xb')](util[_0x8e79('0xc')](_0x8e79('0xd'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0x8e79('0xe')][_0x8e79('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x8e79('0x10')]})[_0x8e79('0x11')](function(_0x2e5a33){if(_0x2e5a33){_0x14147f=_0x2e5a33;_0x58f8ae=_0x14147f[_0x8e79('0x10')]||0x1388;}})[_0x8e79('0x11')](function(){return dbH['sequelize']['query'](util['format'](_0x8e79('0x12'),QUERY),{'type':dbH[_0x8e79('0x13')][_0x8e79('0x14')][_0x8e79('0x15')]});})['then'](function(_0x1613b7){if(!_0x1613b7[0x0][_0x8e79('0x16')]){return analyticExtractedReport(_0x8e79('0x17'));}var _0x389d50=[];var _0x76cda6=0x0;if(_0x14147f['split']){if(_0x1613b7&&_0x1613b7[_0x8e79('0x18')]){var _0x49b74e=_[_0x8e79('0x19')](_0x1613b7[0x0][_0x8e79('0x16')]/_0x58f8ae);var _0x41b6c8=Number[_0x8e79('0x1a')](_0x1613b7[0x0][_0x8e79('0x16')]/_0x58f8ae)?_0x1613b7[0x0]['num']%_0x58f8ae:0x0;_0x49b74e[_0x8e79('0x1b')](function(_0x9ebcdb){if(_0x9ebcdb>0x0){_0x76cda6+=_0x58f8ae;}_0x389d50[_0x8e79('0x1c')](dbH[_0x8e79('0x13')]['query'](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x58f8ae,_0x76cda6),{'type':dbH[_0x8e79('0x13')][_0x8e79('0x14')][_0x8e79('0x15')]}));});if(_0x41b6c8>0x0){_0x76cda6+=_0x58f8ae;_0x389d50[_0x8e79('0x1c')](dbH['sequelize'][_0x8e79('0x1d')](util[_0x8e79('0xc')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x41b6c8,_0x76cda6),{'type':dbH['sequelize']['QueryTypes']['SELECT']}));}}}else{_0x389d50[_0x8e79('0x1c')](dbH[_0x8e79('0x13')][_0x8e79('0x1d')](QUERY,{'type':dbH[_0x8e79('0x13')][_0x8e79('0x14')]['SELECT']}));}var _0x526d02=path[_0x8e79('0x1e')](PATH);var _0x456f8b=path['basename'](PATH,_0x8e79('0x1f'));var _0x58c014=_0x14147f[_0x8e79('0x20')]&&_0x389d50[_0x8e79('0x18')]>0x1;var _0x52c2e1=[];if(!fs['existsSync'](path[_0x8e79('0x21')](_0x526d02,_0x456f8b))&&_0x58c014){fs[_0x8e79('0x22')](path[_0x8e79('0x21')](_0x526d02,_0x456f8b));}return BPromise[_0x8e79('0x23')](_0x389d50,function(_0xb918cf){_0x52c2e1[_0x8e79('0x1c')](_0xb918cf);})['then'](function(){for(var _0x5ba35e=0x0;_0x5ba35e<_0x52c2e1[_0x8e79('0x18')];_0x5ba35e+=0x1){var _0x52faa;var _0x189462=_0x52c2e1[_0x5ba35e];if(_0x58c014){_0x52faa=path['join'](_0x526d02,_0x456f8b,util[_0x8e79('0xc')]('%s%d.%s',_0x456f8b,_0x5ba35e,_0x8e79('0x24')));}else{_0x52faa=path[_0x8e79('0x21')](_0x526d02,util[_0x8e79('0xc')](_0x8e79('0x25'),_0x456f8b,_0x8e79('0x24')));}fs['writeFileSync'](_0x52faa,json2xls(_0x189462),_0x8e79('0x26'));}})['then'](function(){if(_0x58c014){return new Promise(function(_0x49e0d1){zipdir(path[_0x8e79('0x21')](_0x526d02,_0x456f8b),{'saveTo':path[_0x8e79('0x21')](_0x526d02,util['format'](_0x8e79('0x25'),_0x456f8b,_0x8e79('0x27')))},function(_0x6290e1,_0x136a8b){rimraf(path[_0x8e79('0x21')](_0x526d02,_0x456f8b),function(){});_0x49e0d1(_0x8e79('0x28'));});});}})['then'](function(){logger[_0x8e79('0xb')](util[_0x8e79('0xc')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0x8e79('0x29'),_0x58c014?util[_0x8e79('0xc')]('%s.%s',_0x456f8b,_0x58c014?_0x8e79('0x27'):_0x8e79('0x24')):null);});})[_0x8e79('0x2a')](function(_0x505e78){logger['info'](util[_0x8e79('0xc')](_0x8e79('0x2b'),EXTRACTED_REPORT_ID,'XLSX'),util[_0x8e79('0x2c')](_0x505e78,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x8e79('0x2d'));})['finally'](function(){process['exit'](EXIT_CODE);});}main();