9b2d5f31d97fd62a399234ce2681bcf9ef1eec3f
[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 _0xb6b9=['%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','length','join','each','%s%d.%s','csv','%s.%s','zip','zip\x20finished','then','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','finally','util','lodash','to-csv','zip-dir','../../mysqldb','dbH','argv','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','find','split','splitSizeCsv','sequelize','query','QueryTypes','SELECT','num','forEach','push'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0xb6b9,0x1be));var _0x9b6b=function(_0x1738c0,_0x2fa809){_0x1738c0=_0x1738c0-0x0;var _0x70cf18=_0xb6b9[_0x1738c0];return _0x70cf18;};'use strict';var util=require(_0x9b6b('0x0'));var path=require('path');var _=require(_0x9b6b('0x1'));var csv=require(_0x9b6b('0x2'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0x9b6b('0x3'));var rimraf=require('rimraf');var db=require(_0x9b6b('0x4'))['db'];var dbH=require(_0x9b6b('0x4'))[_0x9b6b('0x5')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x9b6b('0x6')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xc07885,_0x491add){var _0xb697a3={'status':_0xc07885};var _0xcf3a3f={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x491add){_0xb697a3['savename']=_0x491add;}return db[_0x9b6b('0x7')]['update'](_0xb697a3,_0xcf3a3f);}function main(){var _0x357619=0x1388;var _0x5520ee;logger[_0x9b6b('0x8')](util[_0x9b6b('0x9')](_0x9b6b('0xa'),EXTRACTED_REPORT_ID,_0x9b6b('0xb')));return db['Setting'][_0x9b6b('0xc')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x9b6b('0xd'),_0x9b6b('0xe')]})['then'](function(_0x313791){if(_0x313791){_0x5520ee=_0x313791;_0x357619=_0x5520ee[_0x9b6b('0xe')]||0x1388;}})['then'](function(){return dbH[_0x9b6b('0xf')][_0x9b6b('0x10')](util[_0x9b6b('0x9')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x9b6b('0xf')][_0x9b6b('0x11')][_0x9b6b('0x12')]});})['then'](function(_0xb6058d){if(!_0xb6058d[0x0][_0x9b6b('0x13')]){return analyticExtractedReport('Empty');}var _0x217116=[];var _0x1fda5a=0x0;if(_0x5520ee['split']){if(_0xb6058d&&_0xb6058d['length']){var _0x156db5=_['range'](_0xb6058d[0x0]['num']/_0x357619);var _0x5dd058=Number['isInteger'](_0xb6058d[0x0][_0x9b6b('0x13')]/_0x357619)?_0xb6058d[0x0]['num']%_0x357619:0x0;_0x156db5[_0x9b6b('0x14')](function(_0x26349f){if(_0x26349f>0x0){_0x1fda5a+=_0x357619;}_0x217116[_0x9b6b('0x15')](dbH['sequelize'][_0x9b6b('0x10')](util[_0x9b6b('0x9')](_0x9b6b('0x16'),QUERY,_0x357619,_0x1fda5a),{'type':dbH[_0x9b6b('0xf')][_0x9b6b('0x11')]['SELECT']}));});if(_0x5dd058>0x0){_0x1fda5a+=_0x357619;_0x217116[_0x9b6b('0x15')](dbH['sequelize'][_0x9b6b('0x10')](util[_0x9b6b('0x9')](_0x9b6b('0x16'),QUERY,_0x5dd058,_0x1fda5a),{'type':dbH[_0x9b6b('0xf')][_0x9b6b('0x11')][_0x9b6b('0x12')]}));}}}else{_0x217116['push'](dbH[_0x9b6b('0xf')][_0x9b6b('0x10')](QUERY,{'type':dbH['sequelize']['QueryTypes'][_0x9b6b('0x12')]}));}var _0x5bbff8=path[_0x9b6b('0x17')](PATH);var _0x33a615=path[_0x9b6b('0x18')](PATH,_0x9b6b('0x19'));var _0x46bcef=_0x5520ee[_0x9b6b('0xd')]&&_0x217116[_0x9b6b('0x1a')]>0x1;var _0x3f23d2=[];if(!fs['existsSync'](path[_0x9b6b('0x1b')](_0x5bbff8,_0x33a615))&&_0x46bcef){fs['mkdirSync'](path[_0x9b6b('0x1b')](_0x5bbff8,_0x33a615));}return BPromise[_0x9b6b('0x1c')](_0x217116,function(_0x58fac4){_0x3f23d2[_0x9b6b('0x15')](_0x58fac4);})['then'](function(){for(var _0x25e45e=0x0;_0x25e45e<_0x3f23d2['length'];_0x25e45e+=0x1){var _0x70666e;var _0x149bc2=_0x3f23d2[_0x25e45e];if(_0x46bcef){_0x70666e=path[_0x9b6b('0x1b')](_0x5bbff8,_0x33a615,util[_0x9b6b('0x9')](_0x9b6b('0x1d'),_0x33a615,_0x25e45e,_0x9b6b('0x1e')));}else{_0x70666e=path['join'](_0x5bbff8,util[_0x9b6b('0x9')](_0x9b6b('0x1f'),_0x33a615,'csv'));}fs['writeFileSync'](_0x70666e,csv(_0x149bc2));}})['then'](function(){if(_0x46bcef){return new Promise(function(_0x59850d){zipdir(path['join'](_0x5bbff8,_0x33a615),{'saveTo':path['join'](_0x5bbff8,util['format']('%s.%s',_0x33a615,_0x9b6b('0x20')))},function(_0x30c4b4,_0x4031f7){rimraf(path[_0x9b6b('0x1b')](_0x5bbff8,_0x33a615),function(){});_0x59850d(_0x9b6b('0x21'));});});}})[_0x9b6b('0x22')](function(){logger['info'](util[_0x9b6b('0x9')](_0x9b6b('0x23'),EXTRACTED_REPORT_ID,_0x9b6b('0xb')));return analyticExtractedReport(_0x9b6b('0x24'),_0x46bcef?util['format']('%s.%s',_0x33a615,_0x46bcef?_0x9b6b('0x20'):_0x9b6b('0x1e')):null);});})['catch'](function(_0x4260cf){logger['info'](util['format'](_0x9b6b('0x25'),EXTRACTED_REPORT_ID,_0x9b6b('0xb')),util['inspect'](_0x4260cf,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x9b6b('0x26')](function(){process['exit'](EXIT_CODE);});}main();