0d4b6cd9b8c33ad8cbb3df70e96cd50e9fd61987
[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 _0x37fb=['analytics','argv','savename','AnalyticExtractedReport','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','split','splitSizeCsv','then','sequelize','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','length','range','num','isInteger','forEach','query','%s\x20limit\x20%d\x20OFFSET\x20%d','push','basename','.csv','existsSync','mkdirSync','join','%s%d.%s','csv','%s.%s','zip','zip\x20finished','info','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','finally','exit','util','path','to-csv','bluebird','zip-dir','../../mysqldb','dbH','../../config/logger'];(function(_0x22faae,_0x52f4de){var _0x5df295=function(_0x43923a){while(--_0x43923a){_0x22faae['push'](_0x22faae['shift']());}};_0x5df295(++_0x52f4de);}(_0x37fb,0x88));var _0xb37f=function(_0x3ccdba,_0x5356d7){_0x3ccdba=_0x3ccdba-0x0;var _0xa2624c=_0x37fb[_0x3ccdba];return _0xa2624c;};'use strict';var util=require(_0xb37f('0x0'));var path=require(_0xb37f('0x1'));var _=require('lodash');var csv=require(_0xb37f('0x2'));var fs=require('fs');var BPromise=require(_0xb37f('0x3'));var zipdir=require(_0xb37f('0x4'));var rimraf=require('rimraf');var db=require(_0xb37f('0x5'))['db'];var dbH=require(_0xb37f('0x5'))[_0xb37f('0x6')];var logger=require(_0xb37f('0x7'))(_0xb37f('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0xb37f('0x9')][0x2]);var QUERY=process[_0xb37f('0x9')][0x3];var PATH=process[_0xb37f('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x3ee5a8,_0x381543){var _0x182005={'status':_0x3ee5a8};var _0x4d0452={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x381543){_0x182005[_0xb37f('0xa')]=_0x381543;}return db[_0xb37f('0xb')]['update'](_0x182005,_0x4d0452);}function main(){var _0x2ab107=0x1388;var _0x2c12bc;logger['info'](util[_0xb37f('0xc')](_0xb37f('0xd'),EXTRACTED_REPORT_ID,_0xb37f('0xe')));return db[_0xb37f('0xf')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xb37f('0x10'),_0xb37f('0x11')]})[_0xb37f('0x12')](function(_0x26d881){if(_0x26d881){_0x2c12bc=_0x26d881;_0x2ab107=_0x2c12bc['splitSizeCsv']||0x1388;}})['then'](function(){return dbH[_0xb37f('0x13')]['query'](util[_0xb37f('0xc')](_0xb37f('0x14'),QUERY),{'type':dbH[_0xb37f('0x13')][_0xb37f('0x15')][_0xb37f('0x16')]});})[_0xb37f('0x12')](function(_0x231c8d){if(!_0x231c8d[0x0]['num']){return analyticExtractedReport('Empty');}var _0x213b84=[];var _0xa1f377=0x0;if(_0x2c12bc[_0xb37f('0x10')]){if(_0x231c8d&&_0x231c8d[_0xb37f('0x17')]){var _0x26c75f=_[_0xb37f('0x18')](_0x231c8d[0x0][_0xb37f('0x19')]/_0x2ab107);var _0x4e2601=Number[_0xb37f('0x1a')](_0x231c8d[0x0][_0xb37f('0x19')]/_0x2ab107)?_0x231c8d[0x0]['num']%_0x2ab107:0x0;_0x26c75f[_0xb37f('0x1b')](function(_0x165582){if(_0x165582>0x0){_0xa1f377+=_0x2ab107;}_0x213b84['push'](dbH[_0xb37f('0x13')][_0xb37f('0x1c')](util['format'](_0xb37f('0x1d'),QUERY,_0x2ab107,_0xa1f377),{'type':dbH[_0xb37f('0x13')][_0xb37f('0x15')]['SELECT']}));});if(_0x4e2601>0x0){_0xa1f377+=_0x2ab107;_0x213b84['push'](dbH[_0xb37f('0x13')][_0xb37f('0x1c')](util[_0xb37f('0xc')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x4e2601,_0xa1f377),{'type':dbH[_0xb37f('0x13')][_0xb37f('0x15')][_0xb37f('0x16')]}));}}}else{_0x213b84[_0xb37f('0x1e')](dbH['sequelize'][_0xb37f('0x1c')](QUERY,{'type':dbH[_0xb37f('0x13')]['QueryTypes'][_0xb37f('0x16')]}));}var _0x591002=path['dirname'](PATH);var _0x213733=path[_0xb37f('0x1f')](PATH,_0xb37f('0x20'));var _0x5bcd32=_0x2c12bc[_0xb37f('0x10')]&&_0x213b84[_0xb37f('0x17')]>0x1;var _0x28e99f=[];if(!fs[_0xb37f('0x21')](path['join'](_0x591002,_0x213733))&&_0x5bcd32){fs[_0xb37f('0x22')](path[_0xb37f('0x23')](_0x591002,_0x213733));}return BPromise['each'](_0x213b84,function(_0x38523b){_0x28e99f[_0xb37f('0x1e')](_0x38523b);})[_0xb37f('0x12')](function(){for(var _0x592d38=0x0;_0x592d38<_0x28e99f['length'];_0x592d38+=0x1){var _0xcfffae;var _0x490529=_0x28e99f[_0x592d38];if(_0x5bcd32){_0xcfffae=path[_0xb37f('0x23')](_0x591002,_0x213733,util[_0xb37f('0xc')](_0xb37f('0x24'),_0x213733,_0x592d38,_0xb37f('0x25')));}else{_0xcfffae=path[_0xb37f('0x23')](_0x591002,util[_0xb37f('0xc')](_0xb37f('0x26'),_0x213733,'csv'));}fs['writeFileSync'](_0xcfffae,csv(_0x490529));}})[_0xb37f('0x12')](function(){if(_0x5bcd32){return new Promise(function(_0x4dc159){zipdir(path[_0xb37f('0x23')](_0x591002,_0x213733),{'saveTo':path['join'](_0x591002,util[_0xb37f('0xc')](_0xb37f('0x26'),_0x213733,_0xb37f('0x27')))},function(_0x20afc4,_0x263a17){rimraf(path[_0xb37f('0x23')](_0x591002,_0x213733),function(){});_0x4dc159(_0xb37f('0x28'));});});}})['then'](function(){logger[_0xb37f('0x29')](util[_0xb37f('0xc')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xb37f('0xe')));return analyticExtractedReport(_0xb37f('0x2a'),_0x5bcd32?util[_0xb37f('0xc')](_0xb37f('0x26'),_0x213733,_0x5bcd32?'zip':'csv'):null);});})[_0xb37f('0x2b')](function(_0x325af1){logger[_0xb37f('0x29')](util[_0xb37f('0xc')](_0xb37f('0x2c'),EXTRACTED_REPORT_ID,_0xb37f('0xe')),util['inspect'](_0x325af1,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xb37f('0x2d'));})[_0xb37f('0x2e')](function(){process[_0xb37f('0x2f')](EXIT_CODE);});}main();