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 _0xcc61=['finally','exit','util','path','lodash','to-csv','bluebird','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','SELECT','num','Empty','length','isInteger','forEach','push','sequelize','query','QueryTypes','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','.csv','existsSync','join','mkdirSync','%s%d.%s','%s.%s','csv','writeFileSync','zip','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect'];(function(_0x48c2ac,_0x444cb0){var _0x2f3648=function(_0x44c071){while(--_0x44c071){_0x48c2ac['push'](_0x48c2ac['shift']());}};_0x2f3648(++_0x444cb0);}(_0xcc61,0xed));var _0x1cc6=function(_0x546b6e,_0x1bac0e){_0x546b6e=_0x546b6e-0x0;var _0x5b9214=_0xcc61[_0x546b6e];return _0x5b9214;};'use strict';var util=require(_0x1cc6('0x0'));var path=require(_0x1cc6('0x1'));var _=require(_0x1cc6('0x2'));var csv=require(_0x1cc6('0x3'));var fs=require('fs');var BPromise=require(_0x1cc6('0x4'));var zipdir=require('zip-dir');var rimraf=require('rimraf');var db=require('../../mysqldb')['db'];var dbH=require(_0x1cc6('0x5'))[_0x1cc6('0x6')];var logger=require('../../config/logger')(_0x1cc6('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x1cc6('0x8')][0x2]);var QUERY=process[_0x1cc6('0x8')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x5682b7,_0x571521){var _0x2762f0={'status':_0x5682b7};var _0x11826d={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x571521){_0x2762f0[_0x1cc6('0x9')]=_0x571521;}return db[_0x1cc6('0xa')]['update'](_0x2762f0,_0x11826d);}function main(){var _0x1b6115=0x1388;var _0x4dbbb9;logger[_0x1cc6('0xb')](util[_0x1cc6('0xc')](_0x1cc6('0xd'),EXTRACTED_REPORT_ID,_0x1cc6('0xe')));return db[_0x1cc6('0xf')][_0x1cc6('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x1cc6('0x11'),_0x1cc6('0x12')]})[_0x1cc6('0x13')](function(_0x946a4a){if(_0x946a4a){_0x4dbbb9=_0x946a4a;_0x1b6115=_0x4dbbb9[_0x1cc6('0x12')]||0x1388;}})[_0x1cc6('0x13')](function(){return dbH['sequelize']['query'](util[_0x1cc6('0xc')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize']['QueryTypes'][_0x1cc6('0x14')]});})[_0x1cc6('0x13')](function(_0x3e1ea2){if(!_0x3e1ea2[0x0][_0x1cc6('0x15')]){return analyticExtractedReport(_0x1cc6('0x16'));}var _0x19dc17=[];var _0x115f77=0x0;if(_0x4dbbb9[_0x1cc6('0x11')]){if(_0x3e1ea2&&_0x3e1ea2[_0x1cc6('0x17')]){var _0x1bee66=_['range'](_0x3e1ea2[0x0][_0x1cc6('0x15')]/_0x1b6115);var _0x3b0d93=Number[_0x1cc6('0x18')](_0x3e1ea2[0x0]['num']/_0x1b6115)?_0x3e1ea2[0x0][_0x1cc6('0x15')]%_0x1b6115:0x0;_0x1bee66[_0x1cc6('0x19')](function(_0x189023){if(_0x189023>0x0){_0x115f77+=_0x1b6115;}_0x19dc17[_0x1cc6('0x1a')](dbH[_0x1cc6('0x1b')][_0x1cc6('0x1c')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1b6115,_0x115f77),{'type':dbH[_0x1cc6('0x1b')][_0x1cc6('0x1d')][_0x1cc6('0x14')]}));});if(_0x3b0d93>0x0){_0x115f77+=_0x1b6115;_0x19dc17['push'](dbH['sequelize'][_0x1cc6('0x1c')](util['format'](_0x1cc6('0x1e'),QUERY,_0x3b0d93,_0x115f77),{'type':dbH['sequelize']['QueryTypes'][_0x1cc6('0x14')]}));}}}else{_0x19dc17[_0x1cc6('0x1a')](dbH['sequelize'][_0x1cc6('0x1c')](QUERY,{'type':dbH[_0x1cc6('0x1b')][_0x1cc6('0x1d')][_0x1cc6('0x14')]}));}var _0x12c3df=path[_0x1cc6('0x1f')](PATH);var _0x185efa=path['basename'](PATH,_0x1cc6('0x20'));var _0x51411c=_0x4dbbb9[_0x1cc6('0x11')]&&_0x19dc17[_0x1cc6('0x17')]>0x1;var _0x2cc139=[];if(!fs[_0x1cc6('0x21')](path[_0x1cc6('0x22')](_0x12c3df,_0x185efa))&&_0x51411c){fs[_0x1cc6('0x23')](path[_0x1cc6('0x22')](_0x12c3df,_0x185efa));}return BPromise['each'](_0x19dc17,function(_0x9c2cab){_0x2cc139[_0x1cc6('0x1a')](_0x9c2cab);})[_0x1cc6('0x13')](function(){for(var _0x43910a=0x0;_0x43910a<_0x2cc139[_0x1cc6('0x17')];_0x43910a+=0x1){var _0xce4440;var _0x32614c=_0x2cc139[_0x43910a];if(_0x51411c){_0xce4440=path['join'](_0x12c3df,_0x185efa,util['format'](_0x1cc6('0x24'),_0x185efa,_0x43910a,'csv'));}else{_0xce4440=path[_0x1cc6('0x22')](_0x12c3df,util[_0x1cc6('0xc')](_0x1cc6('0x25'),_0x185efa,_0x1cc6('0x26')));}fs[_0x1cc6('0x27')](_0xce4440,csv(_0x32614c));}})['then'](function(){if(_0x51411c){return new Promise(function(_0x2f46c5){zipdir(path[_0x1cc6('0x22')](_0x12c3df,_0x185efa),{'saveTo':path[_0x1cc6('0x22')](_0x12c3df,util[_0x1cc6('0xc')](_0x1cc6('0x25'),_0x185efa,_0x1cc6('0x28')))},function(_0x2807e4,_0x41ab9f){rimraf(path[_0x1cc6('0x22')](_0x12c3df,_0x185efa),function(){});_0x2f46c5('zip\x20finished');});});}})[_0x1cc6('0x13')](function(){logger[_0x1cc6('0xb')](util[_0x1cc6('0xc')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x1cc6('0xe')));return analyticExtractedReport(_0x1cc6('0x29'),_0x51411c?util[_0x1cc6('0xc')](_0x1cc6('0x25'),_0x185efa,_0x51411c?_0x1cc6('0x28'):_0x1cc6('0x26')):null);});})[_0x1cc6('0x2a')](function(_0x3e8305){logger[_0x1cc6('0xb')](util[_0x1cc6('0xc')](_0x1cc6('0x2b'),EXTRACTED_REPORT_ID,_0x1cc6('0xe')),util[_0x1cc6('0x2c')](_0x3e8305,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x1cc6('0x2d')](function(){process[_0x1cc6('0x2e')](EXIT_CODE);});}main();