Built motion from commit 19a84241.|2.5.34
[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 _0x26f9=['Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','splitSizeCsv','then','sequelize','query','QueryTypes','SELECT','Empty','num','push','dirname','basename','.csv','split','length','existsSync','join','each','%s%d.%s','csv','writeFileSync','zip','info','Completed','catch','inspect','Failed','finally','util','path','to-csv','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','AnalyticExtractedReport','format'];(function(_0xd5000c,_0x1ebd9e){var _0x31855f=function(_0x209f95){while(--_0x209f95){_0xd5000c['push'](_0xd5000c['shift']());}};_0x31855f(++_0x1ebd9e);}(_0x26f9,0x16f));var _0x926f=function(_0x3fcfda,_0xa0bfeb){_0x3fcfda=_0x3fcfda-0x0;var _0x132ce0=_0x26f9[_0x3fcfda];return _0x132ce0;};'use strict';var util=require(_0x926f('0x0'));var path=require(_0x926f('0x1'));var _=require('lodash');var csv=require(_0x926f('0x2'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require('zip-dir');var rimraf=require(_0x926f('0x3'));var db=require(_0x926f('0x4'))['db'];var dbH=require('../../mysqldb')[_0x926f('0x5')];var logger=require(_0x926f('0x6'))(_0x926f('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x926f('0x8')][0x2]);var QUERY=process[_0x926f('0x8')][0x3];var PATH=process[_0x926f('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xf56fcb,_0x1e455d){var _0x41a7ed={'status':_0xf56fcb};var _0x2af11e={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1e455d){_0x41a7ed['savename']=_0x1e455d;}return db[_0x926f('0x9')]['update'](_0x41a7ed,_0x2af11e);}function main(){var _0x12fbd4=0x1388;var _0x43cd93;logger['info'](util[_0x926f('0xa')](_0x926f('0xb'),EXTRACTED_REPORT_ID,_0x926f('0xc')));return db[_0x926f('0xd')][_0x926f('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x926f('0xf')]})[_0x926f('0x10')](function(_0x14f316){if(_0x14f316){_0x43cd93=_0x14f316;_0x12fbd4=_0x43cd93[_0x926f('0xf')]||0x1388;}})[_0x926f('0x10')](function(){return dbH[_0x926f('0x11')][_0x926f('0x12')](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0x926f('0x13')][_0x926f('0x14')]});})[_0x926f('0x10')](function(_0x280759){if(!_0x280759[0x0]['num']){return analyticExtractedReport(_0x926f('0x15'));}var _0x385fad=[];var _0x5812cb=0x0;var _0x20307b=!![];if(_0x280759&&_0x280759['length']){var _0x32522d=_0x280759[0x0]['num']%(_0x5812cb+_0x12fbd4);if(_0x43cd93['split']){for(;_0x20307b;_0x5812cb+=_0x12fbd4,_0x32522d=_0x280759[0x0][_0x926f('0x16')]%(_0x5812cb+_0x12fbd4)){if(_0x32522d==0x0||_0x32522d==_0x280759[0x0][_0x926f('0x16')]){_0x20307b=![];}_0x385fad['push'](dbH[_0x926f('0x11')][_0x926f('0x12')](util[_0x926f('0xa')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x12fbd4,_0x5812cb),{'type':dbH[_0x926f('0x11')][_0x926f('0x13')]['SELECT']}));}}else{_0x385fad[_0x926f('0x17')](dbH[_0x926f('0x11')]['query'](QUERY,{'type':dbH[_0x926f('0x11')][_0x926f('0x13')][_0x926f('0x14')]}));}}var _0x43a1f1=path[_0x926f('0x18')](PATH);var _0x3b7179=path[_0x926f('0x19')](PATH,_0x926f('0x1a'));var _0xb8bd7a=_0x43cd93[_0x926f('0x1b')]&&_0x385fad[_0x926f('0x1c')]>0x1;var _0x4a93a4=[];if(!fs[_0x926f('0x1d')](path[_0x926f('0x1e')](_0x43a1f1,_0x3b7179))&&_0xb8bd7a){fs['mkdirSync'](path[_0x926f('0x1e')](_0x43a1f1,_0x3b7179));}return BPromise[_0x926f('0x1f')](_0x385fad,function(_0x36a17e){_0x4a93a4[_0x926f('0x17')](_0x36a17e);})[_0x926f('0x10')](function(){for(var _0x3887fc=0x0;_0x3887fc<_0x4a93a4['length'];_0x3887fc+=0x1){var _0x110e59;var _0x5065dd=_0x4a93a4[_0x3887fc];if(_0xb8bd7a){_0x110e59=path[_0x926f('0x1e')](_0x43a1f1,_0x3b7179,util[_0x926f('0xa')](_0x926f('0x20'),_0x3b7179,_0x3887fc,_0x926f('0x21')));}else{_0x110e59=path['join'](_0x43a1f1,util[_0x926f('0xa')]('%s.%s',_0x3b7179,_0x926f('0x21')));}fs[_0x926f('0x22')](_0x110e59,csv(_0x5065dd));}})['then'](function(){if(_0xb8bd7a){zipdir(path['join'](_0x43a1f1,_0x3b7179),{'saveTo':path[_0x926f('0x1e')](_0x43a1f1,util[_0x926f('0xa')]('%s.%s',_0x3b7179,_0x926f('0x23')))},function(_0xb6b509,_0x558a62){});rimraf(path['join'](_0x43a1f1,_0x3b7179),function(){});}})[_0x926f('0x10')](function(){logger[_0x926f('0x24')](util[_0x926f('0xa')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x926f('0xc')));return analyticExtractedReport(_0x926f('0x25'),_0xb8bd7a?util[_0x926f('0xa')]('%s.%s',_0x3b7179,_0xb8bd7a?_0x926f('0x23'):_0x926f('0x21')):null);});})[_0x926f('0x26')](function(_0xc79c61){logger[_0x926f('0x24')](util[_0x926f('0xa')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x926f('0xc')),util[_0x926f('0x27')](_0xc79c61,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x926f('0x28'));})[_0x926f('0x29')](function(){process['exit'](EXIT_CODE);});}main();