Built motion from commit 1fa89557.|2.6.10
[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 _0xd541=['Empty','range','isInteger','forEach','push','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','basename','.csv','length','existsSync','join','mkdirSync','each','%s%d.%s','%s.%s','csv','zip','zip\x20finished','info','Completed','Failed','exit','util','path','to-csv','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','CSV','find','split','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','SELECT','then','num'];(function(_0x2bcc5d,_0x36f5f5){var _0x5d67d=function(_0x3c5e3e){while(--_0x3c5e3e){_0x2bcc5d['push'](_0x2bcc5d['shift']());}};_0x5d67d(++_0x36f5f5);}(_0xd541,0xf9));var _0x1d54=function(_0x23ca4d,_0x5c2a32){_0x23ca4d=_0x23ca4d-0x0;var _0x435432=_0xd541[_0x23ca4d];return _0x435432;};'use strict';var util=require(_0x1d54('0x0'));var path=require(_0x1d54('0x1'));var _=require('lodash');var csv=require(_0x1d54('0x2'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require('zip-dir');var rimraf=require(_0x1d54('0x3'));var db=require(_0x1d54('0x4'))['db'];var dbH=require(_0x1d54('0x4'))[_0x1d54('0x5')];var logger=require(_0x1d54('0x6'))(_0x1d54('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x1d54('0x8')][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xa9db2a,_0x161f1a){var _0x124568={'status':_0xa9db2a};var _0x34a90d={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x161f1a){_0x124568[_0x1d54('0x9')]=_0x161f1a;}return db[_0x1d54('0xa')][_0x1d54('0xb')](_0x124568,_0x34a90d);}function main(){var _0x44d8f6=0x1388;var _0x4d46ca;logger['info'](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x1d54('0xc')));return db['Setting'][_0x1d54('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x1d54('0xe'),'splitSizeCsv']})['then'](function(_0x1342c3){if(_0x1342c3){_0x4d46ca=_0x1342c3;_0x44d8f6=_0x4d46ca['splitSizeCsv']||0x1388;}})['then'](function(){return dbH['sequelize']['query'](util[_0x1d54('0xf')](_0x1d54('0x10'),QUERY),{'type':dbH[_0x1d54('0x11')]['QueryTypes'][_0x1d54('0x12')]});})[_0x1d54('0x13')](function(_0x1cee68){if(!_0x1cee68[0x0][_0x1d54('0x14')]){return analyticExtractedReport(_0x1d54('0x15'));}var _0x2bc2d6=[];var _0x1258e1=0x0;if(_0x4d46ca[_0x1d54('0xe')]){if(_0x1cee68&&_0x1cee68['length']){var _0x3bcfdd=_[_0x1d54('0x16')](_0x1cee68[0x0][_0x1d54('0x14')]/_0x44d8f6);var _0x2783fb=Number[_0x1d54('0x17')](_0x1cee68[0x0][_0x1d54('0x14')]/_0x44d8f6)?_0x1cee68[0x0]['num']%_0x44d8f6:0x0;_0x3bcfdd[_0x1d54('0x18')](function(_0x42726f){if(_0x42726f>0x0){_0x1258e1+=_0x44d8f6;}_0x2bc2d6[_0x1d54('0x19')](dbH[_0x1d54('0x11')][_0x1d54('0x1a')](util[_0x1d54('0xf')](_0x1d54('0x1b'),QUERY,_0x44d8f6,_0x1258e1),{'type':dbH[_0x1d54('0x11')][_0x1d54('0x1c')][_0x1d54('0x12')]}));});if(_0x2783fb>0x0){_0x1258e1+=_0x44d8f6;_0x2bc2d6[_0x1d54('0x19')](dbH[_0x1d54('0x11')][_0x1d54('0x1a')](util[_0x1d54('0xf')](_0x1d54('0x1b'),QUERY,_0x2783fb,_0x1258e1),{'type':dbH[_0x1d54('0x11')][_0x1d54('0x1c')]['SELECT']}));}}}else{_0x2bc2d6[_0x1d54('0x19')](dbH[_0x1d54('0x11')][_0x1d54('0x1a')](QUERY,{'type':dbH[_0x1d54('0x11')][_0x1d54('0x1c')][_0x1d54('0x12')]}));}var _0x37f7b0=path['dirname'](PATH);var _0x9bf2bc=path[_0x1d54('0x1d')](PATH,_0x1d54('0x1e'));var _0x135daf=_0x4d46ca[_0x1d54('0xe')]&&_0x2bc2d6[_0x1d54('0x1f')]>0x1;var _0x383285=[];if(!fs[_0x1d54('0x20')](path[_0x1d54('0x21')](_0x37f7b0,_0x9bf2bc))&&_0x135daf){fs[_0x1d54('0x22')](path[_0x1d54('0x21')](_0x37f7b0,_0x9bf2bc));}return BPromise[_0x1d54('0x23')](_0x2bc2d6,function(_0x1694a8){_0x383285[_0x1d54('0x19')](_0x1694a8);})[_0x1d54('0x13')](function(){for(var _0x18a65f=0x0;_0x18a65f<_0x383285[_0x1d54('0x1f')];_0x18a65f+=0x1){var _0x3623f7;var _0x4cfba4=_0x383285[_0x18a65f];if(_0x135daf){_0x3623f7=path['join'](_0x37f7b0,_0x9bf2bc,util['format'](_0x1d54('0x24'),_0x9bf2bc,_0x18a65f,'csv'));}else{_0x3623f7=path['join'](_0x37f7b0,util['format'](_0x1d54('0x25'),_0x9bf2bc,_0x1d54('0x26')));}fs['writeFileSync'](_0x3623f7,csv(_0x4cfba4));}})['then'](function(){if(_0x135daf){return new Promise(function(_0x13547b){zipdir(path[_0x1d54('0x21')](_0x37f7b0,_0x9bf2bc),{'saveTo':path[_0x1d54('0x21')](_0x37f7b0,util[_0x1d54('0xf')](_0x1d54('0x25'),_0x9bf2bc,_0x1d54('0x27')))},function(_0x47bcae,_0x1a7f05){rimraf(path[_0x1d54('0x21')](_0x37f7b0,_0x9bf2bc),function(){});_0x13547b(_0x1d54('0x28'));});});}})[_0x1d54('0x13')](function(){logger[_0x1d54('0x29')](util[_0x1d54('0xf')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0x1d54('0x2a'),_0x135daf?util['format'](_0x1d54('0x25'),_0x9bf2bc,_0x135daf?_0x1d54('0x27'):_0x1d54('0x26')):null);});})['catch'](function(_0x589099){logger[_0x1d54('0x29')](util[_0x1d54('0xf')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x1d54('0xc')),util['inspect'](_0x589099,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x1d54('0x2b'));})['finally'](function(){process[_0x1d54('0x2c')](EXIT_CODE);});}main();