9a7f5c78d5b240f5fa37e42155713edfb3c45ff1
[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 _0x38b3=['length','existsSync','join','%s%d.%s','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','util','path','lodash','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','split','splitSizeCsv','then','query','QueryTypes','num','range','forEach','push','sequelize','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','dirname','basename','.csv'];(function(_0x47571e,_0x4bc822){var _0x1ce20f=function(_0x35e0a8){while(--_0x35e0a8){_0x47571e['push'](_0x47571e['shift']());}};_0x1ce20f(++_0x4bc822);}(_0x38b3,0xfb));var _0x338b=function(_0x590759,_0x2139af){_0x590759=_0x590759-0x0;var _0x1a6bf4=_0x38b3[_0x590759];return _0x1a6bf4;};'use strict';var util=require(_0x338b('0x0'));var path=require(_0x338b('0x1'));var _=require(_0x338b('0x2'));var csv=require(_0x338b('0x3'));var fs=require('fs');var BPromise=require(_0x338b('0x4'));var zipdir=require(_0x338b('0x5'));var rimraf=require(_0x338b('0x6'));var db=require(_0x338b('0x7'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0x338b('0x8'))(_0x338b('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x338b('0xa')][0x2]);var QUERY=process[_0x338b('0xa')][0x3];var PATH=process[_0x338b('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x13da7f,_0xeadfa){var _0x213796={'status':_0x13da7f};var _0x53ba5e={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xeadfa){_0x213796['savename']=_0xeadfa;}return db[_0x338b('0xb')]['update'](_0x213796,_0x53ba5e);}function main(){var _0x41d608=0x1388;var _0x9eec0a;logger[_0x338b('0xc')](util[_0x338b('0xd')](_0x338b('0xe'),EXTRACTED_REPORT_ID,'CSV'));return db[_0x338b('0xf')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x338b('0x10'),_0x338b('0x11')]})[_0x338b('0x12')](function(_0x539e61){if(_0x539e61){_0x9eec0a=_0x539e61;_0x41d608=_0x9eec0a[_0x338b('0x11')]||0x1388;}})[_0x338b('0x12')](function(){return dbH['sequelize'][_0x338b('0x13')](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0x338b('0x14')]['SELECT']});})['then'](function(_0x2f5772){if(!_0x2f5772[0x0][_0x338b('0x15')]){return analyticExtractedReport('Empty');}var _0x2163a0=[];var _0x2cca38=0x0;if(_0x9eec0a[_0x338b('0x10')]){if(_0x2f5772&&_0x2f5772['length']){var _0x83818e=_[_0x338b('0x16')](_0x2f5772[0x0]['num']/_0x41d608);var _0x45970d=Number['isInteger'](_0x2f5772[0x0][_0x338b('0x15')]/_0x41d608)?_0x2f5772[0x0]['num']%_0x41d608:0x0;_0x83818e[_0x338b('0x17')](function(_0x5d6bfb){if(_0x5d6bfb>0x0){_0x2cca38+=_0x41d608;}_0x2163a0[_0x338b('0x18')](dbH[_0x338b('0x19')]['query'](util[_0x338b('0xd')](_0x338b('0x1a'),QUERY,_0x41d608,_0x2cca38),{'type':dbH['sequelize'][_0x338b('0x14')]['SELECT']}));});if(_0x45970d>0x0){_0x2cca38+=_0x41d608;_0x2163a0['push'](dbH[_0x338b('0x19')][_0x338b('0x13')](util[_0x338b('0xd')](_0x338b('0x1a'),QUERY,_0x45970d,_0x2cca38),{'type':dbH[_0x338b('0x19')][_0x338b('0x14')][_0x338b('0x1b')]}));}}}else{_0x2163a0[_0x338b('0x18')](dbH[_0x338b('0x19')][_0x338b('0x13')](QUERY,{'type':dbH['sequelize'][_0x338b('0x14')]['SELECT']}));}var _0x3c60fe=path[_0x338b('0x1c')](PATH);var _0x5eb5f1=path[_0x338b('0x1d')](PATH,_0x338b('0x1e'));var _0x3551da=_0x9eec0a[_0x338b('0x10')]&&_0x2163a0[_0x338b('0x1f')]>0x1;var _0xc7a18c=[];if(!fs[_0x338b('0x20')](path['join'](_0x3c60fe,_0x5eb5f1))&&_0x3551da){fs['mkdirSync'](path[_0x338b('0x21')](_0x3c60fe,_0x5eb5f1));}return BPromise['each'](_0x2163a0,function(_0x1095a5){_0xc7a18c['push'](_0x1095a5);})['then'](function(){for(var _0x48ab2b=0x0;_0x48ab2b<_0xc7a18c[_0x338b('0x1f')];_0x48ab2b+=0x1){var _0x9841a9;var _0x1487bb=_0xc7a18c[_0x48ab2b];if(_0x3551da){_0x9841a9=path['join'](_0x3c60fe,_0x5eb5f1,util[_0x338b('0xd')](_0x338b('0x22'),_0x5eb5f1,_0x48ab2b,_0x338b('0x23')));}else{_0x9841a9=path[_0x338b('0x21')](_0x3c60fe,util[_0x338b('0xd')](_0x338b('0x24'),_0x5eb5f1,'csv'));}fs[_0x338b('0x25')](_0x9841a9,csv(_0x1487bb));}})['then'](function(){if(_0x3551da){return new Promise(function(_0x54f977){zipdir(path['join'](_0x3c60fe,_0x5eb5f1),{'saveTo':path[_0x338b('0x21')](_0x3c60fe,util[_0x338b('0xd')]('%s.%s',_0x5eb5f1,_0x338b('0x26')))},function(_0x5baab9,_0x15c92a){rimraf(path[_0x338b('0x21')](_0x3c60fe,_0x5eb5f1),function(){});_0x54f977('zip\x20finished');});});}})[_0x338b('0x12')](function(){logger['info'](util[_0x338b('0xd')](_0x338b('0x27'),EXTRACTED_REPORT_ID,_0x338b('0x28')));return analyticExtractedReport('Completed',_0x3551da?util[_0x338b('0xd')](_0x338b('0x24'),_0x5eb5f1,_0x3551da?_0x338b('0x26'):_0x338b('0x23')):null);});})[_0x338b('0x29')](function(_0x1fa830){logger[_0x338b('0xc')](util[_0x338b('0xd')](_0x338b('0x2a'),EXTRACTED_REPORT_ID,_0x338b('0x28')),util[_0x338b('0x2b')](_0x1fa830,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x338b('0x2c'));})[_0x338b('0x2d')](function(){process[_0x338b('0x2e')](EXIT_CODE);});}main();