Built motion from commit 52c8a02d.|2.6.29
[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 _0x3e1d=['dirname','.csv','length','existsSync','mkdirSync','join','each','csv','%s.%s','zip','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','finally','exit','util','path','lodash','to-csv','zip-dir','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','sequelize','query','QueryTypes','SELECT','Empty','range','num','isInteger','push','%s\x20limit\x20%d\x20OFFSET\x20%d'];(function(_0x5cc51f,_0x22c480){var _0x315a2f=function(_0x4f93bd){while(--_0x4f93bd){_0x5cc51f['push'](_0x5cc51f['shift']());}};_0x315a2f(++_0x22c480);}(_0x3e1d,0x6e));var _0xd3e1=function(_0xbbcb36,_0x586383){_0xbbcb36=_0xbbcb36-0x0;var _0x4278ff=_0x3e1d[_0xbbcb36];return _0x4278ff;};'use strict';var util=require(_0xd3e1('0x0'));var path=require(_0xd3e1('0x1'));var _=require(_0xd3e1('0x2'));var csv=require(_0xd3e1('0x3'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0xd3e1('0x4'));var rimraf=require('rimraf');var db=require(_0xd3e1('0x5'))['db'];var dbH=require(_0xd3e1('0x5'))[_0xd3e1('0x6')];var logger=require(_0xd3e1('0x7'))(_0xd3e1('0x8'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xd3e1('0x9')][0x3];var PATH=process[_0xd3e1('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x3c1fea,_0x266716){var _0x7986c4={'status':_0x3c1fea};var _0x32d1d6={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x266716){_0x7986c4[_0xd3e1('0xa')]=_0x266716;}return db[_0xd3e1('0xb')]['update'](_0x7986c4,_0x32d1d6);}function main(){var _0x2d0a13=0x1388;var _0xbd1015;logger[_0xd3e1('0xc')](util[_0xd3e1('0xd')](_0xd3e1('0xe'),EXTRACTED_REPORT_ID,_0xd3e1('0xf')));return db[_0xd3e1('0x10')][_0xd3e1('0x11')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xd3e1('0x12'),_0xd3e1('0x13')]})[_0xd3e1('0x14')](function(_0xec9032){if(_0xec9032){_0xbd1015=_0xec9032;_0x2d0a13=_0xbd1015[_0xd3e1('0x13')]||0x1388;}})['then'](function(){return dbH[_0xd3e1('0x15')][_0xd3e1('0x16')](util[_0xd3e1('0xd')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0xd3e1('0x17')][_0xd3e1('0x18')]});})[_0xd3e1('0x14')](function(_0x2e2da6){if(!_0x2e2da6[0x0]['num']){return analyticExtractedReport(_0xd3e1('0x19'));}var _0x1ce5d6=[];var _0x1d1bcd=0x0;if(_0xbd1015['split']){if(_0x2e2da6&&_0x2e2da6['length']){var _0x3df1a3=_[_0xd3e1('0x1a')](_0x2e2da6[0x0][_0xd3e1('0x1b')]/_0x2d0a13);var _0x500455=Number[_0xd3e1('0x1c')](_0x2e2da6[0x0]['num']/_0x2d0a13)?_0x2e2da6[0x0][_0xd3e1('0x1b')]%_0x2d0a13:0x0;_0x3df1a3['forEach'](function(_0x2c6b46){if(_0x2c6b46>0x0){_0x1d1bcd+=_0x2d0a13;}_0x1ce5d6[_0xd3e1('0x1d')](dbH['sequelize'][_0xd3e1('0x16')](util[_0xd3e1('0xd')](_0xd3e1('0x1e'),QUERY,_0x2d0a13,_0x1d1bcd),{'type':dbH[_0xd3e1('0x15')]['QueryTypes'][_0xd3e1('0x18')]}));});if(_0x500455>0x0){_0x1d1bcd+=_0x2d0a13;_0x1ce5d6[_0xd3e1('0x1d')](dbH[_0xd3e1('0x15')]['query'](util[_0xd3e1('0xd')](_0xd3e1('0x1e'),QUERY,_0x500455,_0x1d1bcd),{'type':dbH['sequelize'][_0xd3e1('0x17')]['SELECT']}));}}}else{_0x1ce5d6[_0xd3e1('0x1d')](dbH[_0xd3e1('0x15')][_0xd3e1('0x16')](QUERY,{'type':dbH[_0xd3e1('0x15')][_0xd3e1('0x17')]['SELECT']}));}var _0x4ed967=path[_0xd3e1('0x1f')](PATH);var _0x3b7db4=path['basename'](PATH,_0xd3e1('0x20'));var _0x1192fd=_0xbd1015[_0xd3e1('0x12')]&&_0x1ce5d6[_0xd3e1('0x21')]>0x1;var _0xcf903f=[];if(!fs[_0xd3e1('0x22')](path['join'](_0x4ed967,_0x3b7db4))&&_0x1192fd){fs[_0xd3e1('0x23')](path[_0xd3e1('0x24')](_0x4ed967,_0x3b7db4));}return BPromise[_0xd3e1('0x25')](_0x1ce5d6,function(_0x3dfb07){_0xcf903f[_0xd3e1('0x1d')](_0x3dfb07);})[_0xd3e1('0x14')](function(){for(var _0x25dfc4=0x0;_0x25dfc4<_0xcf903f[_0xd3e1('0x21')];_0x25dfc4+=0x1){var _0x150ed5;var _0x7b3e77=_0xcf903f[_0x25dfc4];if(_0x1192fd){_0x150ed5=path[_0xd3e1('0x24')](_0x4ed967,_0x3b7db4,util['format']('%s%d.%s',_0x3b7db4,_0x25dfc4,'csv'));}else{_0x150ed5=path[_0xd3e1('0x24')](_0x4ed967,util[_0xd3e1('0xd')]('%s.%s',_0x3b7db4,_0xd3e1('0x26')));}fs['writeFileSync'](_0x150ed5,csv(_0x7b3e77));}})['then'](function(){if(_0x1192fd){return new Promise(function(_0x22401b){zipdir(path[_0xd3e1('0x24')](_0x4ed967,_0x3b7db4),{'saveTo':path[_0xd3e1('0x24')](_0x4ed967,util[_0xd3e1('0xd')](_0xd3e1('0x27'),_0x3b7db4,_0xd3e1('0x28')))},function(_0x413d9a,_0x4dc32c){rimraf(path[_0xd3e1('0x24')](_0x4ed967,_0x3b7db4),function(){});_0x22401b('zip\x20finished');});});}})[_0xd3e1('0x14')](function(){logger['info'](util[_0xd3e1('0xd')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xd3e1('0xf')));return analyticExtractedReport(_0xd3e1('0x29'),_0x1192fd?util['format'](_0xd3e1('0x27'),_0x3b7db4,_0x1192fd?'zip':_0xd3e1('0x26')):null);});})[_0xd3e1('0x2a')](function(_0x22454f){logger['info'](util[_0xd3e1('0xd')](_0xd3e1('0x2b'),EXTRACTED_REPORT_ID,_0xd3e1('0xf')),util[_0xd3e1('0x2c')](_0x22454f,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0xd3e1('0x2d')](function(){process[_0xd3e1('0x2e')](EXIT_CODE);});}main();