Built motion from commit fe909640.|2.6.8
[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 _0xca8e=['lodash','bluebird','../../mysqldb','../../config/logger','analytics','argv','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','splitSizeCsv','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','Empty','split','length','range','num','isInteger','push','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','dirname','basename','existsSync','join','%s%d.%s','csv','%s.%s','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','util','path'];(function(_0x362081,_0x2ce8e2){var _0x12835e=function(_0x11cb0d){while(--_0x11cb0d){_0x362081['push'](_0x362081['shift']());}};_0x12835e(++_0x2ce8e2);}(_0xca8e,0x1c0));var _0xeca8=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xca8e[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xeca8('0x0'));var path=require(_0xeca8('0x1'));var _=require(_0xeca8('0x2'));var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0xeca8('0x3'));var zipdir=require('zip-dir');var rimraf=require('rimraf');var db=require(_0xeca8('0x4'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0xeca8('0x5'))(_0xeca8('0x6'));var EXTRACTED_REPORT_ID=Number(process[_0xeca8('0x7')][0x2]);var QUERY=process[_0xeca8('0x7')][0x3];var PATH=process[_0xeca8('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xf23922,_0x862377){var _0x36fd1c={'status':_0xf23922};var _0x7a1727={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x862377){_0x36fd1c['savename']=_0x862377;}return db[_0xeca8('0x8')]['update'](_0x36fd1c,_0x7a1727);}function main(){var _0x28727b=0x1388;var _0x12ec5e;logger[_0xeca8('0x9')](util[_0xeca8('0xa')](_0xeca8('0xb'),EXTRACTED_REPORT_ID,_0xeca8('0xc')));return db[_0xeca8('0xd')][_0xeca8('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xeca8('0xf')]})[_0xeca8('0x10')](function(_0xf55d81){if(_0xf55d81){_0x12ec5e=_0xf55d81;_0x28727b=_0x12ec5e['splitSizeCsv']||0x1388;}})['then'](function(){return dbH['sequelize'][_0xeca8('0x11')](util['format'](_0xeca8('0x12'),QUERY),{'type':dbH[_0xeca8('0x13')][_0xeca8('0x14')]['SELECT']});})[_0xeca8('0x10')](function(_0x3c2c5d){if(!_0x3c2c5d[0x0]['num']){return analyticExtractedReport(_0xeca8('0x15'));}var _0x2455f1=[];var _0x498e3c=0x0;if(_0x12ec5e[_0xeca8('0x16')]){if(_0x3c2c5d&&_0x3c2c5d[_0xeca8('0x17')]){var _0x4cab47=_[_0xeca8('0x18')](_0x3c2c5d[0x0][_0xeca8('0x19')]/_0x28727b);var _0x366288=Number[_0xeca8('0x1a')](_0x3c2c5d[0x0][_0xeca8('0x19')]/_0x28727b)?_0x3c2c5d[0x0]['num']%_0x28727b:0x0;_0x4cab47['forEach'](function(_0x453ec6){if(_0x453ec6>0x0){_0x498e3c+=_0x28727b;}_0x2455f1[_0xeca8('0x1b')](dbH[_0xeca8('0x13')][_0xeca8('0x11')](util[_0xeca8('0xa')](_0xeca8('0x1c'),QUERY,_0x28727b,_0x498e3c),{'type':dbH[_0xeca8('0x13')][_0xeca8('0x14')][_0xeca8('0x1d')]}));});if(_0x366288>0x0){_0x498e3c+=_0x28727b;_0x2455f1[_0xeca8('0x1b')](dbH[_0xeca8('0x13')]['query'](util[_0xeca8('0xa')](_0xeca8('0x1c'),QUERY,_0x366288,_0x498e3c),{'type':dbH['sequelize'][_0xeca8('0x14')][_0xeca8('0x1d')]}));}}}else{_0x2455f1[_0xeca8('0x1b')](dbH['sequelize'][_0xeca8('0x11')](QUERY,{'type':dbH[_0xeca8('0x13')][_0xeca8('0x14')][_0xeca8('0x1d')]}));}var _0x4192e4=path[_0xeca8('0x1e')](PATH);var _0xaeba31=path[_0xeca8('0x1f')](PATH,'.csv');var _0x4b57b6=_0x12ec5e[_0xeca8('0x16')]&&_0x2455f1[_0xeca8('0x17')]>0x1;var _0x115e2d=[];if(!fs[_0xeca8('0x20')](path['join'](_0x4192e4,_0xaeba31))&&_0x4b57b6){fs['mkdirSync'](path[_0xeca8('0x21')](_0x4192e4,_0xaeba31));}return BPromise['each'](_0x2455f1,function(_0x4b85e3){_0x115e2d['push'](_0x4b85e3);})[_0xeca8('0x10')](function(){for(var _0x5d6b60=0x0;_0x5d6b60<_0x115e2d['length'];_0x5d6b60+=0x1){var _0x5b0d6f;var _0x3f014d=_0x115e2d[_0x5d6b60];if(_0x4b57b6){_0x5b0d6f=path[_0xeca8('0x21')](_0x4192e4,_0xaeba31,util[_0xeca8('0xa')](_0xeca8('0x22'),_0xaeba31,_0x5d6b60,_0xeca8('0x23')));}else{_0x5b0d6f=path[_0xeca8('0x21')](_0x4192e4,util[_0xeca8('0xa')](_0xeca8('0x24'),_0xaeba31,_0xeca8('0x23')));}fs['writeFileSync'](_0x5b0d6f,csv(_0x3f014d));}})['then'](function(){if(_0x4b57b6){return new Promise(function(_0x1c479c){zipdir(path[_0xeca8('0x21')](_0x4192e4,_0xaeba31),{'saveTo':path[_0xeca8('0x21')](_0x4192e4,util['format']('%s.%s',_0xaeba31,'zip'))},function(_0x4e83e3,_0x48fa4a){rimraf(path[_0xeca8('0x21')](_0x4192e4,_0xaeba31),function(){});_0x1c479c(_0xeca8('0x25'));});});}})['then'](function(){logger[_0xeca8('0x9')](util['format'](_0xeca8('0x26'),EXTRACTED_REPORT_ID,_0xeca8('0xc')));return analyticExtractedReport(_0xeca8('0x27'),_0x4b57b6?util[_0xeca8('0xa')]('%s.%s',_0xaeba31,_0x4b57b6?'zip':_0xeca8('0x23')):null);});})['catch'](function(_0x4a0640){logger[_0xeca8('0x9')](util[_0xeca8('0xa')](_0xeca8('0x28'),EXTRACTED_REPORT_ID,'CSV'),util[_0xeca8('0x29')](_0x4a0640,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xeca8('0x2a'));})[_0xeca8('0x2b')](function(){process[_0xeca8('0x2c')](EXIT_CODE);});}main();