fc14d0a055596cafcfe5aaa1280198b6043f90e4
[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 _0x70e0=['savename','AnalyticExtractedReport','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','SELECT','Empty','num','push','query','%s\x20limit\x20%d\x20OFFSET\x20%d','sequelize','QueryTypes','basename','.csv','length','existsSync','mkdirSync','join','each','csv','%s.%s','writeFileSync','zip','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','util','path','lodash','zip-dir','rimraf','../../mysqldb','../../config/logger','argv'];(function(_0x4380e2,_0x4834fe){var _0x339df9=function(_0x3d3925){while(--_0x3d3925){_0x4380e2['push'](_0x4380e2['shift']());}};_0x339df9(++_0x4834fe);}(_0x70e0,0x17b));var _0x070e=function(_0x294655,_0x161262){_0x294655=_0x294655-0x0;var _0x251fa2=_0x70e0[_0x294655];return _0x251fa2;};'use strict';var util=require(_0x070e('0x0'));var path=require(_0x070e('0x1'));var _=require(_0x070e('0x2'));var csv=require('to-csv');var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0x070e('0x3'));var rimraf=require(_0x070e('0x4'));var db=require(_0x070e('0x5'))['db'];var dbH=require(_0x070e('0x5'))['dbH'];var logger=require(_0x070e('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x070e('0x7')][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];function analyticExtractedReport(_0x5032e5,_0x35ab0c){var _0x1e11f0={'status':_0x5032e5};var _0x604664={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x35ab0c){_0x1e11f0[_0x070e('0x8')]=_0x35ab0c;}return db[_0x070e('0x9')][_0x070e('0xa')](_0x1e11f0,_0x604664);}function main(){var _0x11ffa8=0x1388;var _0x4e99e6;logger['info'](util[_0x070e('0xb')](_0x070e('0xc'),EXTRACTED_REPORT_ID,_0x070e('0xd')));return db[_0x070e('0xe')][_0x070e('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x070e('0x10'),_0x070e('0x11')]})[_0x070e('0x12')](function(_0x39d2b9){if(_0x39d2b9){_0x4e99e6=_0x39d2b9;_0x11ffa8=_0x4e99e6[_0x070e('0x11')]||0x1388;}})[_0x070e('0x12')](function(){return dbH['sequelize']['query'](util[_0x070e('0xb')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize']['QueryTypes'][_0x070e('0x13')]});})[_0x070e('0x12')](function(_0x51d14d){if(!_0x51d14d[0x0]['num']){return analyticExtractedReport(_0x070e('0x14'));}var _0xeae1a5=[];var _0x180897=0x0;var _0x19d9da=!![];if(_0x51d14d&&_0x51d14d['length']){var _0x49861b=_0x51d14d[0x0][_0x070e('0x15')]%(_0x180897+_0x11ffa8);if(_0x4e99e6[_0x070e('0x10')]){for(;_0x19d9da;_0x180897+=_0x11ffa8,_0x49861b=_0x51d14d[0x0][_0x070e('0x15')]%(_0x180897+_0x11ffa8)){if(_0x49861b==0x0||_0x49861b==_0x51d14d[0x0][_0x070e('0x15')]){_0x19d9da=![];}_0xeae1a5[_0x070e('0x16')](dbH['sequelize'][_0x070e('0x17')](util[_0x070e('0xb')](_0x070e('0x18'),QUERY,_0x11ffa8,_0x180897),{'type':dbH[_0x070e('0x19')][_0x070e('0x1a')]['SELECT']}));}}else{_0xeae1a5['push'](dbH['sequelize'][_0x070e('0x17')](QUERY,{'type':dbH[_0x070e('0x19')][_0x070e('0x1a')]['SELECT']}));}}var _0x5b184=path['dirname'](PATH);var _0xf8dd5d=path[_0x070e('0x1b')](PATH,_0x070e('0x1c'));var _0x33e8c6=_0x4e99e6[_0x070e('0x10')]&&_0xeae1a5[_0x070e('0x1d')]>0x1;var _0xe405e=[];if(!fs[_0x070e('0x1e')](path['join'](_0x5b184,_0xf8dd5d))&&_0x33e8c6){fs[_0x070e('0x1f')](path[_0x070e('0x20')](_0x5b184,_0xf8dd5d));}return BPromise[_0x070e('0x21')](_0xeae1a5,function(_0x503f4d){_0xe405e[_0x070e('0x16')](_0x503f4d);})['then'](function(){for(var _0x4a2dbd=0x0;_0x4a2dbd<_0xe405e[_0x070e('0x1d')];_0x4a2dbd+=0x1){var _0x25f6e;var _0x41deb1=_0xe405e[_0x4a2dbd];if(_0x33e8c6){_0x25f6e=path[_0x070e('0x20')](_0x5b184,_0xf8dd5d,util[_0x070e('0xb')]('%s%d.%s',_0xf8dd5d,_0x4a2dbd,_0x070e('0x22')));}else{_0x25f6e=path[_0x070e('0x20')](_0x5b184,util[_0x070e('0xb')](_0x070e('0x23'),_0xf8dd5d,_0x070e('0x22')));}fs[_0x070e('0x24')](_0x25f6e,csv(_0x41deb1));}})[_0x070e('0x12')](function(){if(_0x33e8c6){zipdir(path[_0x070e('0x20')](_0x5b184,_0xf8dd5d),{'saveTo':path['join'](_0x5b184,util[_0x070e('0xb')](_0x070e('0x23'),_0xf8dd5d,_0x070e('0x25')))},function(_0x56fc12,_0x5c5f0d){});rimraf(path[_0x070e('0x20')](_0x5b184,_0xf8dd5d),function(){});}})[_0x070e('0x12')](function(){logger[_0x070e('0x26')](util['format'](_0x070e('0x27'),EXTRACTED_REPORT_ID,_0x070e('0xd')));return analyticExtractedReport(_0x070e('0x28'),_0x33e8c6?util[_0x070e('0xb')]('%s.%s',_0xf8dd5d,_0x33e8c6?'zip':'csv'):null);});})['catch'](function(_0xdf8945){logger['info'](util[_0x070e('0xb')](_0x070e('0x29'),EXTRACTED_REPORT_ID,'CSV'),util['inspect'](_0xdf8945,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x070e('0x2a'));});}main();