Built motion from commit 639a1a7f.|2.6.19
[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 _0x15bf=['SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','Empty','length','range','num','forEach','push','format','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.xlsx','existsSync','mkdirSync','each','join','%s%d.%s','xlsx','writeFileSync','binary','zip\x20finished','Completed','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Failed','exit','util','path','json2xls','rimraf','../../mysqldb','../../config/logger','argv','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','splitSizeXlsx','then','sequelize','query'];(function(_0x196fc5,_0x35f429){var _0x1b340d=function(_0x4922c4){while(--_0x4922c4){_0x196fc5['push'](_0x196fc5['shift']());}};_0x1b340d(++_0x35f429);}(_0x15bf,0x18e));var _0xf15b=function(_0x209941,_0x5c9988){_0x209941=_0x209941-0x0;var _0x1e8729=_0x15bf[_0x209941];return _0x1e8729;};'use strict';var util=require(_0xf15b('0x0'));var path=require(_0xf15b('0x1'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0xf15b('0x2'));var BPromise=require('bluebird');var zipdir=require('zip-dir');var rimraf=require(_0xf15b('0x3'));var db=require(_0xf15b('0x4'))['db'];var dbH=require(_0xf15b('0x4'))['dbH'];var logger=require(_0xf15b('0x5'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xf15b('0x6')][0x2]);var QUERY=process[_0xf15b('0x6')][0x3];var PATH=process[_0xf15b('0x6')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x5e8b8a,_0x26b19c){var _0x155bdc={'status':_0x5e8b8a};var _0xbbbbe8={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x26b19c){_0x155bdc['savename']=_0x26b19c;}return db['AnalyticExtractedReport']['update'](_0x155bdc,_0xbbbbe8);}function main(){var _0x19e9ca=0x1388;var _0x3581b3;logger[_0xf15b('0x7')](util['format'](_0xf15b('0x8'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0xf15b('0x9')][_0xf15b('0xa')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xf15b('0xb'),_0xf15b('0xc')]})[_0xf15b('0xd')](function(_0x3de16e){if(_0x3de16e){_0x3581b3=_0x3de16e;_0x19e9ca=_0x3581b3['splitSizeXlsx']||0x1388;}})['then'](function(){return dbH[_0xf15b('0xe')][_0xf15b('0xf')](util['format'](_0xf15b('0x10'),QUERY),{'type':dbH[_0xf15b('0xe')][_0xf15b('0x11')][_0xf15b('0x12')]});})['then'](function(_0x50cff7){if(!_0x50cff7[0x0]['num']){return analyticExtractedReport(_0xf15b('0x13'));}var _0x36937e=[];var _0x6545d8=0x0;if(_0x3581b3['split']){if(_0x50cff7&&_0x50cff7[_0xf15b('0x14')]){var _0x121ae4=_[_0xf15b('0x15')](_0x50cff7[0x0][_0xf15b('0x16')]/_0x19e9ca);var _0x5959d0=Number['isInteger'](_0x50cff7[0x0][_0xf15b('0x16')]/_0x19e9ca)?_0x50cff7[0x0][_0xf15b('0x16')]%_0x19e9ca:0x0;_0x121ae4[_0xf15b('0x17')](function(_0x177a3){if(_0x177a3>0x0){_0x6545d8+=_0x19e9ca;}_0x36937e[_0xf15b('0x18')](dbH[_0xf15b('0xe')][_0xf15b('0xf')](util[_0xf15b('0x19')](_0xf15b('0x1a'),QUERY,_0x19e9ca,_0x6545d8),{'type':dbH[_0xf15b('0xe')][_0xf15b('0x11')][_0xf15b('0x12')]}));});if(_0x5959d0>0x0){_0x6545d8+=_0x19e9ca;_0x36937e[_0xf15b('0x18')](dbH[_0xf15b('0xe')][_0xf15b('0xf')](util['format'](_0xf15b('0x1a'),QUERY,_0x5959d0,_0x6545d8),{'type':dbH[_0xf15b('0xe')][_0xf15b('0x11')][_0xf15b('0x12')]}));}}}else{_0x36937e[_0xf15b('0x18')](dbH['sequelize'][_0xf15b('0xf')](QUERY,{'type':dbH[_0xf15b('0xe')]['QueryTypes'][_0xf15b('0x12')]}));}var _0x4faef7=path[_0xf15b('0x1b')](PATH);var _0x3039e0=path[_0xf15b('0x1c')](PATH,_0xf15b('0x1d'));var _0x516235=_0x3581b3[_0xf15b('0xb')]&&_0x36937e[_0xf15b('0x14')]>0x1;var _0xd77145=[];if(!fs[_0xf15b('0x1e')](path['join'](_0x4faef7,_0x3039e0))&&_0x516235){fs[_0xf15b('0x1f')](path['join'](_0x4faef7,_0x3039e0));}return BPromise[_0xf15b('0x20')](_0x36937e,function(_0x9d0564){_0xd77145['push'](_0x9d0564);})['then'](function(){for(var _0x4f105b=0x0;_0x4f105b<_0xd77145[_0xf15b('0x14')];_0x4f105b+=0x1){var _0x1512b0;var _0x4d799a=_0xd77145[_0x4f105b];if(_0x516235){_0x1512b0=path[_0xf15b('0x21')](_0x4faef7,_0x3039e0,util[_0xf15b('0x19')](_0xf15b('0x22'),_0x3039e0,_0x4f105b,_0xf15b('0x23')));}else{_0x1512b0=path[_0xf15b('0x21')](_0x4faef7,util[_0xf15b('0x19')]('%s.%s',_0x3039e0,'xlsx'));}fs[_0xf15b('0x24')](_0x1512b0,json2xls(_0x4d799a),_0xf15b('0x25'));}})[_0xf15b('0xd')](function(){if(_0x516235){return new Promise(function(_0x33ba73){zipdir(path[_0xf15b('0x21')](_0x4faef7,_0x3039e0),{'saveTo':path['join'](_0x4faef7,util[_0xf15b('0x19')]('%s.%s',_0x3039e0,'zip'))},function(_0x5ef1c6,_0x2410b4){rimraf(path[_0xf15b('0x21')](_0x4faef7,_0x3039e0),function(){});_0x33ba73(_0xf15b('0x26'));});});}})[_0xf15b('0xd')](function(){logger['info'](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0xf15b('0x27'),_0x516235?util[_0xf15b('0x19')]('%s.%s',_0x3039e0,_0x516235?_0xf15b('0x28'):_0xf15b('0x23')):null);});})[_0xf15b('0x29')](function(_0x5b273b){logger[_0xf15b('0x7')](util[_0xf15b('0x19')](_0xf15b('0x2a'),EXTRACTED_REPORT_ID,_0xf15b('0x2b')),util['inspect'](_0x5b273b,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xf15b('0x2c'));})['finally'](function(){process[_0xf15b('0x2d')](EXIT_CODE);});}main();