9392b6979bbe672afd85b791c209a25054ee050a
[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 _0x3c50=['find','split','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','num','push','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','dirname','.xlsx','length','mkdirSync','join','%s%d.%s','xlsx','%s.%s','writeFileSync','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','zip','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','analytics','argv','AnalyticExtractedReport','info','format','XLSX','Setting'];(function(_0x2de020,_0x252df0){var _0x182b7c=function(_0xcbcdaa){while(--_0xcbcdaa){_0x2de020['push'](_0x2de020['shift']());}};_0x182b7c(++_0x252df0);}(_0x3c50,0x132));var _0x03c5=function(_0x161203,_0x1f3d9a){_0x161203=_0x161203-0x0;var _0x438e10=_0x3c50[_0x161203];return _0x438e10;};'use strict';var util=require(_0x03c5('0x0'));var path=require('path');var _=require(_0x03c5('0x1'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x03c5('0x2'));var zipdir=require(_0x03c5('0x3'));var rimraf=require(_0x03c5('0x4'));var db=require(_0x03c5('0x5'))['db'];var dbH=require(_0x03c5('0x5'))[_0x03c5('0x6')];var logger=require('../../config/logger')(_0x03c5('0x7'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x03c5('0x8')][0x3];var PATH=process[_0x03c5('0x8')][0x4];function analyticExtractedReport(_0x2f856a,_0x55c6a3){var _0x3cc5ef={'status':_0x2f856a};var _0x4dadc4={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x55c6a3){_0x3cc5ef['savename']=_0x55c6a3;}return db[_0x03c5('0x9')]['update'](_0x3cc5ef,_0x4dadc4);}function main(){var _0x457ec8=0x1388;var _0x5a3bed;logger[_0x03c5('0xa')](util[_0x03c5('0xb')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x03c5('0xc')));return db[_0x03c5('0xd')][_0x03c5('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x03c5('0xf'),_0x03c5('0x10')]})[_0x03c5('0x11')](function(_0x50b2e3){if(_0x50b2e3){_0x5a3bed=_0x50b2e3;_0x457ec8=_0x5a3bed[_0x03c5('0x10')]||0x1388;}})[_0x03c5('0x11')](function(){return dbH[_0x03c5('0x12')][_0x03c5('0x13')](util['format'](_0x03c5('0x14'),QUERY),{'type':dbH[_0x03c5('0x12')]['QueryTypes']['SELECT']});})[_0x03c5('0x11')](function(_0x5a7113){if(!_0x5a7113[0x0]['num']){return analyticExtractedReport('Empty');}var _0xc23735=[];var _0x4c71ed=0x0;var _0x2458fa=!![];if(_0x5a3bed[_0x03c5('0xf')]){if(_0x5a7113&&_0x5a7113['length']){var _0x39ab55=_0x5a7113[0x0][_0x03c5('0x15')]%(_0x4c71ed+_0x457ec8);for(;_0x2458fa;_0x4c71ed+=_0x457ec8,_0x39ab55=_0x5a7113[0x0][_0x03c5('0x15')]%(_0x4c71ed+_0x457ec8)){if(_0x39ab55==0x0||_0x39ab55==_0x5a7113[0x0]['num']){_0x2458fa=![];}_0xc23735[_0x03c5('0x16')](dbH[_0x03c5('0x12')]['query'](util['format'](_0x03c5('0x17'),QUERY,_0x457ec8,_0x4c71ed),{'type':dbH[_0x03c5('0x12')]['QueryTypes']['SELECT']}));}}}else{_0xc23735[_0x03c5('0x16')](dbH[_0x03c5('0x12')][_0x03c5('0x13')](QUERY,{'type':dbH[_0x03c5('0x12')]['QueryTypes'][_0x03c5('0x18')]}));}var _0x4b16b8=path[_0x03c5('0x19')](PATH);var _0x435a0d=path['basename'](PATH,_0x03c5('0x1a'));var _0x436711=_0x5a3bed[_0x03c5('0xf')]&&_0xc23735[_0x03c5('0x1b')]>0x1;var _0x22afe3=[];if(!fs['existsSync'](path['join'](_0x4b16b8,_0x435a0d))&&_0x436711){fs[_0x03c5('0x1c')](path[_0x03c5('0x1d')](_0x4b16b8,_0x435a0d));}return BPromise['each'](_0xc23735,function(_0x142158){_0x22afe3[_0x03c5('0x16')](_0x142158);})['then'](function(){for(var _0x5a5855=0x0;_0x5a5855<_0x22afe3[_0x03c5('0x1b')];_0x5a5855+=0x1){var _0x2926a2;var _0x1c8e68=_0x22afe3[_0x5a5855];if(_0x436711){_0x2926a2=path['join'](_0x4b16b8,_0x435a0d,util[_0x03c5('0xb')](_0x03c5('0x1e'),_0x435a0d,_0x5a5855,_0x03c5('0x1f')));}else{_0x2926a2=path[_0x03c5('0x1d')](_0x4b16b8,util[_0x03c5('0xb')](_0x03c5('0x20'),_0x435a0d,_0x03c5('0x1f')));}fs[_0x03c5('0x21')](_0x2926a2,json2xls(_0x1c8e68),'binary');}})[_0x03c5('0x11')](function(){if(_0x436711){zipdir(path[_0x03c5('0x1d')](_0x4b16b8,_0x435a0d),{'saveTo':path['join'](_0x4b16b8,util[_0x03c5('0xb')]('%s.%s',_0x435a0d,'zip'))},function(_0x54e5eb,_0x3d35f0){});rimraf(path[_0x03c5('0x1d')](_0x4b16b8,_0x435a0d),function(){});}})[_0x03c5('0x11')](function(){logger['info'](util['format'](_0x03c5('0x22'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0x03c5('0x23'),_0x436711?util['format']('%s.%s',_0x435a0d,_0x436711?_0x03c5('0x24'):_0x03c5('0x1f')):null);});})['catch'](function(_0x3909fb){logger['info'](util[_0x03c5('0xb')](_0x03c5('0x25'),EXTRACTED_REPORT_ID,_0x03c5('0xc')),util[_0x03c5('0x26')](_0x3909fb,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x03c5('0x27'));});}main();