Built motion from commit 9d0783e6.|2.6.13
[motion2.git] / server / components / export / csv.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 _0xc069=['Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','finally','util','path','lodash','to-csv','bluebird','zip-dir','../../mysqldb','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','splitSizeCsv','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','num','length','range','isInteger','push','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','existsSync','each','then','join','%s%d.%s','csv','%s.%s','zip','zip\x20finished','CSV'];(function(_0x473668,_0x36f38f){var _0x3ecbc3=function(_0x5df177){while(--_0x5df177){_0x473668['push'](_0x473668['shift']());}};_0x3ecbc3(++_0x36f38f);}(_0xc069,0x10c));var _0x9c06=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xc069[_0x20a584];return _0x4b41a8;};'use strict';var util=require(_0x9c06('0x0'));var path=require(_0x9c06('0x1'));var _=require(_0x9c06('0x2'));var csv=require(_0x9c06('0x3'));var fs=require('fs');var BPromise=require(_0x9c06('0x4'));var zipdir=require(_0x9c06('0x5'));var rimraf=require('rimraf');var db=require('../../mysqldb')['db'];var dbH=require(_0x9c06('0x6'))['dbH'];var logger=require(_0x9c06('0x7'))(_0x9c06('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x9c06('0x9')][0x2]);var QUERY=process[_0x9c06('0x9')][0x3];var PATH=process[_0x9c06('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x4584fb,_0x5ca3e5){var _0x59ba11={'status':_0x4584fb};var _0x522887={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5ca3e5){_0x59ba11[_0x9c06('0xa')]=_0x5ca3e5;}return db[_0x9c06('0xb')]['update'](_0x59ba11,_0x522887);}function main(){var _0xf397c0=0x1388;var _0x100e93;logger[_0x9c06('0xc')](util[_0x9c06('0xd')](_0x9c06('0xe'),EXTRACTED_REPORT_ID,'CSV'));return db[_0x9c06('0xf')][_0x9c06('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x9c06('0x11'),_0x9c06('0x12')]})['then'](function(_0x94c56b){if(_0x94c56b){_0x100e93=_0x94c56b;_0xf397c0=_0x100e93['splitSizeCsv']||0x1388;}})['then'](function(){return dbH[_0x9c06('0x13')][_0x9c06('0x14')](util[_0x9c06('0xd')](_0x9c06('0x15'),QUERY),{'type':dbH[_0x9c06('0x13')][_0x9c06('0x16')]['SELECT']});})['then'](function(_0x46d6ef){if(!_0x46d6ef[0x0][_0x9c06('0x17')]){return analyticExtractedReport('Empty');}var _0xe956d3=[];var _0x3b468f=0x0;if(_0x100e93['split']){if(_0x46d6ef&&_0x46d6ef[_0x9c06('0x18')]){var _0x52d0f5=_[_0x9c06('0x19')](_0x46d6ef[0x0][_0x9c06('0x17')]/_0xf397c0);var _0xba51a4=Number[_0x9c06('0x1a')](_0x46d6ef[0x0][_0x9c06('0x17')]/_0xf397c0)?_0x46d6ef[0x0][_0x9c06('0x17')]%_0xf397c0:0x0;_0x52d0f5['forEach'](function(_0x33ad3f){if(_0x33ad3f>0x0){_0x3b468f+=_0xf397c0;}_0xe956d3[_0x9c06('0x1b')](dbH[_0x9c06('0x13')][_0x9c06('0x14')](util[_0x9c06('0xd')](_0x9c06('0x1c'),QUERY,_0xf397c0,_0x3b468f),{'type':dbH[_0x9c06('0x13')][_0x9c06('0x16')][_0x9c06('0x1d')]}));});if(_0xba51a4>0x0){_0x3b468f+=_0xf397c0;_0xe956d3[_0x9c06('0x1b')](dbH[_0x9c06('0x13')]['query'](util[_0x9c06('0xd')](_0x9c06('0x1c'),QUERY,_0xba51a4,_0x3b468f),{'type':dbH[_0x9c06('0x13')][_0x9c06('0x16')]['SELECT']}));}}}else{_0xe956d3[_0x9c06('0x1b')](dbH['sequelize'][_0x9c06('0x14')](QUERY,{'type':dbH[_0x9c06('0x13')][_0x9c06('0x16')][_0x9c06('0x1d')]}));}var _0x2fa810=path['dirname'](PATH);var _0x2bcb0b=path['basename'](PATH,'.csv');var _0x4f3cd1=_0x100e93['split']&&_0xe956d3['length']>0x1;var _0x328f4b=[];if(!fs[_0x9c06('0x1e')](path['join'](_0x2fa810,_0x2bcb0b))&&_0x4f3cd1){fs['mkdirSync'](path['join'](_0x2fa810,_0x2bcb0b));}return BPromise[_0x9c06('0x1f')](_0xe956d3,function(_0x26a662){_0x328f4b[_0x9c06('0x1b')](_0x26a662);})[_0x9c06('0x20')](function(){for(var _0x442d2c=0x0;_0x442d2c<_0x328f4b[_0x9c06('0x18')];_0x442d2c+=0x1){var _0xf045c7;var _0x4de560=_0x328f4b[_0x442d2c];if(_0x4f3cd1){_0xf045c7=path[_0x9c06('0x21')](_0x2fa810,_0x2bcb0b,util[_0x9c06('0xd')](_0x9c06('0x22'),_0x2bcb0b,_0x442d2c,_0x9c06('0x23')));}else{_0xf045c7=path[_0x9c06('0x21')](_0x2fa810,util['format'](_0x9c06('0x24'),_0x2bcb0b,'csv'));}fs['writeFileSync'](_0xf045c7,csv(_0x4de560));}})[_0x9c06('0x20')](function(){if(_0x4f3cd1){return new Promise(function(_0x572f13){zipdir(path[_0x9c06('0x21')](_0x2fa810,_0x2bcb0b),{'saveTo':path[_0x9c06('0x21')](_0x2fa810,util[_0x9c06('0xd')](_0x9c06('0x24'),_0x2bcb0b,_0x9c06('0x25')))},function(_0x2612c,_0x350e46){rimraf(path[_0x9c06('0x21')](_0x2fa810,_0x2bcb0b),function(){});_0x572f13(_0x9c06('0x26'));});});}})[_0x9c06('0x20')](function(){logger['info'](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x9c06('0x27')));return analyticExtractedReport(_0x9c06('0x28'),_0x4f3cd1?util[_0x9c06('0xd')](_0x9c06('0x24'),_0x2bcb0b,_0x4f3cd1?_0x9c06('0x25'):_0x9c06('0x23')):null);});})[_0x9c06('0x29')](function(_0x14810f){logger['info'](util['format'](_0x9c06('0x2a'),EXTRACTED_REPORT_ID,_0x9c06('0x27')),util['inspect'](_0x14810f,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x9c06('0x2b')](function(){process['exit'](EXIT_CODE);});}main();