6fb2d6a23293f496b008c03a874329181daf0699
[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 _0x412f=['push','dirname','basename','existsSync','join','mkdirSync','xlsx','writeFileSync','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','finally','exit','util','lodash','json2xls','bluebird','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','XLSX','find','split','splitSizeXlsx','then','sequelize','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','length','isInteger','forEach'];(function(_0x56bb70,_0x555777){var _0x175166=function(_0x2714d6){while(--_0x2714d6){_0x56bb70['push'](_0x56bb70['shift']());}};_0x175166(++_0x555777);}(_0x412f,0x181));var _0xf412=function(_0x34d9df,_0x169108){_0x34d9df=_0x34d9df-0x0;var _0x4f873a=_0x412f[_0x34d9df];return _0x4f873a;};'use strict';var util=require(_0xf412('0x0'));var path=require('path');var _=require(_0xf412('0x1'));var fs=require('fs');var json2xls=require(_0xf412('0x2'));var BPromise=require(_0xf412('0x3'));var zipdir=require('zip-dir');var rimraf=require('rimraf');var db=require('../../mysqldb')['db'];var dbH=require(_0xf412('0x4'))[_0xf412('0x5')];var logger=require(_0xf412('0x6'))(_0xf412('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0xf412('0x8')][0x2]);var QUERY=process[_0xf412('0x8')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x1e2896,_0x24de17){var _0x316fed={'status':_0x1e2896};var _0x3f4fc2={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x24de17){_0x316fed[_0xf412('0x9')]=_0x24de17;}return db[_0xf412('0xa')][_0xf412('0xb')](_0x316fed,_0x3f4fc2);}function main(){var _0x1e053a=0x1388;var _0x53bab2;logger[_0xf412('0xc')](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xf412('0xd')));return db['Setting'][_0xf412('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xf412('0xf'),_0xf412('0x10')]})[_0xf412('0x11')](function(_0xcac12a){if(_0xcac12a){_0x53bab2=_0xcac12a;_0x1e053a=_0x53bab2['splitSizeXlsx']||0x1388;}})[_0xf412('0x11')](function(){return dbH[_0xf412('0x12')][_0xf412('0x13')](util[_0xf412('0x14')](_0xf412('0x15'),QUERY),{'type':dbH[_0xf412('0x12')][_0xf412('0x16')][_0xf412('0x17')]});})[_0xf412('0x11')](function(_0xa0e731){if(!_0xa0e731[0x0][_0xf412('0x18')]){return analyticExtractedReport(_0xf412('0x19'));}var _0xd2480c=[];var _0xcb08de=0x0;if(_0x53bab2[_0xf412('0xf')]){if(_0xa0e731&&_0xa0e731[_0xf412('0x1a')]){var _0x5a78ca=_['range'](_0xa0e731[0x0]['num']/_0x1e053a);var _0x47e985=Number[_0xf412('0x1b')](_0xa0e731[0x0][_0xf412('0x18')]/_0x1e053a)?_0xa0e731[0x0][_0xf412('0x18')]%_0x1e053a:0x0;_0x5a78ca[_0xf412('0x1c')](function(_0xd03173){if(_0xd03173>0x0){_0xcb08de+=_0x1e053a;}_0xd2480c[_0xf412('0x1d')](dbH[_0xf412('0x12')]['query'](util[_0xf412('0x14')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1e053a,_0xcb08de),{'type':dbH['sequelize'][_0xf412('0x16')][_0xf412('0x17')]}));});if(_0x47e985>0x0){_0xcb08de+=_0x1e053a;_0xd2480c[_0xf412('0x1d')](dbH['sequelize'][_0xf412('0x13')](util[_0xf412('0x14')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x47e985,_0xcb08de),{'type':dbH['sequelize']['QueryTypes']['SELECT']}));}}}else{_0xd2480c[_0xf412('0x1d')](dbH[_0xf412('0x12')]['query'](QUERY,{'type':dbH['sequelize'][_0xf412('0x16')]['SELECT']}));}var _0x1dc6ae=path[_0xf412('0x1e')](PATH);var _0x2ace72=path[_0xf412('0x1f')](PATH,'.xlsx');var _0x5280c2=_0x53bab2[_0xf412('0xf')]&&_0xd2480c[_0xf412('0x1a')]>0x1;var _0x4db47f=[];if(!fs[_0xf412('0x20')](path[_0xf412('0x21')](_0x1dc6ae,_0x2ace72))&&_0x5280c2){fs[_0xf412('0x22')](path['join'](_0x1dc6ae,_0x2ace72));}return BPromise['each'](_0xd2480c,function(_0x367e18){_0x4db47f[_0xf412('0x1d')](_0x367e18);})['then'](function(){for(var _0x30ab00=0x0;_0x30ab00<_0x4db47f[_0xf412('0x1a')];_0x30ab00+=0x1){var _0x36e2d5;var _0x2c0088=_0x4db47f[_0x30ab00];if(_0x5280c2){_0x36e2d5=path[_0xf412('0x21')](_0x1dc6ae,_0x2ace72,util['format']('%s%d.%s',_0x2ace72,_0x30ab00,_0xf412('0x23')));}else{_0x36e2d5=path[_0xf412('0x21')](_0x1dc6ae,util[_0xf412('0x14')]('%s.%s',_0x2ace72,_0xf412('0x23')));}fs[_0xf412('0x24')](_0x36e2d5,json2xls(_0x2c0088),'binary');}})[_0xf412('0x11')](function(){if(_0x5280c2){return new Promise(function(_0x57f445){zipdir(path[_0xf412('0x21')](_0x1dc6ae,_0x2ace72),{'saveTo':path['join'](_0x1dc6ae,util[_0xf412('0x14')](_0xf412('0x25'),_0x2ace72,_0xf412('0x26')))},function(_0x12649c,_0x49db52){rimraf(path['join'](_0x1dc6ae,_0x2ace72),function(){});_0x57f445(_0xf412('0x27'));});});}})[_0xf412('0x11')](function(){logger['info'](util['format'](_0xf412('0x28'),EXTRACTED_REPORT_ID,_0xf412('0xd')));return analyticExtractedReport(_0xf412('0x29'),_0x5280c2?util[_0xf412('0x14')](_0xf412('0x25'),_0x2ace72,_0x5280c2?_0xf412('0x26'):_0xf412('0x23')):null);});})['catch'](function(_0x4311b1){logger[_0xf412('0xc')](util[_0xf412('0x14')](_0xf412('0x2a'),EXTRACTED_REPORT_ID,_0xf412('0xd')),util[_0xf412('0x2b')](_0x4311b1,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0xf412('0x2c')](function(){process[_0xf412('0x2d')](EXIT_CODE);});}main();