42edd1c4909def1bcbfa8e2ac8b3e05863e34002
[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 _0x9c44=['num','split','push','%s\x20limit\x20%d\x20OFFSET\x20%d','.csv','existsSync','join','each','csv','%s.%s','writeFileSync','zip','Completed','catch','inspect','Failed','lodash','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','argv','savename','AnalyticExtractedReport','update','info','format','CSV','Setting','splitSizeCsv','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','SELECT','Empty','length'];(function(_0x2f55cd,_0x5604c3){var _0x3e56e4=function(_0x50d640){while(--_0x50d640){_0x2f55cd['push'](_0x2f55cd['shift']());}};_0x3e56e4(++_0x5604c3);}(_0x9c44,0x178));var _0x49c4=function(_0x3511d3,_0x4107ae){_0x3511d3=_0x3511d3-0x0;var _0x5d6321=_0x9c44[_0x3511d3];return _0x5d6321;};'use strict';var util=require('util');var path=require('path');var _=require(_0x49c4('0x0'));var csv=require(_0x49c4('0x1'));var fs=require('fs');var BPromise=require(_0x49c4('0x2'));var zipdir=require(_0x49c4('0x3'));var rimraf=require(_0x49c4('0x4'));var db=require(_0x49c4('0x5'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0x49c4('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x49c4('0x7')][0x2]);var QUERY=process[_0x49c4('0x7')][0x3];var PATH=process[_0x49c4('0x7')][0x4];function analyticExtractedReport(_0x2c4e2e,_0x436234){var _0x511d53={'status':_0x2c4e2e};var _0x11c586={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x436234){_0x511d53[_0x49c4('0x8')]=_0x436234;}return db[_0x49c4('0x9')][_0x49c4('0xa')](_0x511d53,_0x11c586);}function main(){var _0x4c7d3a=0x1388;var _0x5ab4a3;logger[_0x49c4('0xb')](util[_0x49c4('0xc')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x49c4('0xd')));return db[_0x49c4('0xe')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x49c4('0xf')]})[_0x49c4('0x10')](function(_0x5487cd){if(_0x5487cd){_0x5ab4a3=_0x5487cd;_0x4c7d3a=_0x5ab4a3[_0x49c4('0xf')]||0x1388;}})[_0x49c4('0x10')](function(){return dbH['sequelize'][_0x49c4('0x11')](util[_0x49c4('0xc')](_0x49c4('0x12'),QUERY),{'type':dbH[_0x49c4('0x13')][_0x49c4('0x14')][_0x49c4('0x15')]});})[_0x49c4('0x10')](function(_0x3de397){if(!_0x3de397[0x0]['num']){return analyticExtractedReport(_0x49c4('0x16'));}var _0x141003=[];var _0x13a2db=0x0;var _0x81e831=!![];if(_0x3de397&&_0x3de397[_0x49c4('0x17')]){var _0x53e3a2=_0x3de397[0x0][_0x49c4('0x18')]%(_0x13a2db+_0x4c7d3a);if(_0x5ab4a3[_0x49c4('0x19')]){for(;_0x81e831;_0x13a2db+=_0x4c7d3a,_0x53e3a2=_0x3de397[0x0]['num']%(_0x13a2db+_0x4c7d3a)){if(_0x53e3a2==0x0||_0x53e3a2==_0x3de397[0x0]['num']){_0x81e831=![];}_0x141003[_0x49c4('0x1a')](dbH[_0x49c4('0x13')][_0x49c4('0x11')](util['format'](_0x49c4('0x1b'),QUERY,_0x4c7d3a,_0x13a2db),{'type':dbH['sequelize'][_0x49c4('0x14')][_0x49c4('0x15')]}));}}else{_0x141003[_0x49c4('0x1a')](dbH[_0x49c4('0x13')][_0x49c4('0x11')](QUERY,{'type':dbH[_0x49c4('0x13')][_0x49c4('0x14')][_0x49c4('0x15')]}));}}var _0x2197d2=path['dirname'](PATH);var _0x527126=path['basename'](PATH,_0x49c4('0x1c'));var _0x4f0b62=_0x5ab4a3['split']&&_0x141003[_0x49c4('0x17')]>0x1;var _0x15581b=[];if(!fs[_0x49c4('0x1d')](path[_0x49c4('0x1e')](_0x2197d2,_0x527126))&&_0x4f0b62){fs['mkdirSync'](path['join'](_0x2197d2,_0x527126));}return BPromise[_0x49c4('0x1f')](_0x141003,function(_0x9cb797){_0x15581b['push'](_0x9cb797);})[_0x49c4('0x10')](function(){for(var _0x43e014=0x0;_0x43e014<_0x15581b[_0x49c4('0x17')];_0x43e014+=0x1){var _0xa7a826;var _0x531d92=_0x15581b[_0x43e014];if(_0x4f0b62){_0xa7a826=path['join'](_0x2197d2,_0x527126,util[_0x49c4('0xc')]('%s%d.%s',_0x527126,_0x43e014,_0x49c4('0x20')));}else{_0xa7a826=path[_0x49c4('0x1e')](_0x2197d2,util[_0x49c4('0xc')](_0x49c4('0x21'),_0x527126,'csv'));}fs[_0x49c4('0x22')](_0xa7a826,csv(_0x531d92));}})[_0x49c4('0x10')](function(){if(_0x4f0b62){zipdir(path[_0x49c4('0x1e')](_0x2197d2,_0x527126),{'saveTo':path[_0x49c4('0x1e')](_0x2197d2,util[_0x49c4('0xc')](_0x49c4('0x21'),_0x527126,_0x49c4('0x23')))},function(_0x427b26,_0x17b50f){});rimraf(path[_0x49c4('0x1e')](_0x2197d2,_0x527126),function(){});}})[_0x49c4('0x10')](function(){logger['info'](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x49c4('0xd')));return analyticExtractedReport(_0x49c4('0x24'),_0x4f0b62?util[_0x49c4('0xc')](_0x49c4('0x21'),_0x527126,_0x4f0b62?_0x49c4('0x23'):'csv'):null);});})[_0x49c4('0x25')](function(_0x116eb4){logger[_0x49c4('0xb')](util[_0x49c4('0xc')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'CSV'),util[_0x49c4('0x26')](_0x116eb4,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x49c4('0x27'));});}main();