Built motion from commit (unavailable).|2.5.6
[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 _0x9a19=['util','path','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','length','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','join','mkdirSync','each','%s%d.%s','csv','%s.%s','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed'];(function(_0x99682f,_0x471920){var _0x58bebd=function(_0x4bb66f){while(--_0x4bb66f){_0x99682f['push'](_0x99682f['shift']());}};_0x58bebd(++_0x471920);}(_0x9a19,0x114));var _0x99a1=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0x9a19[_0x3ab51d];return _0x29a04e;};'use strict';var util=require(_0x99a1('0x0'));var path=require(_0x99a1('0x1'));var _=require(_0x99a1('0x2'));var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0x99a1('0x3'));var zipdir=require(_0x99a1('0x4'));var rimraf=require(_0x99a1('0x5'));var db=require(_0x99a1('0x6'))['db'];var dbH=require(_0x99a1('0x6'))[_0x99a1('0x7')];var logger=require(_0x99a1('0x8'))(_0x99a1('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x99a1('0xa')][0x2]);var QUERY=process[_0x99a1('0xa')][0x3];var PATH=process[_0x99a1('0xa')][0x4];function analyticExtractedReport(_0x523b9e,_0x4d2a5c){var _0x5aa6c2={'status':_0x523b9e};var _0x56f50={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x4d2a5c){_0x5aa6c2[_0x99a1('0xb')]=_0x4d2a5c;}return db['AnalyticExtractedReport']['update'](_0x5aa6c2,_0x56f50);}function main(){var _0x4696f6=0x1388;var _0xd7b568;logger[_0x99a1('0xc')](util[_0x99a1('0xd')](_0x99a1('0xe'),EXTRACTED_REPORT_ID,'CSV'));return db[_0x99a1('0xf')][_0x99a1('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x99a1('0x11'),_0x99a1('0x12')]})[_0x99a1('0x13')](function(_0x1bc7aa){if(_0x1bc7aa){_0xd7b568=_0x1bc7aa;_0x4696f6=_0xd7b568[_0x99a1('0x12')]||0x1388;}})[_0x99a1('0x13')](function(){return dbH[_0x99a1('0x14')][_0x99a1('0x15')](util[_0x99a1('0xd')](_0x99a1('0x16'),QUERY),{'type':dbH[_0x99a1('0x14')][_0x99a1('0x17')][_0x99a1('0x18')]});})['then'](function(_0x2d81ed){if(!_0x2d81ed[0x0][_0x99a1('0x19')]){return analyticExtractedReport(_0x99a1('0x1a'));}var _0x3d40cc=[];var _0x384f05=0x0;var _0x33e2c1=!![];if(_0x2d81ed&&_0x2d81ed[_0x99a1('0x1b')]){var _0x4e645b=_0x2d81ed[0x0]['num']%(_0x384f05+_0x4696f6);if(_0xd7b568[_0x99a1('0x11')]){for(;_0x33e2c1;_0x384f05+=_0x4696f6,_0x4e645b=_0x2d81ed[0x0][_0x99a1('0x19')]%(_0x384f05+_0x4696f6)){if(_0x4e645b==0x0||_0x4e645b==_0x2d81ed[0x0][_0x99a1('0x19')]){_0x33e2c1=![];}_0x3d40cc[_0x99a1('0x1c')](dbH[_0x99a1('0x14')][_0x99a1('0x15')](util[_0x99a1('0xd')](_0x99a1('0x1d'),QUERY,_0x4696f6,_0x384f05),{'type':dbH[_0x99a1('0x14')][_0x99a1('0x17')][_0x99a1('0x18')]}));}}else{_0x3d40cc['push'](dbH[_0x99a1('0x14')][_0x99a1('0x15')](QUERY,{'type':dbH['sequelize'][_0x99a1('0x17')]['SELECT']}));}}var _0x458ed3=path[_0x99a1('0x1e')](PATH);var _0x2d6f20=path[_0x99a1('0x1f')](PATH,'.csv');var _0x3eab51=_0xd7b568[_0x99a1('0x11')]&&_0x3d40cc['length']>0x1;var _0x44df2d=[];if(!fs['existsSync'](path[_0x99a1('0x20')](_0x458ed3,_0x2d6f20))&&_0x3eab51){fs[_0x99a1('0x21')](path[_0x99a1('0x20')](_0x458ed3,_0x2d6f20));}return BPromise[_0x99a1('0x22')](_0x3d40cc,function(_0x3c813){_0x44df2d[_0x99a1('0x1c')](_0x3c813);})['then'](function(){for(var _0x114b38=0x0;_0x114b38<_0x44df2d['length'];_0x114b38+=0x1){var _0x5dc733;var _0xafea84=_0x44df2d[_0x114b38];if(_0x3eab51){_0x5dc733=path[_0x99a1('0x20')](_0x458ed3,_0x2d6f20,util[_0x99a1('0xd')](_0x99a1('0x23'),_0x2d6f20,_0x114b38,_0x99a1('0x24')));}else{_0x5dc733=path[_0x99a1('0x20')](_0x458ed3,util[_0x99a1('0xd')]('%s.%s',_0x2d6f20,_0x99a1('0x24')));}fs['writeFileSync'](_0x5dc733,csv(_0xafea84));}})[_0x99a1('0x13')](function(){if(_0x3eab51){zipdir(path[_0x99a1('0x20')](_0x458ed3,_0x2d6f20),{'saveTo':path[_0x99a1('0x20')](_0x458ed3,util['format'](_0x99a1('0x25'),_0x2d6f20,_0x99a1('0x26')))},function(_0x5718b9,_0x37514e){});rimraf(path[_0x99a1('0x20')](_0x458ed3,_0x2d6f20),function(){});}})[_0x99a1('0x13')](function(){logger[_0x99a1('0xc')](util[_0x99a1('0xd')](_0x99a1('0x27'),EXTRACTED_REPORT_ID,_0x99a1('0x28')));return analyticExtractedReport(_0x99a1('0x29'),_0x3eab51?util['format']('%s.%s',_0x2d6f20,_0x3eab51?_0x99a1('0x26'):'csv'):null);});})[_0x99a1('0x2a')](function(_0x400581){logger['info'](util[_0x99a1('0xd')](_0x99a1('0x2b'),EXTRACTED_REPORT_ID,_0x99a1('0x28')),util[_0x99a1('0x2c')](_0x400581,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x99a1('0x2d'));});}main();