29c165b3b7e52b6bf680040e83b11bc4b798a136
[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 _0xbcc7=['length','range','push','QueryTypes','%s\x20limit\x20%d\x20OFFSET\x20%d','.csv','existsSync','join','each','%s%d.%s','%s.%s','csv','writeFileSync','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','Completed','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','util','lodash','bluebird','zip-dir','rimraf','../../mysqldb','argv','savename','AnalyticExtractedReport','info','format','Setting','find','split','splitSizeCsv','then','sequelize','query','SELECT','num'];(function(_0x304bbf,_0x3aa159){var _0x4a01a8=function(_0x1c1b2e){while(--_0x1c1b2e){_0x304bbf['push'](_0x304bbf['shift']());}};_0x4a01a8(++_0x3aa159);}(_0xbcc7,0x6a));var _0x7bcc=function(_0x5abe93,_0x12e222){_0x5abe93=_0x5abe93-0x0;var _0x1e6598=_0xbcc7[_0x5abe93];return _0x1e6598;};'use strict';var util=require(_0x7bcc('0x0'));var path=require('path');var _=require(_0x7bcc('0x1'));var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0x7bcc('0x2'));var zipdir=require(_0x7bcc('0x3'));var rimraf=require(_0x7bcc('0x4'));var db=require(_0x7bcc('0x5'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x7bcc('0x6')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x7bcc('0x6')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xad1f6b,_0x3485f4){var _0x103cbb={'status':_0xad1f6b};var _0x12a1ad={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3485f4){_0x103cbb[_0x7bcc('0x7')]=_0x3485f4;}return db[_0x7bcc('0x8')]['update'](_0x103cbb,_0x12a1ad);}function main(){var _0x546108=0x1388;var _0xc6f6d9;logger[_0x7bcc('0x9')](util[_0x7bcc('0xa')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'CSV'));return db[_0x7bcc('0xb')][_0x7bcc('0xc')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x7bcc('0xd'),_0x7bcc('0xe')]})[_0x7bcc('0xf')](function(_0x2e8829){if(_0x2e8829){_0xc6f6d9=_0x2e8829;_0x546108=_0xc6f6d9[_0x7bcc('0xe')]||0x1388;}})['then'](function(){return dbH[_0x7bcc('0x10')][_0x7bcc('0x11')](util[_0x7bcc('0xa')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x7bcc('0x10')]['QueryTypes'][_0x7bcc('0x12')]});})[_0x7bcc('0xf')](function(_0x5ef6b4){if(!_0x5ef6b4[0x0][_0x7bcc('0x13')]){return analyticExtractedReport('Empty');}var _0x350ed8=[];var _0x40c52b=0x0;if(_0xc6f6d9['split']){if(_0x5ef6b4&&_0x5ef6b4[_0x7bcc('0x14')]){var _0x55e3ce=_[_0x7bcc('0x15')](_0x5ef6b4[0x0]['num']/_0x546108);var _0x1f34c7=Number['isInteger'](_0x5ef6b4[0x0][_0x7bcc('0x13')]/_0x546108)?_0x5ef6b4[0x0][_0x7bcc('0x13')]%_0x546108:0x0;_0x55e3ce['forEach'](function(_0x4cadb6){if(_0x4cadb6>0x0){_0x40c52b+=_0x546108;}_0x350ed8[_0x7bcc('0x16')](dbH['sequelize'][_0x7bcc('0x11')](util[_0x7bcc('0xa')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x546108,_0x40c52b),{'type':dbH[_0x7bcc('0x10')][_0x7bcc('0x17')][_0x7bcc('0x12')]}));});if(_0x1f34c7>0x0){_0x40c52b+=_0x546108;_0x350ed8['push'](dbH[_0x7bcc('0x10')]['query'](util[_0x7bcc('0xa')](_0x7bcc('0x18'),QUERY,_0x1f34c7,_0x40c52b),{'type':dbH[_0x7bcc('0x10')][_0x7bcc('0x17')][_0x7bcc('0x12')]}));}}}else{_0x350ed8['push'](dbH[_0x7bcc('0x10')]['query'](QUERY,{'type':dbH[_0x7bcc('0x10')]['QueryTypes'][_0x7bcc('0x12')]}));}var _0x859b99=path['dirname'](PATH);var _0x41bc81=path['basename'](PATH,_0x7bcc('0x19'));var _0x17fb32=_0xc6f6d9['split']&&_0x350ed8[_0x7bcc('0x14')]>0x1;var _0x40e090=[];if(!fs[_0x7bcc('0x1a')](path[_0x7bcc('0x1b')](_0x859b99,_0x41bc81))&&_0x17fb32){fs['mkdirSync'](path[_0x7bcc('0x1b')](_0x859b99,_0x41bc81));}return BPromise[_0x7bcc('0x1c')](_0x350ed8,function(_0x276175){_0x40e090['push'](_0x276175);})[_0x7bcc('0xf')](function(){for(var _0x1977c3=0x0;_0x1977c3<_0x40e090['length'];_0x1977c3+=0x1){var _0x2934f3;var _0x117af3=_0x40e090[_0x1977c3];if(_0x17fb32){_0x2934f3=path['join'](_0x859b99,_0x41bc81,util[_0x7bcc('0xa')](_0x7bcc('0x1d'),_0x41bc81,_0x1977c3,'csv'));}else{_0x2934f3=path[_0x7bcc('0x1b')](_0x859b99,util[_0x7bcc('0xa')](_0x7bcc('0x1e'),_0x41bc81,_0x7bcc('0x1f')));}fs[_0x7bcc('0x20')](_0x2934f3,csv(_0x117af3));}})[_0x7bcc('0xf')](function(){if(_0x17fb32){return new Promise(function(_0x11e66a){zipdir(path['join'](_0x859b99,_0x41bc81),{'saveTo':path[_0x7bcc('0x1b')](_0x859b99,util[_0x7bcc('0xa')](_0x7bcc('0x1e'),_0x41bc81,'zip'))},function(_0x5058ec,_0x11ac93){rimraf(path[_0x7bcc('0x1b')](_0x859b99,_0x41bc81),function(){});_0x11e66a('zip\x20finished');});});}})[_0x7bcc('0xf')](function(){logger[_0x7bcc('0x9')](util[_0x7bcc('0xa')](_0x7bcc('0x21'),EXTRACTED_REPORT_ID,_0x7bcc('0x22')));return analyticExtractedReport(_0x7bcc('0x23'),_0x17fb32?util[_0x7bcc('0xa')](_0x7bcc('0x1e'),_0x41bc81,_0x17fb32?_0x7bcc('0x24'):_0x7bcc('0x1f')):null);});})[_0x7bcc('0x25')](function(_0x438da4){logger[_0x7bcc('0x9')](util[_0x7bcc('0xa')](_0x7bcc('0x26'),EXTRACTED_REPORT_ID,'CSV'),util[_0x7bcc('0x27')](_0x438da4,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x7bcc('0x28'));})[_0x7bcc('0x29')](function(){process['exit'](EXIT_CODE);});}main();