92e08dd87e5815d1d53b06aedaa6931533b8807e
[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 _0xb3d1=['%s\x20limit\x20%d\x20OFFSET\x20%d','push','dirname','existsSync','join','%s%d.%s','csv','writeFileSync','%s.%s','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','lodash','bluebird','rimraf','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','Empty','length','num','isInteger'];(function(_0x10b183,_0x5f155e){var _0xdf206f=function(_0x52cb6f){while(--_0x52cb6f){_0x10b183['push'](_0x10b183['shift']());}};_0xdf206f(++_0x5f155e);}(_0xb3d1,0xb4));var _0x1b3d=function(_0x2379bd,_0x98d1d3){_0x2379bd=_0x2379bd-0x0;var _0x51bbf1=_0xb3d1[_0x2379bd];return _0x51bbf1;};'use strict';var util=require('util');var path=require('path');var _=require(_0x1b3d('0x0'));var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0x1b3d('0x1'));var zipdir=require('zip-dir');var rimraf=require(_0x1b3d('0x2'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require('../../config/logger')(_0x1b3d('0x3'));var EXTRACTED_REPORT_ID=Number(process[_0x1b3d('0x4')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x1b3d('0x4')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x23a9e1,_0x1b110b){var _0x2fb72e={'status':_0x23a9e1};var _0x379e38={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1b110b){_0x2fb72e[_0x1b3d('0x5')]=_0x1b110b;}return db[_0x1b3d('0x6')][_0x1b3d('0x7')](_0x2fb72e,_0x379e38);}function main(){var _0x558e73=0x1388;var _0x2b35b8;logger[_0x1b3d('0x8')](util[_0x1b3d('0x9')](_0x1b3d('0xa'),EXTRACTED_REPORT_ID,_0x1b3d('0xb')));return db[_0x1b3d('0xc')][_0x1b3d('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x1b3d('0xe')]})['then'](function(_0x72f17b){if(_0x72f17b){_0x2b35b8=_0x72f17b;_0x558e73=_0x2b35b8[_0x1b3d('0xe')]||0x1388;}})[_0x1b3d('0xf')](function(){return dbH[_0x1b3d('0x10')][_0x1b3d('0x11')](util[_0x1b3d('0x9')](_0x1b3d('0x12'),QUERY),{'type':dbH[_0x1b3d('0x10')][_0x1b3d('0x13')][_0x1b3d('0x14')]});})[_0x1b3d('0xf')](function(_0x4d3f18){if(!_0x4d3f18[0x0]['num']){return analyticExtractedReport(_0x1b3d('0x15'));}var _0x403a96=[];var _0x13c144=0x0;if(_0x2b35b8['split']){if(_0x4d3f18&&_0x4d3f18[_0x1b3d('0x16')]){var _0x12ccf3=_['range'](_0x4d3f18[0x0][_0x1b3d('0x17')]/_0x558e73);var _0x37da76=Number[_0x1b3d('0x18')](_0x4d3f18[0x0][_0x1b3d('0x17')]/_0x558e73)?_0x4d3f18[0x0][_0x1b3d('0x17')]%_0x558e73:0x0;_0x12ccf3['forEach'](function(_0xe15b71){if(_0xe15b71>0x0){_0x13c144+=_0x558e73;}_0x403a96['push'](dbH[_0x1b3d('0x10')][_0x1b3d('0x11')](util[_0x1b3d('0x9')](_0x1b3d('0x19'),QUERY,_0x558e73,_0x13c144),{'type':dbH['sequelize']['QueryTypes']['SELECT']}));});if(_0x37da76>0x0){_0x13c144+=_0x558e73;_0x403a96[_0x1b3d('0x1a')](dbH['sequelize'][_0x1b3d('0x11')](util[_0x1b3d('0x9')](_0x1b3d('0x19'),QUERY,_0x37da76,_0x13c144),{'type':dbH[_0x1b3d('0x10')][_0x1b3d('0x13')][_0x1b3d('0x14')]}));}}}else{_0x403a96[_0x1b3d('0x1a')](dbH[_0x1b3d('0x10')]['query'](QUERY,{'type':dbH[_0x1b3d('0x10')][_0x1b3d('0x13')]['SELECT']}));}var _0x405423=path[_0x1b3d('0x1b')](PATH);var _0x51f154=path['basename'](PATH,'.csv');var _0x41369e=_0x2b35b8['split']&&_0x403a96[_0x1b3d('0x16')]>0x1;var _0x130054=[];if(!fs[_0x1b3d('0x1c')](path[_0x1b3d('0x1d')](_0x405423,_0x51f154))&&_0x41369e){fs['mkdirSync'](path[_0x1b3d('0x1d')](_0x405423,_0x51f154));}return BPromise['each'](_0x403a96,function(_0x1b5b7b){_0x130054[_0x1b3d('0x1a')](_0x1b5b7b);})[_0x1b3d('0xf')](function(){for(var _0x196706=0x0;_0x196706<_0x130054[_0x1b3d('0x16')];_0x196706+=0x1){var _0x28e7c7;var _0x3b18af=_0x130054[_0x196706];if(_0x41369e){_0x28e7c7=path[_0x1b3d('0x1d')](_0x405423,_0x51f154,util[_0x1b3d('0x9')](_0x1b3d('0x1e'),_0x51f154,_0x196706,'csv'));}else{_0x28e7c7=path[_0x1b3d('0x1d')](_0x405423,util[_0x1b3d('0x9')]('%s.%s',_0x51f154,_0x1b3d('0x1f')));}fs[_0x1b3d('0x20')](_0x28e7c7,csv(_0x3b18af));}})[_0x1b3d('0xf')](function(){if(_0x41369e){return new Promise(function(_0x137295){zipdir(path[_0x1b3d('0x1d')](_0x405423,_0x51f154),{'saveTo':path[_0x1b3d('0x1d')](_0x405423,util[_0x1b3d('0x9')](_0x1b3d('0x21'),_0x51f154,'zip'))},function(_0x519b05,_0x30e417){rimraf(path['join'](_0x405423,_0x51f154),function(){});_0x137295('zip\x20finished');});});}})[_0x1b3d('0xf')](function(){logger['info'](util[_0x1b3d('0x9')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x1b3d('0xb')));return analyticExtractedReport('Completed',_0x41369e?util[_0x1b3d('0x9')](_0x1b3d('0x21'),_0x51f154,_0x41369e?_0x1b3d('0x22'):'csv'):null);});})[_0x1b3d('0x23')](function(_0x29c573){logger[_0x1b3d('0x8')](util[_0x1b3d('0x9')](_0x1b3d('0x24'),EXTRACTED_REPORT_ID,_0x1b3d('0xb')),util[_0x1b3d('0x25')](_0x29c573,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x1b3d('0x26'));})[_0x1b3d('0x27')](function(){process[_0x1b3d('0x28')](EXIT_CODE);});}main();