5fbd789a4b5e44ac0a5e56771067ac8b65867113
[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 _0xd0a4=['SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','num','Empty','length','range','isInteger','forEach','push','SELECT','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','.xlsx','existsSync','join','xlsx','writeFileSync','binary','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','XLSX','Completed','catch','Failed','finally','exit','util','path','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','split','splitSizeXlsx','then','query'];(function(_0x2ec461,_0x5f588a){var _0x28603d=function(_0x21114b){while(--_0x21114b){_0x2ec461['push'](_0x2ec461['shift']());}};_0x28603d(++_0x5f588a);}(_0xd0a4,0x166));var _0x4d0a=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xd0a4[_0x501510];return _0x1e6ee5;};'use strict';var util=require(_0x4d0a('0x0'));var path=require(_0x4d0a('0x1'));var _=require('lodash');var fs=require('fs');var json2xls=require('json2xls');var BPromise=require('bluebird');var zipdir=require(_0x4d0a('0x2'));var rimraf=require(_0x4d0a('0x3'));var db=require(_0x4d0a('0x4'))['db'];var dbH=require(_0x4d0a('0x4'))[_0x4d0a('0x5')];var logger=require(_0x4d0a('0x6'))(_0x4d0a('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x4d0a('0x8')][0x2]);var QUERY=process[_0x4d0a('0x8')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x59fe32,_0xd6c889){var _0x1feaea={'status':_0x59fe32};var _0x5199b8={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xd6c889){_0x1feaea[_0x4d0a('0x9')]=_0xd6c889;}return db[_0x4d0a('0xa')]['update'](_0x1feaea,_0x5199b8);}function main(){var _0xd0dd55=0x1388;var _0x44f69e;logger[_0x4d0a('0xb')](util[_0x4d0a('0xc')](_0x4d0a('0xd'),EXTRACTED_REPORT_ID,'XLSX'));return db['Setting']['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4d0a('0xe'),_0x4d0a('0xf')]})[_0x4d0a('0x10')](function(_0x493890){if(_0x493890){_0x44f69e=_0x493890;_0xd0dd55=_0x44f69e['splitSizeXlsx']||0x1388;}})['then'](function(){return dbH['sequelize'][_0x4d0a('0x11')](util['format'](_0x4d0a('0x12'),QUERY),{'type':dbH[_0x4d0a('0x13')][_0x4d0a('0x14')]['SELECT']});})[_0x4d0a('0x10')](function(_0x3e0117){if(!_0x3e0117[0x0][_0x4d0a('0x15')]){return analyticExtractedReport(_0x4d0a('0x16'));}var _0x2ab33c=[];var _0x477c85=0x0;if(_0x44f69e[_0x4d0a('0xe')]){if(_0x3e0117&&_0x3e0117[_0x4d0a('0x17')]){var _0x530ed7=_[_0x4d0a('0x18')](_0x3e0117[0x0][_0x4d0a('0x15')]/_0xd0dd55);var _0x38f959=Number[_0x4d0a('0x19')](_0x3e0117[0x0][_0x4d0a('0x15')]/_0xd0dd55)?_0x3e0117[0x0]['num']%_0xd0dd55:0x0;_0x530ed7[_0x4d0a('0x1a')](function(_0x2dfd8e){if(_0x2dfd8e>0x0){_0x477c85+=_0xd0dd55;}_0x2ab33c[_0x4d0a('0x1b')](dbH[_0x4d0a('0x13')]['query'](util[_0x4d0a('0xc')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0xd0dd55,_0x477c85),{'type':dbH['sequelize'][_0x4d0a('0x14')][_0x4d0a('0x1c')]}));});if(_0x38f959>0x0){_0x477c85+=_0xd0dd55;_0x2ab33c['push'](dbH[_0x4d0a('0x13')]['query'](util[_0x4d0a('0xc')](_0x4d0a('0x1d'),QUERY,_0x38f959,_0x477c85),{'type':dbH[_0x4d0a('0x13')][_0x4d0a('0x14')][_0x4d0a('0x1c')]}));}}}else{_0x2ab33c[_0x4d0a('0x1b')](dbH[_0x4d0a('0x13')][_0x4d0a('0x11')](QUERY,{'type':dbH['sequelize'][_0x4d0a('0x14')]['SELECT']}));}var _0x125e8f=path[_0x4d0a('0x1e')](PATH);var _0x56706e=path['basename'](PATH,_0x4d0a('0x1f'));var _0x41f720=_0x44f69e['split']&&_0x2ab33c['length']>0x1;var _0x5c0d86=[];if(!fs[_0x4d0a('0x20')](path[_0x4d0a('0x21')](_0x125e8f,_0x56706e))&&_0x41f720){fs['mkdirSync'](path[_0x4d0a('0x21')](_0x125e8f,_0x56706e));}return BPromise['each'](_0x2ab33c,function(_0x53760a){_0x5c0d86[_0x4d0a('0x1b')](_0x53760a);})[_0x4d0a('0x10')](function(){for(var _0x4e9432=0x0;_0x4e9432<_0x5c0d86[_0x4d0a('0x17')];_0x4e9432+=0x1){var _0x4e4dce;var _0x592640=_0x5c0d86[_0x4e9432];if(_0x41f720){_0x4e4dce=path[_0x4d0a('0x21')](_0x125e8f,_0x56706e,util[_0x4d0a('0xc')]('%s%d.%s',_0x56706e,_0x4e9432,_0x4d0a('0x22')));}else{_0x4e4dce=path[_0x4d0a('0x21')](_0x125e8f,util[_0x4d0a('0xc')]('%s.%s',_0x56706e,'xlsx'));}fs[_0x4d0a('0x23')](_0x4e4dce,json2xls(_0x592640),_0x4d0a('0x24'));}})[_0x4d0a('0x10')](function(){if(_0x41f720){return new Promise(function(_0x23b2d3){zipdir(path[_0x4d0a('0x21')](_0x125e8f,_0x56706e),{'saveTo':path[_0x4d0a('0x21')](_0x125e8f,util[_0x4d0a('0xc')](_0x4d0a('0x25'),_0x56706e,_0x4d0a('0x26')))},function(_0xfb6015,_0x53c3a3){rimraf(path['join'](_0x125e8f,_0x56706e),function(){});_0x23b2d3(_0x4d0a('0x27'));});});}})['then'](function(){logger['info'](util[_0x4d0a('0xc')](_0x4d0a('0x28'),EXTRACTED_REPORT_ID,_0x4d0a('0x29')));return analyticExtractedReport(_0x4d0a('0x2a'),_0x41f720?util[_0x4d0a('0xc')](_0x4d0a('0x25'),_0x56706e,_0x41f720?_0x4d0a('0x26'):_0x4d0a('0x22')):null);});})[_0x4d0a('0x2b')](function(_0x4e93ca){logger[_0x4d0a('0xb')](util[_0x4d0a('0xc')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x4d0a('0x29')),util['inspect'](_0x4e93ca,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x4d0a('0x2c'));})[_0x4d0a('0x2d')](function(){process[_0x4d0a('0x2e')](EXIT_CODE);});}main();