bcff0ccc6aec0459f03ea48f4b6ccde9034478bc
[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 _0x153f=['split','%s\x20limit\x20%d\x20OFFSET\x20%d','push','dirname','basename','.csv','existsSync','join','mkdirSync','each','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','util','path','lodash','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','CSV','Setting','find','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','length'];(function(_0xb833b1,_0x1c3d3f){var _0x1ab87a=function(_0x1c9f6c){while(--_0x1c9f6c){_0xb833b1['push'](_0xb833b1['shift']());}};_0x1ab87a(++_0x1c3d3f);}(_0x153f,0x15b));var _0xf153=function(_0x3a6273,_0x52c710){_0x3a6273=_0x3a6273-0x0;var _0x405f5b=_0x153f[_0x3a6273];return _0x405f5b;};'use strict';var util=require(_0xf153('0x0'));var path=require(_0xf153('0x1'));var _=require(_0xf153('0x2'));var csv=require(_0xf153('0x3'));var fs=require('fs');var BPromise=require(_0xf153('0x4'));var zipdir=require(_0xf153('0x5'));var rimraf=require(_0xf153('0x6'));var db=require('../../mysqldb')['db'];var dbH=require(_0xf153('0x7'))['dbH'];var logger=require(_0xf153('0x8'))(_0xf153('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0xf153('0xa')][0x2]);var QUERY=process[_0xf153('0xa')][0x3];var PATH=process[_0xf153('0xa')][0x4];function analyticExtractedReport(_0x4c8ae5,_0x17ba96){var _0x143497={'status':_0x4c8ae5};var _0x224f88={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x17ba96){_0x143497[_0xf153('0xb')]=_0x17ba96;}return db[_0xf153('0xc')][_0xf153('0xd')](_0x143497,_0x224f88);}function main(){var _0x44845c=0x1388;var _0x15a18b;logger[_0xf153('0xe')](util[_0xf153('0xf')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xf153('0x10')));return db[_0xf153('0x11')][_0xf153('0x12')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xf153('0x13')]})[_0xf153('0x14')](function(_0x65756d){if(_0x65756d){_0x15a18b=_0x65756d;_0x44845c=_0x15a18b[_0xf153('0x13')]||0x1388;}})[_0xf153('0x14')](function(){return dbH[_0xf153('0x15')][_0xf153('0x16')](util[_0xf153('0xf')](_0xf153('0x17'),QUERY),{'type':dbH['sequelize'][_0xf153('0x18')][_0xf153('0x19')]});})[_0xf153('0x14')](function(_0x406e6f){if(!_0x406e6f[0x0][_0xf153('0x1a')]){return analyticExtractedReport(_0xf153('0x1b'));}var _0x273a90=[];var _0x287bc6=0x0;var _0x47fbfe=!![];if(_0x406e6f&&_0x406e6f[_0xf153('0x1c')]){var _0x564eeb=_0x406e6f[0x0][_0xf153('0x1a')]%(_0x287bc6+_0x44845c);if(_0x15a18b[_0xf153('0x1d')]){for(;_0x47fbfe;_0x287bc6+=_0x44845c,_0x564eeb=_0x406e6f[0x0][_0xf153('0x1a')]%(_0x287bc6+_0x44845c)){if(_0x564eeb==0x0||_0x564eeb==_0x406e6f[0x0][_0xf153('0x1a')]){_0x47fbfe=![];}_0x273a90['push'](dbH[_0xf153('0x15')][_0xf153('0x16')](util[_0xf153('0xf')](_0xf153('0x1e'),QUERY,_0x44845c,_0x287bc6),{'type':dbH[_0xf153('0x15')][_0xf153('0x18')][_0xf153('0x19')]}));}}else{_0x273a90[_0xf153('0x1f')](dbH[_0xf153('0x15')][_0xf153('0x16')](QUERY,{'type':dbH[_0xf153('0x15')][_0xf153('0x18')]['SELECT']}));}}var _0xcd5762=path[_0xf153('0x20')](PATH);var _0x3d3e41=path[_0xf153('0x21')](PATH,_0xf153('0x22'));var _0x3e94b5=_0x15a18b[_0xf153('0x1d')]&&_0x273a90[_0xf153('0x1c')]>0x1;var _0xf67cde=[];if(!fs[_0xf153('0x23')](path[_0xf153('0x24')](_0xcd5762,_0x3d3e41))&&_0x3e94b5){fs[_0xf153('0x25')](path[_0xf153('0x24')](_0xcd5762,_0x3d3e41));}return BPromise[_0xf153('0x26')](_0x273a90,function(_0xe490f8){_0xf67cde[_0xf153('0x1f')](_0xe490f8);})[_0xf153('0x14')](function(){for(var _0x703adb=0x0;_0x703adb<_0xf67cde[_0xf153('0x1c')];_0x703adb+=0x1){var _0x17f7a4;var _0x48ebdc=_0xf67cde[_0x703adb];if(_0x3e94b5){_0x17f7a4=path[_0xf153('0x24')](_0xcd5762,_0x3d3e41,util[_0xf153('0xf')]('%s%d.%s',_0x3d3e41,_0x703adb,_0xf153('0x27')));}else{_0x17f7a4=path[_0xf153('0x24')](_0xcd5762,util['format'](_0xf153('0x28'),_0x3d3e41,_0xf153('0x27')));}fs[_0xf153('0x29')](_0x17f7a4,csv(_0x48ebdc));}})[_0xf153('0x14')](function(){if(_0x3e94b5){zipdir(path[_0xf153('0x24')](_0xcd5762,_0x3d3e41),{'saveTo':path[_0xf153('0x24')](_0xcd5762,util[_0xf153('0xf')](_0xf153('0x28'),_0x3d3e41,_0xf153('0x2a')))},function(_0x8e31bf,_0x13b541){});rimraf(path[_0xf153('0x24')](_0xcd5762,_0x3d3e41),function(){});}})['then'](function(){logger[_0xf153('0xe')](util[_0xf153('0xf')](_0xf153('0x2b'),EXTRACTED_REPORT_ID,_0xf153('0x10')));return analyticExtractedReport('Completed',_0x3e94b5?util['format'](_0xf153('0x28'),_0x3d3e41,_0x3e94b5?'zip':'csv'):null);});})[_0xf153('0x2c')](function(_0x4ab958){logger[_0xf153('0xe')](util['format'](_0xf153('0x2d'),EXTRACTED_REPORT_ID,_0xf153('0x10')),util['inspect'](_0x4ab958,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xf153('0x2e'));});}main();