Built motion from commit 0900f080.|2.5.45
[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 _0xa34a=['argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','then','splitSizeCsv','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','SELECT','num','Empty','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','.csv','existsSync','mkdirSync','join','%s%d.%s','%s.%s','csv','writeFileSync','zip\x20finished','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','finally','exit','util','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics'];(function(_0x2672df,_0x49c336){var _0x5cc24d=function(_0x1f1661){while(--_0x1f1661){_0x2672df['push'](_0x2672df['shift']());}};_0x5cc24d(++_0x49c336);}(_0xa34a,0x15c));var _0xaa34=function(_0x2ff132,_0x17339b){_0x2ff132=_0x2ff132-0x0;var _0x2f0e6e=_0xa34a[_0x2ff132];return _0x2f0e6e;};'use strict';var util=require(_0xaa34('0x0'));var path=require('path');var _=require(_0xaa34('0x1'));var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0xaa34('0x2'));var zipdir=require(_0xaa34('0x3'));var rimraf=require(_0xaa34('0x4'));var db=require('../../mysqldb')['db'];var dbH=require(_0xaa34('0x5'))[_0xaa34('0x6')];var logger=require(_0xaa34('0x7'))(_0xaa34('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0xaa34('0x9')][0x2]);var QUERY=process[_0xaa34('0x9')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x585f44,_0x2e4eb9){var _0x287bbb={'status':_0x585f44};var _0xc90382={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x2e4eb9){_0x287bbb[_0xaa34('0xa')]=_0x2e4eb9;}return db[_0xaa34('0xb')][_0xaa34('0xc')](_0x287bbb,_0xc90382);}function main(){var _0x1484af=0x1388;var _0x46148d;logger[_0xaa34('0xd')](util[_0xaa34('0xe')](_0xaa34('0xf'),EXTRACTED_REPORT_ID,_0xaa34('0x10')));return db[_0xaa34('0x11')][_0xaa34('0x12')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xaa34('0x13'),'splitSizeCsv']})[_0xaa34('0x14')](function(_0x6003e6){if(_0x6003e6){_0x46148d=_0x6003e6;_0x1484af=_0x46148d[_0xaa34('0x15')]||0x1388;}})[_0xaa34('0x14')](function(){return dbH['sequelize'][_0xaa34('0x16')](util[_0xaa34('0xe')](_0xaa34('0x17'),QUERY),{'type':dbH[_0xaa34('0x18')][_0xaa34('0x19')][_0xaa34('0x1a')]});})[_0xaa34('0x14')](function(_0x4bc52f){if(!_0x4bc52f[0x0][_0xaa34('0x1b')]){return analyticExtractedReport(_0xaa34('0x1c'));}var _0x5ba97d=[];var _0x5c1342=0x0;if(_0x46148d[_0xaa34('0x13')]){if(_0x4bc52f&&_0x4bc52f['length']){var _0xd8626c=_[_0xaa34('0x1d')](_0x4bc52f[0x0]['num']/_0x1484af);var _0x49d273=Number[_0xaa34('0x1e')](_0x4bc52f[0x0][_0xaa34('0x1b')]/_0x1484af)?_0x4bc52f[0x0][_0xaa34('0x1b')]%_0x1484af:0x0;_0xd8626c[_0xaa34('0x1f')](function(_0x415de0){if(_0x415de0>0x0){_0x5c1342+=_0x1484af;}_0x5ba97d[_0xaa34('0x20')](dbH[_0xaa34('0x18')][_0xaa34('0x16')](util['format'](_0xaa34('0x21'),QUERY,_0x1484af,_0x5c1342),{'type':dbH[_0xaa34('0x18')][_0xaa34('0x19')][_0xaa34('0x1a')]}));});if(_0x49d273>0x0){_0x5c1342+=_0x1484af;_0x5ba97d['push'](dbH['sequelize']['query'](util['format'](_0xaa34('0x21'),QUERY,_0x49d273,_0x5c1342),{'type':dbH[_0xaa34('0x18')][_0xaa34('0x19')][_0xaa34('0x1a')]}));}}}else{_0x5ba97d['push'](dbH[_0xaa34('0x18')][_0xaa34('0x16')](QUERY,{'type':dbH[_0xaa34('0x18')][_0xaa34('0x19')][_0xaa34('0x1a')]}));}var _0x22bb42=path[_0xaa34('0x22')](PATH);var _0x579452=path['basename'](PATH,_0xaa34('0x23'));var _0x50a829=_0x46148d[_0xaa34('0x13')]&&_0x5ba97d['length']>0x1;var _0x5549b5=[];if(!fs[_0xaa34('0x24')](path['join'](_0x22bb42,_0x579452))&&_0x50a829){fs[_0xaa34('0x25')](path[_0xaa34('0x26')](_0x22bb42,_0x579452));}return BPromise['each'](_0x5ba97d,function(_0x11b9eb){_0x5549b5['push'](_0x11b9eb);})[_0xaa34('0x14')](function(){for(var _0x41f114=0x0;_0x41f114<_0x5549b5['length'];_0x41f114+=0x1){var _0x94b7fa;var _0x2d4fd7=_0x5549b5[_0x41f114];if(_0x50a829){_0x94b7fa=path[_0xaa34('0x26')](_0x22bb42,_0x579452,util[_0xaa34('0xe')](_0xaa34('0x27'),_0x579452,_0x41f114,'csv'));}else{_0x94b7fa=path['join'](_0x22bb42,util[_0xaa34('0xe')](_0xaa34('0x28'),_0x579452,_0xaa34('0x29')));}fs[_0xaa34('0x2a')](_0x94b7fa,csv(_0x2d4fd7));}})[_0xaa34('0x14')](function(){if(_0x50a829){return new Promise(function(_0x272a82){zipdir(path[_0xaa34('0x26')](_0x22bb42,_0x579452),{'saveTo':path[_0xaa34('0x26')](_0x22bb42,util[_0xaa34('0xe')]('%s.%s',_0x579452,'zip'))},function(_0x344a02,_0xaede33){rimraf(path[_0xaa34('0x26')](_0x22bb42,_0x579452),function(){});_0x272a82(_0xaa34('0x2b'));});});}})['then'](function(){logger[_0xaa34('0xd')](util[_0xaa34('0xe')](_0xaa34('0x2c'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0xaa34('0x2d'),_0x50a829?util[_0xaa34('0xe')]('%s.%s',_0x579452,_0x50a829?'zip':_0xaa34('0x29')):null);});})[_0xaa34('0x2e')](function(_0x6b7009){logger[_0xaa34('0xd')](util[_0xaa34('0xe')](_0xaa34('0x2f'),EXTRACTED_REPORT_ID,_0xaa34('0x10')),util[_0xaa34('0x30')](_0x6b7009,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0xaa34('0x31')](function(){process[_0xaa34('0x32')](EXIT_CODE);});}main();