4893f448914ab00951a35b0716b5157a9559d41b
[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 _0xcb65=['then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','length','range','isInteger','num','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','.csv','join','each','csv','writeFileSync','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','exit','path','bluebird','rimraf','../../mysqldb','argv','AnalyticExtractedReport','update','info','format','CSV','find','split','splitSizeCsv'];(function(_0x277af0,_0x1f0361){var _0x43bd7c=function(_0x3ad480){while(--_0x3ad480){_0x277af0['push'](_0x277af0['shift']());}};_0x43bd7c(++_0x1f0361);}(_0xcb65,0x10b));var _0x5cb6=function(_0x4f4fb9,_0x3798bc){_0x4f4fb9=_0x4f4fb9-0x0;var _0x1d9828=_0xcb65[_0x4f4fb9];return _0x1d9828;};'use strict';var util=require('util');var path=require(_0x5cb6('0x0'));var _=require('lodash');var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0x5cb6('0x1'));var zipdir=require('zip-dir');var rimraf=require(_0x5cb6('0x2'));var db=require(_0x5cb6('0x3'))['db'];var dbH=require(_0x5cb6('0x3'))['dbH'];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x5cb6('0x4')][0x2]);var QUERY=process[_0x5cb6('0x4')][0x3];var PATH=process[_0x5cb6('0x4')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x5a4afd,_0x955f85){var _0x465f89={'status':_0x5a4afd};var _0xc67fd={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x955f85){_0x465f89['savename']=_0x955f85;}return db[_0x5cb6('0x5')][_0x5cb6('0x6')](_0x465f89,_0xc67fd);}function main(){var _0x501bdc=0x1388;var _0x3763b1;logger[_0x5cb6('0x7')](util[_0x5cb6('0x8')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x5cb6('0x9')));return db['Setting'][_0x5cb6('0xa')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x5cb6('0xb'),'splitSizeCsv']})['then'](function(_0x591c3a){if(_0x591c3a){_0x3763b1=_0x591c3a;_0x501bdc=_0x3763b1[_0x5cb6('0xc')]||0x1388;}})[_0x5cb6('0xd')](function(){return dbH[_0x5cb6('0xe')][_0x5cb6('0xf')](util[_0x5cb6('0x8')](_0x5cb6('0x10'),QUERY),{'type':dbH[_0x5cb6('0xe')][_0x5cb6('0x11')][_0x5cb6('0x12')]});})[_0x5cb6('0xd')](function(_0xc0edc8){if(!_0xc0edc8[0x0]['num']){return analyticExtractedReport('Empty');}var _0x2bb011=[];var _0x48ccc5=0x0;if(_0x3763b1[_0x5cb6('0xb')]){if(_0xc0edc8&&_0xc0edc8[_0x5cb6('0x13')]){var _0x22f285=_[_0x5cb6('0x14')](_0xc0edc8[0x0]['num']/_0x501bdc);var _0xe40381=Number[_0x5cb6('0x15')](_0xc0edc8[0x0][_0x5cb6('0x16')]/_0x501bdc)?_0xc0edc8[0x0][_0x5cb6('0x16')]%_0x501bdc:0x0;_0x22f285[_0x5cb6('0x17')](function(_0x4c25cf){if(_0x4c25cf>0x0){_0x48ccc5+=_0x501bdc;}_0x2bb011[_0x5cb6('0x18')](dbH['sequelize'][_0x5cb6('0xf')](util[_0x5cb6('0x8')](_0x5cb6('0x19'),QUERY,_0x501bdc,_0x48ccc5),{'type':dbH[_0x5cb6('0xe')][_0x5cb6('0x11')][_0x5cb6('0x12')]}));});if(_0xe40381>0x0){_0x48ccc5+=_0x501bdc;_0x2bb011[_0x5cb6('0x18')](dbH[_0x5cb6('0xe')][_0x5cb6('0xf')](util[_0x5cb6('0x8')](_0x5cb6('0x19'),QUERY,_0xe40381,_0x48ccc5),{'type':dbH['sequelize']['QueryTypes']['SELECT']}));}}}else{_0x2bb011[_0x5cb6('0x18')](dbH[_0x5cb6('0xe')][_0x5cb6('0xf')](QUERY,{'type':dbH[_0x5cb6('0xe')][_0x5cb6('0x11')][_0x5cb6('0x12')]}));}var _0x18795d=path['dirname'](PATH);var _0x4bd9cf=path[_0x5cb6('0x1a')](PATH,_0x5cb6('0x1b'));var _0x26218d=_0x3763b1[_0x5cb6('0xb')]&&_0x2bb011[_0x5cb6('0x13')]>0x1;var _0x13946d=[];if(!fs['existsSync'](path[_0x5cb6('0x1c')](_0x18795d,_0x4bd9cf))&&_0x26218d){fs['mkdirSync'](path[_0x5cb6('0x1c')](_0x18795d,_0x4bd9cf));}return BPromise[_0x5cb6('0x1d')](_0x2bb011,function(_0x16287a){_0x13946d[_0x5cb6('0x18')](_0x16287a);})['then'](function(){for(var _0xe6a79f=0x0;_0xe6a79f<_0x13946d[_0x5cb6('0x13')];_0xe6a79f+=0x1){var _0x5c5d18;var _0x35bea7=_0x13946d[_0xe6a79f];if(_0x26218d){_0x5c5d18=path[_0x5cb6('0x1c')](_0x18795d,_0x4bd9cf,util[_0x5cb6('0x8')]('%s%d.%s',_0x4bd9cf,_0xe6a79f,_0x5cb6('0x1e')));}else{_0x5c5d18=path[_0x5cb6('0x1c')](_0x18795d,util[_0x5cb6('0x8')]('%s.%s',_0x4bd9cf,_0x5cb6('0x1e')));}fs[_0x5cb6('0x1f')](_0x5c5d18,csv(_0x35bea7));}})[_0x5cb6('0xd')](function(){if(_0x26218d){return new Promise(function(_0xc237b){zipdir(path['join'](_0x18795d,_0x4bd9cf),{'saveTo':path[_0x5cb6('0x1c')](_0x18795d,util[_0x5cb6('0x8')](_0x5cb6('0x20'),_0x4bd9cf,_0x5cb6('0x21')))},function(_0x4e59eb,_0x4dc215){rimraf(path[_0x5cb6('0x1c')](_0x18795d,_0x4bd9cf),function(){});_0xc237b(_0x5cb6('0x22'));});});}})['then'](function(){logger[_0x5cb6('0x7')](util[_0x5cb6('0x8')](_0x5cb6('0x23'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0x5cb6('0x24'),_0x26218d?util[_0x5cb6('0x8')](_0x5cb6('0x20'),_0x4bd9cf,_0x26218d?'zip':_0x5cb6('0x1e')):null);});})['catch'](function(_0x15bbc3){logger[_0x5cb6('0x7')](util['format'](_0x5cb6('0x25'),EXTRACTED_REPORT_ID,'CSV'),util['inspect'](_0x15bbc3,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x5cb6('0x26'));})['finally'](function(){process[_0x5cb6('0x27')](EXIT_CODE);});}main();