9ac575589f28ee7f01473389c9384c72bbe392ea
[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 _0x61ba=['Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','to-csv','bluebird','rimraf','../../mysqldb','argv','savename','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','split','length','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','existsSync','join','each','%s%d.%s','csv','%s.%s','writeFileSync','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed'];(function(_0x525942,_0x110182){var _0xe737e2=function(_0x17e42e){while(--_0x17e42e){_0x525942['push'](_0x525942['shift']());}};_0xe737e2(++_0x110182);}(_0x61ba,0x17d));var _0xa61b=function(_0xcc948f,_0x2038b1){_0xcc948f=_0xcc948f-0x0;var _0x143116=_0x61ba[_0xcc948f];return _0x143116;};'use strict';var util=require(_0xa61b('0x0'));var path=require('path');var _=require('lodash');var csv=require(_0xa61b('0x1'));var fs=require('fs');var BPromise=require(_0xa61b('0x2'));var zipdir=require('zip-dir');var rimraf=require(_0xa61b('0x3'));var db=require(_0xa61b('0x4'))['db'];var dbH=require(_0xa61b('0x4'))['dbH'];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xa61b('0x5')][0x2]);var QUERY=process[_0xa61b('0x5')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2376c8,_0x12d4dc){var _0x5a6eb2={'status':_0x2376c8};var _0x26ca48={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x12d4dc){_0x5a6eb2[_0xa61b('0x6')]=_0x12d4dc;}return db[_0xa61b('0x7')]['update'](_0x5a6eb2,_0x26ca48);}function main(){var _0x5b0d43=0x1388;var _0x4b5bed;logger[_0xa61b('0x8')](util[_0xa61b('0x9')](_0xa61b('0xa'),EXTRACTED_REPORT_ID,_0xa61b('0xb')));return db[_0xa61b('0xc')][_0xa61b('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split','splitSizeCsv']})['then'](function(_0x13d605){if(_0x13d605){_0x4b5bed=_0x13d605;_0x5b0d43=_0x4b5bed['splitSizeCsv']||0x1388;}})[_0xa61b('0xe')](function(){return dbH[_0xa61b('0xf')][_0xa61b('0x10')](util[_0xa61b('0x9')](_0xa61b('0x11'),QUERY),{'type':dbH[_0xa61b('0xf')][_0xa61b('0x12')][_0xa61b('0x13')]});})[_0xa61b('0xe')](function(_0x2f1d0b){if(!_0x2f1d0b[0x0][_0xa61b('0x14')]){return analyticExtractedReport(_0xa61b('0x15'));}var _0x7d7fae=[];var _0x50abbf=0x0;if(_0x4b5bed[_0xa61b('0x16')]){if(_0x2f1d0b&&_0x2f1d0b[_0xa61b('0x17')]){var _0x524bf2=_[_0xa61b('0x18')](_0x2f1d0b[0x0]['num']/_0x5b0d43);var _0x1af577=Number[_0xa61b('0x19')](_0x2f1d0b[0x0][_0xa61b('0x14')]/_0x5b0d43)?_0x2f1d0b[0x0]['num']%_0x5b0d43:0x0;_0x524bf2[_0xa61b('0x1a')](function(_0x83786a){if(_0x83786a>0x0){_0x50abbf+=_0x5b0d43;}_0x7d7fae[_0xa61b('0x1b')](dbH['sequelize'][_0xa61b('0x10')](util[_0xa61b('0x9')](_0xa61b('0x1c'),QUERY,_0x5b0d43,_0x50abbf),{'type':dbH[_0xa61b('0xf')]['QueryTypes']['SELECT']}));});if(_0x1af577>0x0){_0x50abbf+=_0x5b0d43;_0x7d7fae['push'](dbH['sequelize']['query'](util[_0xa61b('0x9')](_0xa61b('0x1c'),QUERY,_0x1af577,_0x50abbf),{'type':dbH['sequelize']['QueryTypes']['SELECT']}));}}}else{_0x7d7fae[_0xa61b('0x1b')](dbH['sequelize'][_0xa61b('0x10')](QUERY,{'type':dbH[_0xa61b('0xf')][_0xa61b('0x12')][_0xa61b('0x13')]}));}var _0x3996e6=path[_0xa61b('0x1d')](PATH);var _0x2be8c6=path[_0xa61b('0x1e')](PATH,_0xa61b('0x1f'));var _0x38e5c5=_0x4b5bed[_0xa61b('0x16')]&&_0x7d7fae[_0xa61b('0x17')]>0x1;var _0x47568c=[];if(!fs[_0xa61b('0x20')](path[_0xa61b('0x21')](_0x3996e6,_0x2be8c6))&&_0x38e5c5){fs['mkdirSync'](path['join'](_0x3996e6,_0x2be8c6));}return BPromise[_0xa61b('0x22')](_0x7d7fae,function(_0x1bd244){_0x47568c['push'](_0x1bd244);})[_0xa61b('0xe')](function(){for(var _0x455c8f=0x0;_0x455c8f<_0x47568c['length'];_0x455c8f+=0x1){var _0x38fa21;var _0x26ca89=_0x47568c[_0x455c8f];if(_0x38e5c5){_0x38fa21=path[_0xa61b('0x21')](_0x3996e6,_0x2be8c6,util['format'](_0xa61b('0x23'),_0x2be8c6,_0x455c8f,_0xa61b('0x24')));}else{_0x38fa21=path[_0xa61b('0x21')](_0x3996e6,util[_0xa61b('0x9')](_0xa61b('0x25'),_0x2be8c6,_0xa61b('0x24')));}fs[_0xa61b('0x26')](_0x38fa21,csv(_0x26ca89));}})[_0xa61b('0xe')](function(){if(_0x38e5c5){return new Promise(function(_0x1561ed){zipdir(path[_0xa61b('0x21')](_0x3996e6,_0x2be8c6),{'saveTo':path['join'](_0x3996e6,util[_0xa61b('0x9')](_0xa61b('0x25'),_0x2be8c6,_0xa61b('0x27')))},function(_0x2ff2ee,_0x437e72){rimraf(path[_0xa61b('0x21')](_0x3996e6,_0x2be8c6),function(){});_0x1561ed(_0xa61b('0x28'));});});}})[_0xa61b('0xe')](function(){logger['info'](util[_0xa61b('0x9')](_0xa61b('0x29'),EXTRACTED_REPORT_ID,_0xa61b('0xb')));return analyticExtractedReport(_0xa61b('0x2a'),_0x38e5c5?util[_0xa61b('0x9')](_0xa61b('0x25'),_0x2be8c6,_0x38e5c5?_0xa61b('0x27'):'csv'):null);});})[_0xa61b('0x2b')](function(_0x5616ad){logger[_0xa61b('0x8')](util['format'](_0xa61b('0x2c'),EXTRACTED_REPORT_ID,'CSV'),util[_0xa61b('0x2d')](_0x5616ad,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xa61b('0x2e'));})['finally'](function(){process['exit'](EXIT_CODE);});}main();