d4d218bc274f09d204446ab3344007fbcc8c1d14
[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 _0xdace=['Empty','length','split','push','QueryTypes','dirname','basename','.csv','existsSync','join','mkdirSync','each','csv','%s.%s','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','lodash','to-csv','bluebird','rimraf','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Setting','find','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','num'];(function(_0x5d9df4,_0x248d6f){var _0x4dc587=function(_0x5e2f78){while(--_0x5e2f78){_0x5d9df4['push'](_0x5d9df4['shift']());}};_0x4dc587(++_0x248d6f);}(_0xdace,0xc5));var _0xedac=function(_0x2d9c6a,_0x59393d){_0x2d9c6a=_0x2d9c6a-0x0;var _0xf3c918=_0xdace[_0x2d9c6a];return _0xf3c918;};'use strict';var util=require(_0xedac('0x0'));var path=require('path');var _=require(_0xedac('0x1'));var csv=require(_0xedac('0x2'));var fs=require('fs');var BPromise=require(_0xedac('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0xedac('0x4'));var db=require(_0xedac('0x5'))['db'];var dbH=require(_0xedac('0x5'))[_0xedac('0x6')];var logger=require('../../config/logger')(_0xedac('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0xedac('0x8')][0x2]);var QUERY=process[_0xedac('0x8')][0x3];var PATH=process['argv'][0x4];function analyticExtractedReport(_0x4081c6,_0x21440e){var _0x162eea={'status':_0x4081c6};var _0x53fa43={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x21440e){_0x162eea[_0xedac('0x9')]=_0x21440e;}return db[_0xedac('0xa')][_0xedac('0xb')](_0x162eea,_0x53fa43);}function main(){var _0x4af030=0x1388;var _0x5e188c;logger[_0xedac('0xc')](util[_0xedac('0xd')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'CSV'));return db[_0xedac('0xe')][_0xedac('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xedac('0x10')]})['then'](function(_0x21c6ae){if(_0x21c6ae){_0x5e188c=_0x21c6ae;_0x4af030=_0x5e188c[_0xedac('0x10')]||0x1388;}})[_0xedac('0x11')](function(){return dbH[_0xedac('0x12')][_0xedac('0x13')](util[_0xedac('0xd')](_0xedac('0x14'),QUERY),{'type':dbH[_0xedac('0x12')]['QueryTypes'][_0xedac('0x15')]});})[_0xedac('0x11')](function(_0x2f0c7c){if(!_0x2f0c7c[0x0][_0xedac('0x16')]){return analyticExtractedReport(_0xedac('0x17'));}var _0x590e9b=[];var _0xed25bb=0x0;var _0x594b11=!![];if(_0x2f0c7c&&_0x2f0c7c[_0xedac('0x18')]){var _0x2eeac9=_0x2f0c7c[0x0][_0xedac('0x16')]%(_0xed25bb+_0x4af030);if(_0x5e188c[_0xedac('0x19')]){for(;_0x594b11;_0xed25bb+=_0x4af030,_0x2eeac9=_0x2f0c7c[0x0]['num']%(_0xed25bb+_0x4af030)){if(_0x2eeac9==0x0||_0x2eeac9==_0x2f0c7c[0x0]['num']){_0x594b11=![];}_0x590e9b[_0xedac('0x1a')](dbH[_0xedac('0x12')][_0xedac('0x13')](util[_0xedac('0xd')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x4af030,_0xed25bb),{'type':dbH['sequelize'][_0xedac('0x1b')][_0xedac('0x15')]}));}}else{_0x590e9b[_0xedac('0x1a')](dbH[_0xedac('0x12')][_0xedac('0x13')](QUERY,{'type':dbH[_0xedac('0x12')][_0xedac('0x1b')][_0xedac('0x15')]}));}}var _0x5353e3=path[_0xedac('0x1c')](PATH);var _0x510005=path[_0xedac('0x1d')](PATH,_0xedac('0x1e'));var _0x5111e6=_0x5e188c[_0xedac('0x19')]&&_0x590e9b[_0xedac('0x18')]>0x1;var _0x1c87bf=[];if(!fs[_0xedac('0x1f')](path[_0xedac('0x20')](_0x5353e3,_0x510005))&&_0x5111e6){fs[_0xedac('0x21')](path['join'](_0x5353e3,_0x510005));}return BPromise[_0xedac('0x22')](_0x590e9b,function(_0x87d343){_0x1c87bf[_0xedac('0x1a')](_0x87d343);})[_0xedac('0x11')](function(){for(var _0x1ff33e=0x0;_0x1ff33e<_0x1c87bf[_0xedac('0x18')];_0x1ff33e+=0x1){var _0x40ba53;var _0x26c6f7=_0x1c87bf[_0x1ff33e];if(_0x5111e6){_0x40ba53=path[_0xedac('0x20')](_0x5353e3,_0x510005,util[_0xedac('0xd')]('%s%d.%s',_0x510005,_0x1ff33e,_0xedac('0x23')));}else{_0x40ba53=path[_0xedac('0x20')](_0x5353e3,util[_0xedac('0xd')]('%s.%s',_0x510005,_0xedac('0x23')));}fs['writeFileSync'](_0x40ba53,csv(_0x26c6f7));}})['then'](function(){if(_0x5111e6){zipdir(path[_0xedac('0x20')](_0x5353e3,_0x510005),{'saveTo':path[_0xedac('0x20')](_0x5353e3,util[_0xedac('0xd')](_0xedac('0x24'),_0x510005,'zip'))},function(_0x4e25da,_0xe813e6){});rimraf(path[_0xedac('0x20')](_0x5353e3,_0x510005),function(){});}})[_0xedac('0x11')](function(){logger[_0xedac('0xc')](util[_0xedac('0xd')](_0xedac('0x25'),EXTRACTED_REPORT_ID,_0xedac('0x26')));return analyticExtractedReport('Completed',_0x5111e6?util[_0xedac('0xd')](_0xedac('0x24'),_0x510005,_0x5111e6?_0xedac('0x27'):'csv'):null);});})[_0xedac('0x28')](function(_0x1213dc){logger['info'](util[_0xedac('0xd')](_0xedac('0x29'),EXTRACTED_REPORT_ID,'CSV'),util[_0xedac('0x2a')](_0x1213dc,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xedac('0x2b'));});}main();