3ba450c024d22544f555a1b07d65828c94db6f85
[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 _0x6f2f=['zip-dir','../../mysqldb','dbH','../../config/logger','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','splitSizeXlsx','then','sequelize','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','split','length','range','isInteger','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','push','query','dirname','basename','.xlsx','existsSync','join','mkdirSync','each','%s%d.%s','xlsx','%s.%s','writeFileSync','binary','zip','zip\x20finished','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','exit','util','path'];(function(_0x2cc842,_0xd6800d){var _0x24adab=function(_0x41ab67){while(--_0x41ab67){_0x2cc842['push'](_0x2cc842['shift']());}};_0x24adab(++_0xd6800d);}(_0x6f2f,0xbe));var _0xf6f2=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0x6f2f[_0x4b055c];return _0x4b62bb;};'use strict';var util=require(_0xf6f2('0x0'));var path=require(_0xf6f2('0x1'));var _=require('lodash');var fs=require('fs');var json2xls=require('json2xls');var BPromise=require('bluebird');var zipdir=require(_0xf6f2('0x2'));var rimraf=require('rimraf');var db=require('../../mysqldb')['db'];var dbH=require(_0xf6f2('0x3'))[_0xf6f2('0x4')];var logger=require(_0xf6f2('0x5'))('analytics');var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xf6f2('0x6')][0x3];var PATH=process[_0xf6f2('0x6')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x26cd28,_0x774922){var _0x15a71c={'status':_0x26cd28};var _0x1873c8={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x774922){_0x15a71c[_0xf6f2('0x7')]=_0x774922;}return db[_0xf6f2('0x8')][_0xf6f2('0x9')](_0x15a71c,_0x1873c8);}function main(){var _0x17ffd2=0x1388;var _0x55a260;logger[_0xf6f2('0xa')](util[_0xf6f2('0xb')](_0xf6f2('0xc'),EXTRACTED_REPORT_ID,_0xf6f2('0xd')));return db['Setting']['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xf6f2('0xe')]})[_0xf6f2('0xf')](function(_0x131a18){if(_0x131a18){_0x55a260=_0x131a18;_0x17ffd2=_0x55a260[_0xf6f2('0xe')]||0x1388;}})[_0xf6f2('0xf')](function(){return dbH[_0xf6f2('0x10')]['query'](util[_0xf6f2('0xb')](_0xf6f2('0x11'),QUERY),{'type':dbH[_0xf6f2('0x10')][_0xf6f2('0x12')][_0xf6f2('0x13')]});})['then'](function(_0x2b28c1){if(!_0x2b28c1[0x0][_0xf6f2('0x14')]){return analyticExtractedReport(_0xf6f2('0x15'));}var _0x26c176=[];var _0x2d4294=0x0;if(_0x55a260[_0xf6f2('0x16')]){if(_0x2b28c1&&_0x2b28c1[_0xf6f2('0x17')]){var _0x4441f3=_[_0xf6f2('0x18')](_0x2b28c1[0x0][_0xf6f2('0x14')]/_0x17ffd2);var _0x400055=Number[_0xf6f2('0x19')](_0x2b28c1[0x0][_0xf6f2('0x14')]/_0x17ffd2)?_0x2b28c1[0x0][_0xf6f2('0x14')]%_0x17ffd2:0x0;_0x4441f3[_0xf6f2('0x1a')](function(_0x537b35){if(_0x537b35>0x0){_0x2d4294+=_0x17ffd2;}_0x26c176['push'](dbH[_0xf6f2('0x10')]['query'](util[_0xf6f2('0xb')](_0xf6f2('0x1b'),QUERY,_0x17ffd2,_0x2d4294),{'type':dbH[_0xf6f2('0x10')][_0xf6f2('0x12')]['SELECT']}));});if(_0x400055>0x0){_0x2d4294+=_0x17ffd2;_0x26c176[_0xf6f2('0x1c')](dbH[_0xf6f2('0x10')][_0xf6f2('0x1d')](util[_0xf6f2('0xb')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x400055,_0x2d4294),{'type':dbH[_0xf6f2('0x10')]['QueryTypes'][_0xf6f2('0x13')]}));}}}else{_0x26c176['push'](dbH[_0xf6f2('0x10')][_0xf6f2('0x1d')](QUERY,{'type':dbH['sequelize'][_0xf6f2('0x12')][_0xf6f2('0x13')]}));}var _0x3b0ed5=path[_0xf6f2('0x1e')](PATH);var _0x219a12=path[_0xf6f2('0x1f')](PATH,_0xf6f2('0x20'));var _0x1f87ab=_0x55a260['split']&&_0x26c176[_0xf6f2('0x17')]>0x1;var _0x2081f6=[];if(!fs[_0xf6f2('0x21')](path[_0xf6f2('0x22')](_0x3b0ed5,_0x219a12))&&_0x1f87ab){fs[_0xf6f2('0x23')](path[_0xf6f2('0x22')](_0x3b0ed5,_0x219a12));}return BPromise[_0xf6f2('0x24')](_0x26c176,function(_0x34ecdc){_0x2081f6[_0xf6f2('0x1c')](_0x34ecdc);})[_0xf6f2('0xf')](function(){for(var _0x2c643d=0x0;_0x2c643d<_0x2081f6['length'];_0x2c643d+=0x1){var _0x2aa645;var _0x26c4dc=_0x2081f6[_0x2c643d];if(_0x1f87ab){_0x2aa645=path[_0xf6f2('0x22')](_0x3b0ed5,_0x219a12,util[_0xf6f2('0xb')](_0xf6f2('0x25'),_0x219a12,_0x2c643d,_0xf6f2('0x26')));}else{_0x2aa645=path[_0xf6f2('0x22')](_0x3b0ed5,util[_0xf6f2('0xb')](_0xf6f2('0x27'),_0x219a12,_0xf6f2('0x26')));}fs[_0xf6f2('0x28')](_0x2aa645,json2xls(_0x26c4dc),_0xf6f2('0x29'));}})['then'](function(){if(_0x1f87ab){return new Promise(function(_0x13145f){zipdir(path[_0xf6f2('0x22')](_0x3b0ed5,_0x219a12),{'saveTo':path[_0xf6f2('0x22')](_0x3b0ed5,util[_0xf6f2('0xb')](_0xf6f2('0x27'),_0x219a12,_0xf6f2('0x2a')))},function(_0x630ebf,_0x18570a){rimraf(path[_0xf6f2('0x22')](_0x3b0ed5,_0x219a12),function(){});_0x13145f(_0xf6f2('0x2b'));});});}})[_0xf6f2('0xf')](function(){logger[_0xf6f2('0xa')](util[_0xf6f2('0xb')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport('Completed',_0x1f87ab?util[_0xf6f2('0xb')](_0xf6f2('0x27'),_0x219a12,_0x1f87ab?'zip':'xlsx'):null);});})[_0xf6f2('0x2c')](function(_0x2975eb){logger[_0xf6f2('0xa')](util[_0xf6f2('0xb')](_0xf6f2('0x2d'),EXTRACTED_REPORT_ID,_0xf6f2('0xd')),util['inspect'](_0x2975eb,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xf6f2('0x2e'));})['finally'](function(){process[_0xf6f2('0x2f')](EXIT_CODE);});}main();