Built motion from commit f74363e9.|2.6.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 _0x4557=['zip','info','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','exit','util','lodash','to-csv','zip-dir','rimraf','../../mysqldb','analytics','argv','savename','AnalyticExtractedReport','update','CSV','Setting','find','split','splitSizeCsv','then','sequelize','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','num','length','range','isInteger','forEach','push','SELECT','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','dirname','basename','.csv','existsSync','mkdirSync','join','%s%d.%s','csv','%s.%s','writeFileSync','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed'];(function(_0xc2b088,_0x359a01){var _0x96b3ed=function(_0x2b79c1){while(--_0x2b79c1){_0xc2b088['push'](_0xc2b088['shift']());}};_0x96b3ed(++_0x359a01);}(_0x4557,0x1bf));var _0x7455=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x4557[_0x14add3];return _0x4a174f;};'use strict';var util=require(_0x7455('0x0'));var path=require('path');var _=require(_0x7455('0x1'));var csv=require(_0x7455('0x2'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0x7455('0x3'));var rimraf=require(_0x7455('0x4'));var db=require('../../mysqldb')['db'];var dbH=require(_0x7455('0x5'))['dbH'];var logger=require('../../config/logger')(_0x7455('0x6'));var EXTRACTED_REPORT_ID=Number(process[_0x7455('0x7')][0x2]);var QUERY=process[_0x7455('0x7')][0x3];var PATH=process[_0x7455('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2baab2,_0x1b611c){var _0x33fbbc={'status':_0x2baab2};var _0x3ae0ca={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1b611c){_0x33fbbc[_0x7455('0x8')]=_0x1b611c;}return db[_0x7455('0x9')][_0x7455('0xa')](_0x33fbbc,_0x3ae0ca);}function main(){var _0x7d15b1=0x1388;var _0x14f61e;logger['info'](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x7455('0xb')));return db[_0x7455('0xc')][_0x7455('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x7455('0xe'),_0x7455('0xf')]})[_0x7455('0x10')](function(_0x46531a){if(_0x46531a){_0x14f61e=_0x46531a;_0x7d15b1=_0x14f61e[_0x7455('0xf')]||0x1388;}})[_0x7455('0x10')](function(){return dbH[_0x7455('0x11')][_0x7455('0x12')](util[_0x7455('0x13')](_0x7455('0x14'),QUERY),{'type':dbH['sequelize']['QueryTypes']['SELECT']});})[_0x7455('0x10')](function(_0x2dec36){if(!_0x2dec36[0x0][_0x7455('0x15')]){return analyticExtractedReport('Empty');}var _0x208a26=[];var _0xb93783=0x0;if(_0x14f61e['split']){if(_0x2dec36&&_0x2dec36[_0x7455('0x16')]){var _0xc5a21e=_[_0x7455('0x17')](_0x2dec36[0x0][_0x7455('0x15')]/_0x7d15b1);var _0x2501ed=Number[_0x7455('0x18')](_0x2dec36[0x0]['num']/_0x7d15b1)?_0x2dec36[0x0]['num']%_0x7d15b1:0x0;_0xc5a21e[_0x7455('0x19')](function(_0x1d9dce){if(_0x1d9dce>0x0){_0xb93783+=_0x7d15b1;}_0x208a26[_0x7455('0x1a')](dbH[_0x7455('0x11')]['query'](util[_0x7455('0x13')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x7d15b1,_0xb93783),{'type':dbH[_0x7455('0x11')]['QueryTypes'][_0x7455('0x1b')]}));});if(_0x2501ed>0x0){_0xb93783+=_0x7d15b1;_0x208a26[_0x7455('0x1a')](dbH[_0x7455('0x11')][_0x7455('0x12')](util[_0x7455('0x13')](_0x7455('0x1c'),QUERY,_0x2501ed,_0xb93783),{'type':dbH['sequelize'][_0x7455('0x1d')][_0x7455('0x1b')]}));}}}else{_0x208a26[_0x7455('0x1a')](dbH['sequelize'][_0x7455('0x12')](QUERY,{'type':dbH[_0x7455('0x11')][_0x7455('0x1d')][_0x7455('0x1b')]}));}var _0x3dba56=path[_0x7455('0x1e')](PATH);var _0x14d52a=path[_0x7455('0x1f')](PATH,_0x7455('0x20'));var _0x2f7e29=_0x14f61e[_0x7455('0xe')]&&_0x208a26[_0x7455('0x16')]>0x1;var _0x538759=[];if(!fs[_0x7455('0x21')](path['join'](_0x3dba56,_0x14d52a))&&_0x2f7e29){fs[_0x7455('0x22')](path[_0x7455('0x23')](_0x3dba56,_0x14d52a));}return BPromise['each'](_0x208a26,function(_0x5e2275){_0x538759[_0x7455('0x1a')](_0x5e2275);})[_0x7455('0x10')](function(){for(var _0x479131=0x0;_0x479131<_0x538759[_0x7455('0x16')];_0x479131+=0x1){var _0x1bbcb6;var _0x2be90f=_0x538759[_0x479131];if(_0x2f7e29){_0x1bbcb6=path[_0x7455('0x23')](_0x3dba56,_0x14d52a,util[_0x7455('0x13')](_0x7455('0x24'),_0x14d52a,_0x479131,_0x7455('0x25')));}else{_0x1bbcb6=path[_0x7455('0x23')](_0x3dba56,util[_0x7455('0x13')](_0x7455('0x26'),_0x14d52a,_0x7455('0x25')));}fs[_0x7455('0x27')](_0x1bbcb6,csv(_0x2be90f));}})[_0x7455('0x10')](function(){if(_0x2f7e29){return new Promise(function(_0x299a9a){zipdir(path[_0x7455('0x23')](_0x3dba56,_0x14d52a),{'saveTo':path[_0x7455('0x23')](_0x3dba56,util[_0x7455('0x13')](_0x7455('0x26'),_0x14d52a,'zip'))},function(_0x5624b9,_0x57817c){rimraf(path[_0x7455('0x23')](_0x3dba56,_0x14d52a),function(){});_0x299a9a(_0x7455('0x28'));});});}})[_0x7455('0x10')](function(){logger['info'](util['format'](_0x7455('0x29'),EXTRACTED_REPORT_ID,_0x7455('0xb')));return analyticExtractedReport(_0x7455('0x2a'),_0x2f7e29?util[_0x7455('0x13')](_0x7455('0x26'),_0x14d52a,_0x2f7e29?_0x7455('0x2b'):_0x7455('0x25')):null);});})['catch'](function(_0x1825c8){logger[_0x7455('0x2c')](util['format'](_0x7455('0x2d'),EXTRACTED_REPORT_ID,_0x7455('0xb')),util[_0x7455('0x2e')](_0x1825c8,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x7455('0x2f'));})['finally'](function(){process[_0x7455('0x30')](EXIT_CODE);});}main();