Built motion from commit 753c950e.|2.5.42
[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 _0x7924=['SELECT','push','dirname','basename','.csv','existsSync','join','each','csv','%s.%s','zip\x20finished','Completed','zip','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','util','path','lodash','to-csv','bluebird','zip-dir','rimraf','dbH','../../config/logger','analytics','argv','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','sequelize','QueryTypes','num','Empty','length','forEach','query','%s\x20limit\x20%d\x20OFFSET\x20%d'];(function(_0x143c39,_0x332547){var _0x23cca6=function(_0x119ac8){while(--_0x119ac8){_0x143c39['push'](_0x143c39['shift']());}};_0x23cca6(++_0x332547);}(_0x7924,0x1b9));var _0x4792=function(_0x1249f4,_0x27226c){_0x1249f4=_0x1249f4-0x0;var _0x47c8a9=_0x7924[_0x1249f4];return _0x47c8a9;};'use strict';var util=require(_0x4792('0x0'));var path=require(_0x4792('0x1'));var _=require(_0x4792('0x2'));var csv=require(_0x4792('0x3'));var fs=require('fs');var BPromise=require(_0x4792('0x4'));var zipdir=require(_0x4792('0x5'));var rimraf=require(_0x4792('0x6'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0x4792('0x7')];var logger=require(_0x4792('0x8'))(_0x4792('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x4792('0xa')][0x2]);var QUERY=process[_0x4792('0xa')][0x3];var PATH=process[_0x4792('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2753b1,_0x53c63f){var _0x156f9c={'status':_0x2753b1};var _0x30adb7={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x53c63f){_0x156f9c['savename']=_0x53c63f;}return db[_0x4792('0xb')]['update'](_0x156f9c,_0x30adb7);}function main(){var _0x1e12e0=0x1388;var _0x46680b;logger[_0x4792('0xc')](util[_0x4792('0xd')](_0x4792('0xe'),EXTRACTED_REPORT_ID,_0x4792('0xf')));return db[_0x4792('0x10')][_0x4792('0x11')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4792('0x12'),_0x4792('0x13')]})[_0x4792('0x14')](function(_0x3eaf44){if(_0x3eaf44){_0x46680b=_0x3eaf44;_0x1e12e0=_0x46680b['splitSizeCsv']||0x1388;}})[_0x4792('0x14')](function(){return dbH['sequelize']['query'](util[_0x4792('0xd')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x4792('0x15')][_0x4792('0x16')]['SELECT']});})[_0x4792('0x14')](function(_0x1f8391){if(!_0x1f8391[0x0][_0x4792('0x17')]){return analyticExtractedReport(_0x4792('0x18'));}var _0x7ceda0=[];var _0x46dfc3=0x0;if(_0x46680b[_0x4792('0x12')]){if(_0x1f8391&&_0x1f8391[_0x4792('0x19')]){var _0x2260e8=_['range'](_0x1f8391[0x0][_0x4792('0x17')]/_0x1e12e0);var _0x29e555=Number['isInteger'](_0x1f8391[0x0][_0x4792('0x17')]/_0x1e12e0)?_0x1f8391[0x0][_0x4792('0x17')]%_0x1e12e0:0x0;_0x2260e8[_0x4792('0x1a')](function(_0x1dc4c2){if(_0x1dc4c2>0x0){_0x46dfc3+=_0x1e12e0;}_0x7ceda0['push'](dbH[_0x4792('0x15')][_0x4792('0x1b')](util[_0x4792('0xd')](_0x4792('0x1c'),QUERY,_0x1e12e0,_0x46dfc3),{'type':dbH[_0x4792('0x15')][_0x4792('0x16')][_0x4792('0x1d')]}));});if(_0x29e555>0x0){_0x46dfc3+=_0x1e12e0;_0x7ceda0[_0x4792('0x1e')](dbH[_0x4792('0x15')]['query'](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x29e555,_0x46dfc3),{'type':dbH[_0x4792('0x15')][_0x4792('0x16')][_0x4792('0x1d')]}));}}}else{_0x7ceda0[_0x4792('0x1e')](dbH[_0x4792('0x15')][_0x4792('0x1b')](QUERY,{'type':dbH['sequelize'][_0x4792('0x16')][_0x4792('0x1d')]}));}var _0x46302f=path[_0x4792('0x1f')](PATH);var _0x32b611=path[_0x4792('0x20')](PATH,_0x4792('0x21'));var _0x4093eb=_0x46680b['split']&&_0x7ceda0[_0x4792('0x19')]>0x1;var _0x270dd5=[];if(!fs[_0x4792('0x22')](path[_0x4792('0x23')](_0x46302f,_0x32b611))&&_0x4093eb){fs['mkdirSync'](path['join'](_0x46302f,_0x32b611));}return BPromise[_0x4792('0x24')](_0x7ceda0,function(_0x50c6e8){_0x270dd5['push'](_0x50c6e8);})[_0x4792('0x14')](function(){for(var _0x44c7cb=0x0;_0x44c7cb<_0x270dd5[_0x4792('0x19')];_0x44c7cb+=0x1){var _0xd8ebed;var _0x280e67=_0x270dd5[_0x44c7cb];if(_0x4093eb){_0xd8ebed=path[_0x4792('0x23')](_0x46302f,_0x32b611,util[_0x4792('0xd')]('%s%d.%s',_0x32b611,_0x44c7cb,_0x4792('0x25')));}else{_0xd8ebed=path[_0x4792('0x23')](_0x46302f,util['format']('%s.%s',_0x32b611,_0x4792('0x25')));}fs['writeFileSync'](_0xd8ebed,csv(_0x280e67));}})[_0x4792('0x14')](function(){if(_0x4093eb){return new Promise(function(_0x2ee5ed){zipdir(path[_0x4792('0x23')](_0x46302f,_0x32b611),{'saveTo':path[_0x4792('0x23')](_0x46302f,util[_0x4792('0xd')](_0x4792('0x26'),_0x32b611,'zip'))},function(_0x3dd6e8,_0x369d2e){rimraf(path['join'](_0x46302f,_0x32b611),function(){});_0x2ee5ed(_0x4792('0x27'));});});}})[_0x4792('0x14')](function(){logger[_0x4792('0xc')](util[_0x4792('0xd')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x4792('0xf')));return analyticExtractedReport(_0x4792('0x28'),_0x4093eb?util[_0x4792('0xd')](_0x4792('0x26'),_0x32b611,_0x4093eb?_0x4792('0x29'):'csv'):null);});})['catch'](function(_0x3386e2){logger['info'](util[_0x4792('0xd')](_0x4792('0x2a'),EXTRACTED_REPORT_ID,_0x4792('0xf')),util[_0x4792('0x2b')](_0x3386e2,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x4792('0x2c'));})[_0x4792('0x2d')](function(){process[_0x4792('0x2e')](EXIT_CODE);});}main();