ca8b53e26dd75571b3b74c023f7338d202992d41
[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 _0x34e8=['format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','Empty','length','num','push','dirname','.csv','join','mkdirSync','%s%d.%s','csv','then','%s.%s','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','util','path','lodash','to-csv','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0x34e8,0x12c));var _0x834e=function(_0x74894f,_0x591632){_0x74894f=_0x74894f-0x0;var _0x93a1f1=_0x34e8[_0x74894f];return _0x93a1f1;};'use strict';var util=require(_0x834e('0x0'));var path=require(_0x834e('0x1'));var _=require(_0x834e('0x2'));var csv=require(_0x834e('0x3'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0x834e('0x4'));var rimraf=require(_0x834e('0x5'));var db=require(_0x834e('0x6'))['db'];var dbH=require(_0x834e('0x6'))[_0x834e('0x7')];var logger=require(_0x834e('0x8'))(_0x834e('0x9'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x834e('0xa')][0x3];var PATH=process['argv'][0x4];function analyticExtractedReport(_0x3e16d2,_0x3cc2e3){var _0x3a3ef6={'status':_0x3e16d2};var _0x2e69e2={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3cc2e3){_0x3a3ef6[_0x834e('0xb')]=_0x3cc2e3;}return db[_0x834e('0xc')][_0x834e('0xd')](_0x3a3ef6,_0x2e69e2);}function main(){var _0x1af45a=0x1388;var _0x3bdda9;logger[_0x834e('0xe')](util[_0x834e('0xf')](_0x834e('0x10'),EXTRACTED_REPORT_ID,_0x834e('0x11')));return db[_0x834e('0x12')][_0x834e('0x13')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x834e('0x14'),_0x834e('0x15')]})['then'](function(_0x5e5b6d){if(_0x5e5b6d){_0x3bdda9=_0x5e5b6d;_0x1af45a=_0x3bdda9[_0x834e('0x15')]||0x1388;}})['then'](function(){return dbH[_0x834e('0x16')][_0x834e('0x17')](util[_0x834e('0xf')](_0x834e('0x18'),QUERY),{'type':dbH['sequelize'][_0x834e('0x19')][_0x834e('0x1a')]});})['then'](function(_0x316205){if(!_0x316205[0x0]['num']){return analyticExtractedReport(_0x834e('0x1b'));}var _0x36d443=[];var _0x478afe=0x0;var _0x43ac41=!![];if(_0x316205&&_0x316205[_0x834e('0x1c')]){var _0x370fb5=_0x316205[0x0]['num']%(_0x478afe+_0x1af45a);if(_0x3bdda9[_0x834e('0x14')]){for(;_0x43ac41;_0x478afe+=_0x1af45a,_0x370fb5=_0x316205[0x0][_0x834e('0x1d')]%(_0x478afe+_0x1af45a)){if(_0x370fb5==0x0||_0x370fb5==_0x316205[0x0][_0x834e('0x1d')]){_0x43ac41=![];}_0x36d443[_0x834e('0x1e')](dbH[_0x834e('0x16')][_0x834e('0x17')](util[_0x834e('0xf')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1af45a,_0x478afe),{'type':dbH[_0x834e('0x16')][_0x834e('0x19')][_0x834e('0x1a')]}));}}else{_0x36d443[_0x834e('0x1e')](dbH['sequelize'][_0x834e('0x17')](QUERY,{'type':dbH[_0x834e('0x16')]['QueryTypes'][_0x834e('0x1a')]}));}}var _0x28d687=path[_0x834e('0x1f')](PATH);var _0x5c55ca=path['basename'](PATH,_0x834e('0x20'));var _0x34563b=_0x3bdda9['split']&&_0x36d443[_0x834e('0x1c')]>0x1;var _0x1dc1e0=[];if(!fs['existsSync'](path[_0x834e('0x21')](_0x28d687,_0x5c55ca))&&_0x34563b){fs[_0x834e('0x22')](path[_0x834e('0x21')](_0x28d687,_0x5c55ca));}return BPromise['each'](_0x36d443,function(_0x24fcf7){_0x1dc1e0[_0x834e('0x1e')](_0x24fcf7);})['then'](function(){for(var _0x5bef62=0x0;_0x5bef62<_0x1dc1e0[_0x834e('0x1c')];_0x5bef62+=0x1){var _0x508a1d;var _0x2826ec=_0x1dc1e0[_0x5bef62];if(_0x34563b){_0x508a1d=path[_0x834e('0x21')](_0x28d687,_0x5c55ca,util[_0x834e('0xf')](_0x834e('0x23'),_0x5c55ca,_0x5bef62,_0x834e('0x24')));}else{_0x508a1d=path[_0x834e('0x21')](_0x28d687,util['format']('%s.%s',_0x5c55ca,'csv'));}fs['writeFileSync'](_0x508a1d,csv(_0x2826ec));}})[_0x834e('0x25')](function(){if(_0x34563b){zipdir(path[_0x834e('0x21')](_0x28d687,_0x5c55ca),{'saveTo':path[_0x834e('0x21')](_0x28d687,util['format'](_0x834e('0x26'),_0x5c55ca,_0x834e('0x27')))},function(_0x1f3671,_0x1e026a){});rimraf(path[_0x834e('0x21')](_0x28d687,_0x5c55ca),function(){});}})[_0x834e('0x25')](function(){logger[_0x834e('0xe')](util[_0x834e('0xf')](_0x834e('0x28'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0x834e('0x29'),_0x34563b?util['format'](_0x834e('0x26'),_0x5c55ca,_0x34563b?_0x834e('0x27'):_0x834e('0x24')):null);});})[_0x834e('0x2a')](function(_0x444366){logger[_0x834e('0xe')](util[_0x834e('0xf')](_0x834e('0x2b'),EXTRACTED_REPORT_ID,_0x834e('0x11')),util[_0x834e('0x2c')](_0x444366,{'showHidden':![],'depth':null}));return analyticExtractedReport('Failed');});}main();