3a38fd09b2255a3dca2b8d11978f2f091a2206b0
[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 _0xf04a=['range','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','push','basename','.csv','existsSync','join','each','%s%d.%s','csv','writeFileSync','zip','zip\x20finished','info','CSV','Completed','%s.%s','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','exit','util','path','bluebird','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','split','length'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf04a,0x1bd));var _0xaf04=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xf04a[_0x122ef9];return _0x42fba0;};'use strict';var util=require(_0xaf04('0x0'));var path=require(_0xaf04('0x1'));var _=require('lodash');var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0xaf04('0x2'));var zipdir=require('zip-dir');var rimraf=require(_0xaf04('0x3'));var db=require(_0xaf04('0x4'))['db'];var dbH=require('../../mysqldb')[_0xaf04('0x5')];var logger=require(_0xaf04('0x6'))(_0xaf04('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0xaf04('0x8')][0x2]);var QUERY=process[_0xaf04('0x8')][0x3];var PATH=process[_0xaf04('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x21ad90,_0x4ff078){var _0x987035={'status':_0x21ad90};var _0x2f1722={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x4ff078){_0x987035[_0xaf04('0x9')]=_0x4ff078;}return db[_0xaf04('0xa')]['update'](_0x987035,_0x2f1722);}function main(){var _0x2258a7=0x1388;var _0x466e13;logger['info'](util[_0xaf04('0xb')](_0xaf04('0xc'),EXTRACTED_REPORT_ID,'CSV'));return db[_0xaf04('0xd')][_0xaf04('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xaf04('0xf')]})['then'](function(_0x4ccc92){if(_0x4ccc92){_0x466e13=_0x4ccc92;_0x2258a7=_0x466e13['splitSizeCsv']||0x1388;}})[_0xaf04('0x10')](function(){return dbH[_0xaf04('0x11')][_0xaf04('0x12')](util['format'](_0xaf04('0x13'),QUERY),{'type':dbH[_0xaf04('0x11')][_0xaf04('0x14')][_0xaf04('0x15')]});})[_0xaf04('0x10')](function(_0x47bdc9){if(!_0x47bdc9[0x0][_0xaf04('0x16')]){return analyticExtractedReport('Empty');}var _0x1a9008=[];var _0x4c9fc8=0x0;if(_0x466e13[_0xaf04('0x17')]){if(_0x47bdc9&&_0x47bdc9[_0xaf04('0x18')]){var _0x494372=_[_0xaf04('0x19')](_0x47bdc9[0x0]['num']/_0x2258a7);var _0x365fe2=Number['isInteger'](_0x47bdc9[0x0][_0xaf04('0x16')]/_0x2258a7)?_0x47bdc9[0x0]['num']%_0x2258a7:0x0;_0x494372[_0xaf04('0x1a')](function(_0x14b863){if(_0x14b863>0x0){_0x4c9fc8+=_0x2258a7;}_0x1a9008['push'](dbH[_0xaf04('0x11')][_0xaf04('0x12')](util[_0xaf04('0xb')](_0xaf04('0x1b'),QUERY,_0x2258a7,_0x4c9fc8),{'type':dbH[_0xaf04('0x11')][_0xaf04('0x14')][_0xaf04('0x15')]}));});if(_0x365fe2>0x0){_0x4c9fc8+=_0x2258a7;_0x1a9008[_0xaf04('0x1c')](dbH[_0xaf04('0x11')][_0xaf04('0x12')](util[_0xaf04('0xb')](_0xaf04('0x1b'),QUERY,_0x365fe2,_0x4c9fc8),{'type':dbH['sequelize'][_0xaf04('0x14')]['SELECT']}));}}}else{_0x1a9008[_0xaf04('0x1c')](dbH[_0xaf04('0x11')][_0xaf04('0x12')](QUERY,{'type':dbH[_0xaf04('0x11')][_0xaf04('0x14')]['SELECT']}));}var _0x2dbc1d=path['dirname'](PATH);var _0x388570=path[_0xaf04('0x1d')](PATH,_0xaf04('0x1e'));var _0x3d9a6f=_0x466e13[_0xaf04('0x17')]&&_0x1a9008['length']>0x1;var _0x17f15d=[];if(!fs[_0xaf04('0x1f')](path[_0xaf04('0x20')](_0x2dbc1d,_0x388570))&&_0x3d9a6f){fs['mkdirSync'](path[_0xaf04('0x20')](_0x2dbc1d,_0x388570));}return BPromise[_0xaf04('0x21')](_0x1a9008,function(_0x2abdbd){_0x17f15d['push'](_0x2abdbd);})[_0xaf04('0x10')](function(){for(var _0x57a352=0x0;_0x57a352<_0x17f15d[_0xaf04('0x18')];_0x57a352+=0x1){var _0x1c7d66;var _0x2c67d1=_0x17f15d[_0x57a352];if(_0x3d9a6f){_0x1c7d66=path[_0xaf04('0x20')](_0x2dbc1d,_0x388570,util[_0xaf04('0xb')](_0xaf04('0x22'),_0x388570,_0x57a352,_0xaf04('0x23')));}else{_0x1c7d66=path[_0xaf04('0x20')](_0x2dbc1d,util[_0xaf04('0xb')]('%s.%s',_0x388570,'csv'));}fs[_0xaf04('0x24')](_0x1c7d66,csv(_0x2c67d1));}})['then'](function(){if(_0x3d9a6f){return new Promise(function(_0x154206){zipdir(path[_0xaf04('0x20')](_0x2dbc1d,_0x388570),{'saveTo':path[_0xaf04('0x20')](_0x2dbc1d,util['format']('%s.%s',_0x388570,_0xaf04('0x25')))},function(_0x4e7069,_0x5e622b){rimraf(path['join'](_0x2dbc1d,_0x388570),function(){});_0x154206(_0xaf04('0x26'));});});}})['then'](function(){logger[_0xaf04('0x27')](util[_0xaf04('0xb')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xaf04('0x28')));return analyticExtractedReport(_0xaf04('0x29'),_0x3d9a6f?util['format'](_0xaf04('0x2a'),_0x388570,_0x3d9a6f?_0xaf04('0x25'):_0xaf04('0x23')):null);});})[_0xaf04('0x2b')](function(_0x1d8b31){logger['info'](util['format'](_0xaf04('0x2c'),EXTRACTED_REPORT_ID,_0xaf04('0x28')),util[_0xaf04('0x2d')](_0x1d8b31,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})['finally'](function(){process[_0xaf04('0x2e')](EXIT_CODE);});}main();