8430f8dd636e213200586534d4213c7f67e6db59
[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 _0x459d=['../../config/logger','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','split','splitSizeCsv','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','SELECT','then','num','Empty','length','range','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','.csv','join','mkdirSync','each','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Failed','finally','exit','util','path','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','dbH'];(function(_0x2b5558,_0x16d393){var _0x50ee41=function(_0x30224a){while(--_0x30224a){_0x2b5558['push'](_0x2b5558['shift']());}};_0x50ee41(++_0x16d393);}(_0x459d,0x1ce));var _0xd459=function(_0x45606b,_0xaadd11){_0x45606b=_0x45606b-0x0;var _0x174034=_0x459d[_0x45606b];return _0x174034;};'use strict';var util=require(_0xd459('0x0'));var path=require(_0xd459('0x1'));var _=require('lodash');var csv=require(_0xd459('0x2'));var fs=require('fs');var BPromise=require(_0xd459('0x3'));var zipdir=require(_0xd459('0x4'));var rimraf=require(_0xd459('0x5'));var db=require(_0xd459('0x6'))['db'];var dbH=require('../../mysqldb')[_0xd459('0x7')];var logger=require(_0xd459('0x8'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xd459('0x9')][0x2]);var QUERY=process[_0xd459('0x9')][0x3];var PATH=process[_0xd459('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2b9256,_0x25f19c){var _0x578f25={'status':_0x2b9256};var _0x591ea5={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x25f19c){_0x578f25[_0xd459('0xa')]=_0x25f19c;}return db[_0xd459('0xb')][_0xd459('0xc')](_0x578f25,_0x591ea5);}function main(){var _0x4ea308=0x1388;var _0x5426dd;logger[_0xd459('0xd')](util[_0xd459('0xe')](_0xd459('0xf'),EXTRACTED_REPORT_ID,_0xd459('0x10')));return db['Setting']['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xd459('0x11'),_0xd459('0x12')]})['then'](function(_0x5283e9){if(_0x5283e9){_0x5426dd=_0x5283e9;_0x4ea308=_0x5426dd[_0xd459('0x12')]||0x1388;}})['then'](function(){return dbH['sequelize'][_0xd459('0x13')](util[_0xd459('0xe')](_0xd459('0x14'),QUERY),{'type':dbH[_0xd459('0x15')][_0xd459('0x16')][_0xd459('0x17')]});})[_0xd459('0x18')](function(_0x38f12d){if(!_0x38f12d[0x0][_0xd459('0x19')]){return analyticExtractedReport(_0xd459('0x1a'));}var _0x2cbe8d=[];var _0x488aa4=0x0;if(_0x5426dd[_0xd459('0x11')]){if(_0x38f12d&&_0x38f12d[_0xd459('0x1b')]){var _0x2a9b93=_[_0xd459('0x1c')](_0x38f12d[0x0][_0xd459('0x19')]/_0x4ea308);var _0xd2356e=Number['isInteger'](_0x38f12d[0x0][_0xd459('0x19')]/_0x4ea308)?_0x38f12d[0x0][_0xd459('0x19')]%_0x4ea308:0x0;_0x2a9b93[_0xd459('0x1d')](function(_0x5aefde){if(_0x5aefde>0x0){_0x488aa4+=_0x4ea308;}_0x2cbe8d[_0xd459('0x1e')](dbH['sequelize'][_0xd459('0x13')](util[_0xd459('0xe')](_0xd459('0x1f'),QUERY,_0x4ea308,_0x488aa4),{'type':dbH['sequelize'][_0xd459('0x16')]['SELECT']}));});if(_0xd2356e>0x0){_0x488aa4+=_0x4ea308;_0x2cbe8d[_0xd459('0x1e')](dbH[_0xd459('0x15')][_0xd459('0x13')](util[_0xd459('0xe')](_0xd459('0x1f'),QUERY,_0xd2356e,_0x488aa4),{'type':dbH[_0xd459('0x15')][_0xd459('0x16')][_0xd459('0x17')]}));}}}else{_0x2cbe8d['push'](dbH[_0xd459('0x15')][_0xd459('0x13')](QUERY,{'type':dbH['sequelize'][_0xd459('0x16')][_0xd459('0x17')]}));}var _0xa229f5=path['dirname'](PATH);var _0x365d5b=path[_0xd459('0x20')](PATH,_0xd459('0x21'));var _0x443984=_0x5426dd['split']&&_0x2cbe8d[_0xd459('0x1b')]>0x1;var _0x5b28f2=[];if(!fs['existsSync'](path[_0xd459('0x22')](_0xa229f5,_0x365d5b))&&_0x443984){fs[_0xd459('0x23')](path[_0xd459('0x22')](_0xa229f5,_0x365d5b));}return BPromise[_0xd459('0x24')](_0x2cbe8d,function(_0x3faff1){_0x5b28f2[_0xd459('0x1e')](_0x3faff1);})[_0xd459('0x18')](function(){for(var _0x2e4b2c=0x0;_0x2e4b2c<_0x5b28f2[_0xd459('0x1b')];_0x2e4b2c+=0x1){var _0x18e13a;var _0x3e5c81=_0x5b28f2[_0x2e4b2c];if(_0x443984){_0x18e13a=path[_0xd459('0x22')](_0xa229f5,_0x365d5b,util[_0xd459('0xe')]('%s%d.%s',_0x365d5b,_0x2e4b2c,_0xd459('0x25')));}else{_0x18e13a=path[_0xd459('0x22')](_0xa229f5,util[_0xd459('0xe')](_0xd459('0x26'),_0x365d5b,'csv'));}fs[_0xd459('0x27')](_0x18e13a,csv(_0x3e5c81));}})['then'](function(){if(_0x443984){return new Promise(function(_0x5e090c){zipdir(path[_0xd459('0x22')](_0xa229f5,_0x365d5b),{'saveTo':path[_0xd459('0x22')](_0xa229f5,util[_0xd459('0xe')](_0xd459('0x26'),_0x365d5b,_0xd459('0x28')))},function(_0x5d5955,_0x1f45f2){rimraf(path['join'](_0xa229f5,_0x365d5b),function(){});_0x5e090c('zip\x20finished');});});}})[_0xd459('0x18')](function(){logger[_0xd459('0xd')](util[_0xd459('0xe')](_0xd459('0x29'),EXTRACTED_REPORT_ID,_0xd459('0x10')));return analyticExtractedReport(_0xd459('0x2a'),_0x443984?util[_0xd459('0xe')](_0xd459('0x26'),_0x365d5b,_0x443984?_0xd459('0x28'):_0xd459('0x25')):null);});})[_0xd459('0x2b')](function(_0x343bbd){logger[_0xd459('0xd')](util[_0xd459('0xe')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xd459('0x10')),util['inspect'](_0x343bbd,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xd459('0x2c'));})[_0xd459('0x2d')](function(){process[_0xd459('0x2e')](EXIT_CODE);});}main();