Built motion from commit b0a9a629.|2.6.33
[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 _0x3bd2=['format','QueryTypes','num','length','range','push','SELECT','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','join','mkdirSync','then','%s%d.%s','%s.%s','csv','writeFileSync','zip','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','exit','util','lodash','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','argv','savename','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','sequelize','query'];(function(_0x7a41db,_0x86c0c5){var _0x11921f=function(_0x36aeaf){while(--_0x36aeaf){_0x7a41db['push'](_0x7a41db['shift']());}};_0x11921f(++_0x86c0c5);}(_0x3bd2,0x1bc));var _0x23bd=function(_0x1807a9,_0x2138c7){_0x1807a9=_0x1807a9-0x0;var _0x1d5c45=_0x3bd2[_0x1807a9];return _0x1d5c45;};'use strict';var util=require(_0x23bd('0x0'));var path=require('path');var _=require(_0x23bd('0x1'));var csv=require('to-csv');var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0x23bd('0x2'));var rimraf=require(_0x23bd('0x3'));var db=require(_0x23bd('0x4'))['db'];var dbH=require('../../mysqldb')[_0x23bd('0x5')];var logger=require(_0x23bd('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x23bd('0x7')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x23bd('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x45c7e5,_0x1765c0){var _0x578aab={'status':_0x45c7e5};var _0x2ba941={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1765c0){_0x578aab[_0x23bd('0x8')]=_0x1765c0;}return db['AnalyticExtractedReport']['update'](_0x578aab,_0x2ba941);}function main(){var _0x14abd2=0x1388;var _0x7d34f4;logger[_0x23bd('0x9')](util['format'](_0x23bd('0xa'),EXTRACTED_REPORT_ID,_0x23bd('0xb')));return db[_0x23bd('0xc')][_0x23bd('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x23bd('0xe'),_0x23bd('0xf')]})['then'](function(_0x43a673){if(_0x43a673){_0x7d34f4=_0x43a673;_0x14abd2=_0x7d34f4[_0x23bd('0xf')]||0x1388;}})['then'](function(){return dbH[_0x23bd('0x10')][_0x23bd('0x11')](util[_0x23bd('0x12')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x23bd('0x10')][_0x23bd('0x13')]['SELECT']});})['then'](function(_0x22cb78){if(!_0x22cb78[0x0][_0x23bd('0x14')]){return analyticExtractedReport('Empty');}var _0xbbf6d0=[];var _0x382bba=0x0;if(_0x7d34f4[_0x23bd('0xe')]){if(_0x22cb78&&_0x22cb78[_0x23bd('0x15')]){var _0x5508e6=_[_0x23bd('0x16')](_0x22cb78[0x0][_0x23bd('0x14')]/_0x14abd2);var _0x3db47f=Number['isInteger'](_0x22cb78[0x0]['num']/_0x14abd2)?_0x22cb78[0x0]['num']%_0x14abd2:0x0;_0x5508e6['forEach'](function(_0x192ad9){if(_0x192ad9>0x0){_0x382bba+=_0x14abd2;}_0xbbf6d0[_0x23bd('0x17')](dbH['sequelize'][_0x23bd('0x11')](util[_0x23bd('0x12')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x14abd2,_0x382bba),{'type':dbH[_0x23bd('0x10')]['QueryTypes'][_0x23bd('0x18')]}));});if(_0x3db47f>0x0){_0x382bba+=_0x14abd2;_0xbbf6d0[_0x23bd('0x17')](dbH[_0x23bd('0x10')]['query'](util[_0x23bd('0x12')](_0x23bd('0x19'),QUERY,_0x3db47f,_0x382bba),{'type':dbH[_0x23bd('0x10')]['QueryTypes'][_0x23bd('0x18')]}));}}}else{_0xbbf6d0[_0x23bd('0x17')](dbH[_0x23bd('0x10')][_0x23bd('0x11')](QUERY,{'type':dbH[_0x23bd('0x10')]['QueryTypes']['SELECT']}));}var _0x343dbd=path[_0x23bd('0x1a')](PATH);var _0x400160=path['basename'](PATH,'.csv');var _0x119172=_0x7d34f4[_0x23bd('0xe')]&&_0xbbf6d0[_0x23bd('0x15')]>0x1;var _0x51f4b7=[];if(!fs['existsSync'](path[_0x23bd('0x1b')](_0x343dbd,_0x400160))&&_0x119172){fs[_0x23bd('0x1c')](path[_0x23bd('0x1b')](_0x343dbd,_0x400160));}return BPromise['each'](_0xbbf6d0,function(_0xcd05a6){_0x51f4b7[_0x23bd('0x17')](_0xcd05a6);})[_0x23bd('0x1d')](function(){for(var _0x162687=0x0;_0x162687<_0x51f4b7[_0x23bd('0x15')];_0x162687+=0x1){var _0x1c77e3;var _0x1aa05e=_0x51f4b7[_0x162687];if(_0x119172){_0x1c77e3=path['join'](_0x343dbd,_0x400160,util[_0x23bd('0x12')](_0x23bd('0x1e'),_0x400160,_0x162687,'csv'));}else{_0x1c77e3=path[_0x23bd('0x1b')](_0x343dbd,util[_0x23bd('0x12')](_0x23bd('0x1f'),_0x400160,_0x23bd('0x20')));}fs[_0x23bd('0x21')](_0x1c77e3,csv(_0x1aa05e));}})['then'](function(){if(_0x119172){return new Promise(function(_0x2e4fe4){zipdir(path[_0x23bd('0x1b')](_0x343dbd,_0x400160),{'saveTo':path[_0x23bd('0x1b')](_0x343dbd,util[_0x23bd('0x12')]('%s.%s',_0x400160,_0x23bd('0x22')))},function(_0x283e78,_0x31b404){rimraf(path[_0x23bd('0x1b')](_0x343dbd,_0x400160),function(){});_0x2e4fe4(_0x23bd('0x23'));});});}})[_0x23bd('0x1d')](function(){logger['info'](util[_0x23bd('0x12')](_0x23bd('0x24'),EXTRACTED_REPORT_ID,_0x23bd('0xb')));return analyticExtractedReport(_0x23bd('0x25'),_0x119172?util[_0x23bd('0x12')](_0x23bd('0x1f'),_0x400160,_0x119172?'zip':'csv'):null);});})[_0x23bd('0x26')](function(_0x30b707){logger['info'](util[_0x23bd('0x12')](_0x23bd('0x27'),EXTRACTED_REPORT_ID,_0x23bd('0xb')),util[_0x23bd('0x28')](_0x30b707,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})['finally'](function(){process[_0x23bd('0x29')](EXIT_CODE);});}main();