773847019b6fd499670d2046e9559e2a20bf3482
[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 _0x37a5=['Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','inspect','Failed','util','path','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','argv','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','sequelize','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','then','num','Empty','length','push','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','basename','split','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','writeFileSync','binary','zip','info'];(function(_0x4b13eb,_0x4f2e3d){var _0x2e7ae0=function(_0x25e126){while(--_0x25e126){_0x4b13eb['push'](_0x4b13eb['shift']());}};_0x2e7ae0(++_0x4f2e3d);}(_0x37a5,0x107));var _0x537a=function(_0x1969a7,_0x5a133a){_0x1969a7=_0x1969a7-0x0;var _0x3d665f=_0x37a5[_0x1969a7];return _0x3d665f;};'use strict';var util=require(_0x537a('0x0'));var path=require(_0x537a('0x1'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0x537a('0x2'));var BPromise=require(_0x537a('0x3'));var zipdir=require(_0x537a('0x4'));var rimraf=require(_0x537a('0x5'));var db=require(_0x537a('0x6'))['db'];var dbH=require(_0x537a('0x6'))[_0x537a('0x7')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x537a('0x8')][0x2]);var QUERY=process[_0x537a('0x8')][0x3];var PATH=process[_0x537a('0x8')][0x4];function analyticExtractedReport(_0x1ddd9d,_0x50d48c){var _0x539908={'status':_0x1ddd9d};var _0x4396b7={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x50d48c){_0x539908['savename']=_0x50d48c;}return db['AnalyticExtractedReport'][_0x537a('0x9')](_0x539908,_0x4396b7);}function main(){var _0x2b5917=0x1388;var _0x333122;logger['info'](util[_0x537a('0xa')](_0x537a('0xb'),EXTRACTED_REPORT_ID,_0x537a('0xc')));return db[_0x537a('0xd')][_0x537a('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split','splitSizeXlsx']})['then'](function(_0x390162){if(_0x390162){_0x333122=_0x390162;_0x2b5917=_0x333122['splitSizeXlsx']||0x1388;}})['then'](function(){return dbH[_0x537a('0xf')]['query'](util[_0x537a('0xa')](_0x537a('0x10'),QUERY),{'type':dbH[_0x537a('0xf')][_0x537a('0x11')]['SELECT']});})[_0x537a('0x12')](function(_0x53f4f4){if(!_0x53f4f4[0x0][_0x537a('0x13')]){return analyticExtractedReport(_0x537a('0x14'));}var _0x5e03de=[];var _0x109fca=0x0;var _0x5d7ce2=!![];if(_0x333122['split']){if(_0x53f4f4&&_0x53f4f4[_0x537a('0x15')]){var _0x3a4c2f=_0x53f4f4[0x0][_0x537a('0x13')]%(_0x109fca+_0x2b5917);for(;_0x5d7ce2;_0x109fca+=_0x2b5917,_0x3a4c2f=_0x53f4f4[0x0][_0x537a('0x13')]%(_0x109fca+_0x2b5917)){if(_0x3a4c2f==0x0||_0x3a4c2f==_0x53f4f4[0x0][_0x537a('0x13')]){_0x5d7ce2=![];}_0x5e03de[_0x537a('0x16')](dbH[_0x537a('0xf')]['query'](util[_0x537a('0xa')](_0x537a('0x17'),QUERY,_0x2b5917,_0x109fca),{'type':dbH[_0x537a('0xf')]['QueryTypes'][_0x537a('0x18')]}));}}}else{_0x5e03de[_0x537a('0x16')](dbH['sequelize']['query'](QUERY,{'type':dbH['sequelize']['QueryTypes']['SELECT']}));}var _0x46c3b9=path['dirname'](PATH);var _0x3713b4=path[_0x537a('0x19')](PATH,'.xlsx');var _0x316c58=_0x333122[_0x537a('0x1a')]&&_0x5e03de[_0x537a('0x15')]>0x1;var _0x262f86=[];if(!fs[_0x537a('0x1b')](path[_0x537a('0x1c')](_0x46c3b9,_0x3713b4))&&_0x316c58){fs[_0x537a('0x1d')](path['join'](_0x46c3b9,_0x3713b4));}return BPromise[_0x537a('0x1e')](_0x5e03de,function(_0x387396){_0x262f86[_0x537a('0x16')](_0x387396);})[_0x537a('0x12')](function(){for(var _0x2aa1fc=0x0;_0x2aa1fc<_0x262f86['length'];_0x2aa1fc+=0x1){var _0x5c815c;var _0xba0650=_0x262f86[_0x2aa1fc];if(_0x316c58){_0x5c815c=path[_0x537a('0x1c')](_0x46c3b9,_0x3713b4,util['format'](_0x537a('0x1f'),_0x3713b4,_0x2aa1fc,_0x537a('0x20')));}else{_0x5c815c=path[_0x537a('0x1c')](_0x46c3b9,util[_0x537a('0xa')](_0x537a('0x21'),_0x3713b4,_0x537a('0x20')));}fs[_0x537a('0x22')](_0x5c815c,json2xls(_0xba0650),_0x537a('0x23'));}})[_0x537a('0x12')](function(){if(_0x316c58){zipdir(path[_0x537a('0x1c')](_0x46c3b9,_0x3713b4),{'saveTo':path[_0x537a('0x1c')](_0x46c3b9,util['format']('%s.%s',_0x3713b4,_0x537a('0x24')))},function(_0x1d5e15,_0x5be5aa){});rimraf(path[_0x537a('0x1c')](_0x46c3b9,_0x3713b4),function(){});}})[_0x537a('0x12')](function(){logger[_0x537a('0x25')](util[_0x537a('0xa')](_0x537a('0x26'),EXTRACTED_REPORT_ID,_0x537a('0xc')));return analyticExtractedReport(_0x537a('0x27'),_0x316c58?util[_0x537a('0xa')](_0x537a('0x21'),_0x3713b4,_0x316c58?_0x537a('0x24'):_0x537a('0x20')):null);});})[_0x537a('0x28')](function(_0x2c6268){logger[_0x537a('0x25')](util[_0x537a('0xa')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x537a('0xc')),util[_0x537a('0x29')](_0x2c6268,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x537a('0x2a'));});}main();