Built motion from commit 4e7c323b.|2.5.34
[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 _0xee4f=['existsSync','join','mkdirSync','%s%d.%s','csv','writeFileSync','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','%s.%s','zip','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','exit','util','to-csv','bluebird','zip-dir','../../mysqldb','dbH','argv','AnalyticExtractedReport','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','find','split','splitSizeCsv','then','query','sequelize','QueryTypes','SELECT','num','Empty','length','push','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','.csv'];(function(_0xa4296a,_0x256f2e){var _0x16f54b=function(_0x173df8){while(--_0x173df8){_0xa4296a['push'](_0xa4296a['shift']());}};_0x16f54b(++_0x256f2e);}(_0xee4f,0xad));var _0xfee4=function(_0xcc4915,_0x3e174d){_0xcc4915=_0xcc4915-0x0;var _0x4bea88=_0xee4f[_0xcc4915];return _0x4bea88;};'use strict';var util=require(_0xfee4('0x0'));var path=require('path');var _=require('lodash');var csv=require(_0xfee4('0x1'));var fs=require('fs');var BPromise=require(_0xfee4('0x2'));var zipdir=require(_0xfee4('0x3'));var rimraf=require('rimraf');var db=require(_0xfee4('0x4'))['db'];var dbH=require('../../mysqldb')[_0xfee4('0x5')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xfee4('0x6')][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2fb1b3,_0x16cc9a){var _0x34908a={'status':_0x2fb1b3};var _0x4d3c71={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x16cc9a){_0x34908a['savename']=_0x16cc9a;}return db[_0xfee4('0x7')][_0xfee4('0x8')](_0x34908a,_0x4d3c71);}function main(){var _0xa77876=0x1388;var _0x4dc812;logger['info'](util[_0xfee4('0x9')](_0xfee4('0xa'),EXTRACTED_REPORT_ID,_0xfee4('0xb')));return db['Setting'][_0xfee4('0xc')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xfee4('0xd'),_0xfee4('0xe')]})[_0xfee4('0xf')](function(_0x95be61){if(_0x95be61){_0x4dc812=_0x95be61;_0xa77876=_0x4dc812[_0xfee4('0xe')]||0x1388;}})[_0xfee4('0xf')](function(){return dbH['sequelize'][_0xfee4('0x10')](util[_0xfee4('0x9')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xfee4('0x11')][_0xfee4('0x12')][_0xfee4('0x13')]});})[_0xfee4('0xf')](function(_0x38749e){if(!_0x38749e[0x0][_0xfee4('0x14')]){return analyticExtractedReport(_0xfee4('0x15'));}var _0x55440a=[];var _0x193535=0x0;var _0x251403=!![];if(_0x38749e&&_0x38749e[_0xfee4('0x16')]){var _0x54f5a0=_0x38749e[0x0][_0xfee4('0x14')]%(_0x193535+_0xa77876);if(_0x4dc812['split']){for(;_0x251403;_0x193535+=_0xa77876,_0x54f5a0=_0x38749e[0x0]['num']%(_0x193535+_0xa77876)){if(_0x54f5a0==0x0||_0x54f5a0==_0x38749e[0x0][_0xfee4('0x14')]){_0x251403=![];}_0x55440a[_0xfee4('0x17')](dbH[_0xfee4('0x11')][_0xfee4('0x10')](util[_0xfee4('0x9')](_0xfee4('0x18'),QUERY,_0xa77876,_0x193535),{'type':dbH[_0xfee4('0x11')][_0xfee4('0x12')][_0xfee4('0x13')]}));}}else{_0x55440a['push'](dbH[_0xfee4('0x11')][_0xfee4('0x10')](QUERY,{'type':dbH[_0xfee4('0x11')][_0xfee4('0x12')][_0xfee4('0x13')]}));}}var _0x244205=path['dirname'](PATH);var _0x33154b=path[_0xfee4('0x19')](PATH,_0xfee4('0x1a'));var _0x1a2761=_0x4dc812[_0xfee4('0xd')]&&_0x55440a[_0xfee4('0x16')]>0x1;var _0x2ff87d=[];if(!fs[_0xfee4('0x1b')](path[_0xfee4('0x1c')](_0x244205,_0x33154b))&&_0x1a2761){fs[_0xfee4('0x1d')](path['join'](_0x244205,_0x33154b));}return BPromise['each'](_0x55440a,function(_0x4b6772){_0x2ff87d['push'](_0x4b6772);})['then'](function(){for(var _0xf2651f=0x0;_0xf2651f<_0x2ff87d[_0xfee4('0x16')];_0xf2651f+=0x1){var _0x2d33c3;var _0x256cff=_0x2ff87d[_0xf2651f];if(_0x1a2761){_0x2d33c3=path[_0xfee4('0x1c')](_0x244205,_0x33154b,util[_0xfee4('0x9')](_0xfee4('0x1e'),_0x33154b,_0xf2651f,_0xfee4('0x1f')));}else{_0x2d33c3=path['join'](_0x244205,util[_0xfee4('0x9')]('%s.%s',_0x33154b,'csv'));}fs[_0xfee4('0x20')](_0x2d33c3,csv(_0x256cff));}})[_0xfee4('0xf')](function(){if(_0x1a2761){zipdir(path['join'](_0x244205,_0x33154b),{'saveTo':path['join'](_0x244205,util[_0xfee4('0x9')]('%s.%s',_0x33154b,'zip'))},function(_0x99a519,_0x14d16b){});rimraf(path['join'](_0x244205,_0x33154b),function(){});}})[_0xfee4('0xf')](function(){logger['info'](util[_0xfee4('0x9')](_0xfee4('0x21'),EXTRACTED_REPORT_ID,_0xfee4('0xb')));return analyticExtractedReport('Completed',_0x1a2761?util[_0xfee4('0x9')](_0xfee4('0x22'),_0x33154b,_0x1a2761?_0xfee4('0x23'):_0xfee4('0x1f')):null);});})['catch'](function(_0x231cb7){logger['info'](util[_0xfee4('0x9')](_0xfee4('0x24'),EXTRACTED_REPORT_ID,'CSV'),util[_0xfee4('0x25')](_0x231cb7,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xfee4('0x26'));})['finally'](function(){process[_0xfee4('0x27')](EXIT_CODE);});}main();