14870a5ec1735f16cbcd943b4bb8d99cee2907bc
[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 _0x830b=['xlsx','%s.%s','binary','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Failed','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','find','split','splitSizeXlsx','then','sequelize','query','QueryTypes','SELECT','num','Empty','length','%s\x20limit\x20%d\x20OFFSET\x20%d','push','basename','.xlsx','existsSync','join','mkdirSync','each'];(function(_0x21b359,_0x4dc80e){var _0x57b8e7=function(_0x135adb){while(--_0x135adb){_0x21b359['push'](_0x21b359['shift']());}};_0x57b8e7(++_0x4dc80e);}(_0x830b,0xab));var _0xb830=function(_0xf17c26,_0x31b7df){_0xf17c26=_0xf17c26-0x0;var _0x23a5ae=_0x830b[_0xf17c26];return _0x23a5ae;};'use strict';var util=require('util');var path=require('path');var _=require(_0xb830('0x0'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0xb830('0x1'));var zipdir=require(_0xb830('0x2'));var rimraf=require(_0xb830('0x3'));var db=require('../../mysqldb')['db'];var dbH=require(_0xb830('0x4'))[_0xb830('0x5')];var logger=require(_0xb830('0x6'))(_0xb830('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0xb830('0x8')][0x2]);var QUERY=process[_0xb830('0x8')][0x3];var PATH=process[_0xb830('0x8')][0x4];function analyticExtractedReport(_0x350230,_0x2c634b){var _0x3b95ed={'status':_0x350230};var _0x2a5298={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x2c634b){_0x3b95ed[_0xb830('0x9')]=_0x2c634b;}return db['AnalyticExtractedReport'][_0xb830('0xa')](_0x3b95ed,_0x2a5298);}function main(){var _0x4571ef=0x1388;var _0x4b26ed;logger[_0xb830('0xb')](util[_0xb830('0xc')](_0xb830('0xd'),EXTRACTED_REPORT_ID,_0xb830('0xe')));return db['Setting'][_0xb830('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xb830('0x10'),_0xb830('0x11')]})['then'](function(_0x527a7a){if(_0x527a7a){_0x4b26ed=_0x527a7a;_0x4571ef=_0x4b26ed['splitSizeXlsx']||0x1388;}})[_0xb830('0x12')](function(){return dbH[_0xb830('0x13')][_0xb830('0x14')](util[_0xb830('0xc')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xb830('0x13')][_0xb830('0x15')][_0xb830('0x16')]});})[_0xb830('0x12')](function(_0x1c6c0a){if(!_0x1c6c0a[0x0][_0xb830('0x17')]){return analyticExtractedReport(_0xb830('0x18'));}var _0x27eede=[];var _0x2eab32=0x0;var _0x127304=!![];if(_0x4b26ed[_0xb830('0x10')]){if(_0x1c6c0a&&_0x1c6c0a[_0xb830('0x19')]){var _0x135d6e=_0x1c6c0a[0x0][_0xb830('0x17')]%(_0x2eab32+_0x4571ef);for(;_0x127304;_0x2eab32+=_0x4571ef,_0x135d6e=_0x1c6c0a[0x0][_0xb830('0x17')]%(_0x2eab32+_0x4571ef)){if(_0x135d6e==0x0||_0x135d6e==_0x1c6c0a[0x0]['num']){_0x127304=![];}_0x27eede['push'](dbH[_0xb830('0x13')]['query'](util[_0xb830('0xc')](_0xb830('0x1a'),QUERY,_0x4571ef,_0x2eab32),{'type':dbH[_0xb830('0x13')][_0xb830('0x15')][_0xb830('0x16')]}));}}}else{_0x27eede[_0xb830('0x1b')](dbH['sequelize'][_0xb830('0x14')](QUERY,{'type':dbH[_0xb830('0x13')][_0xb830('0x15')][_0xb830('0x16')]}));}var _0x48c726=path['dirname'](PATH);var _0x2611ee=path[_0xb830('0x1c')](PATH,_0xb830('0x1d'));var _0x58adb2=_0x4b26ed[_0xb830('0x10')]&&_0x27eede['length']>0x1;var _0x4a880b=[];if(!fs[_0xb830('0x1e')](path[_0xb830('0x1f')](_0x48c726,_0x2611ee))&&_0x58adb2){fs[_0xb830('0x20')](path[_0xb830('0x1f')](_0x48c726,_0x2611ee));}return BPromise[_0xb830('0x21')](_0x27eede,function(_0x490842){_0x4a880b['push'](_0x490842);})['then'](function(){for(var _0x44cac2=0x0;_0x44cac2<_0x4a880b[_0xb830('0x19')];_0x44cac2+=0x1){var _0x59ddcf;var _0x345a67=_0x4a880b[_0x44cac2];if(_0x58adb2){_0x59ddcf=path[_0xb830('0x1f')](_0x48c726,_0x2611ee,util['format']('%s%d.%s',_0x2611ee,_0x44cac2,_0xb830('0x22')));}else{_0x59ddcf=path['join'](_0x48c726,util[_0xb830('0xc')](_0xb830('0x23'),_0x2611ee,_0xb830('0x22')));}fs['writeFileSync'](_0x59ddcf,json2xls(_0x345a67),_0xb830('0x24'));}})[_0xb830('0x12')](function(){if(_0x58adb2){zipdir(path[_0xb830('0x1f')](_0x48c726,_0x2611ee),{'saveTo':path[_0xb830('0x1f')](_0x48c726,util['format']('%s.%s',_0x2611ee,'zip'))},function(_0x183ce1,_0x3a4761){});rimraf(path[_0xb830('0x1f')](_0x48c726,_0x2611ee),function(){});}})[_0xb830('0x12')](function(){logger[_0xb830('0xb')](util[_0xb830('0xc')](_0xb830('0x25'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0xb830('0x26'),_0x58adb2?util[_0xb830('0xc')](_0xb830('0x23'),_0x2611ee,_0x58adb2?'zip':_0xb830('0x22')):null);});})[_0xb830('0x27')](function(_0x3371c4){logger[_0xb830('0xb')](util[_0xb830('0xc')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xb830('0xe')),util['inspect'](_0x3371c4,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xb830('0x28'));});}main();