2a11215544e8ef09d3af94aa51f7623a86863af4
[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 _0x4ea3=['split','splitSizeCsv','then','sequelize','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','num','Empty','length','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','push','basename','.csv','join','mkdirSync','each','%s%d.%s','csv','writeFileSync','%s.%s','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','zip','catch','inspect','util','path','lodash','to-csv','zip-dir','../../mysqldb','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting'];(function(_0x3e20ae,_0x2227f2){var _0x1feaf5=function(_0x53d972){while(--_0x53d972){_0x3e20ae['push'](_0x3e20ae['shift']());}};_0x1feaf5(++_0x2227f2);}(_0x4ea3,0x70));var _0x34ea=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x4ea3[_0x5ddb1c];return _0x354adc;};'use strict';var util=require(_0x34ea('0x0'));var path=require(_0x34ea('0x1'));var _=require(_0x34ea('0x2'));var csv=require(_0x34ea('0x3'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0x34ea('0x4'));var rimraf=require('rimraf');var db=require(_0x34ea('0x5'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0x34ea('0x6'))(_0x34ea('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x34ea('0x8')][0x2]);var QUERY=process[_0x34ea('0x8')][0x3];var PATH=process[_0x34ea('0x8')][0x4];function analyticExtractedReport(_0x18b461,_0x22b09e){var _0x5bec7c={'status':_0x18b461};var _0x341727={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x22b09e){_0x5bec7c[_0x34ea('0x9')]=_0x22b09e;}return db[_0x34ea('0xa')]['update'](_0x5bec7c,_0x341727);}function main(){var _0x301b98=0x1388;var _0xea1be2;logger['info'](util['format'](_0x34ea('0xb'),EXTRACTED_REPORT_ID,_0x34ea('0xc')));return db[_0x34ea('0xd')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x34ea('0xe'),_0x34ea('0xf')]})[_0x34ea('0x10')](function(_0x233b11){if(_0x233b11){_0xea1be2=_0x233b11;_0x301b98=_0xea1be2[_0x34ea('0xf')]||0x1388;}})[_0x34ea('0x10')](function(){return dbH[_0x34ea('0x11')][_0x34ea('0x12')](util[_0x34ea('0x13')](_0x34ea('0x14'),QUERY),{'type':dbH[_0x34ea('0x11')]['QueryTypes'][_0x34ea('0x15')]});})[_0x34ea('0x10')](function(_0x14ebb9){if(!_0x14ebb9[0x0][_0x34ea('0x16')]){return analyticExtractedReport(_0x34ea('0x17'));}var _0x56b2d7=[];var _0x6a84a7=0x0;var _0x18c013=!![];if(_0x14ebb9&&_0x14ebb9[_0x34ea('0x18')]){var _0x305576=_0x14ebb9[0x0]['num']%(_0x6a84a7+_0x301b98);if(_0xea1be2[_0x34ea('0xe')]){for(;_0x18c013;_0x6a84a7+=_0x301b98,_0x305576=_0x14ebb9[0x0][_0x34ea('0x16')]%(_0x6a84a7+_0x301b98)){if(_0x305576==0x0||_0x305576==_0x14ebb9[0x0][_0x34ea('0x16')]){_0x18c013=![];}_0x56b2d7['push'](dbH[_0x34ea('0x11')][_0x34ea('0x12')](util[_0x34ea('0x13')](_0x34ea('0x19'),QUERY,_0x301b98,_0x6a84a7),{'type':dbH['sequelize'][_0x34ea('0x1a')][_0x34ea('0x15')]}));}}else{_0x56b2d7[_0x34ea('0x1b')](dbH[_0x34ea('0x11')]['query'](QUERY,{'type':dbH['sequelize'][_0x34ea('0x1a')][_0x34ea('0x15')]}));}}var _0x151fae=path['dirname'](PATH);var _0x5197a2=path[_0x34ea('0x1c')](PATH,_0x34ea('0x1d'));var _0x2a0ec2=_0xea1be2[_0x34ea('0xe')]&&_0x56b2d7[_0x34ea('0x18')]>0x1;var _0x697475=[];if(!fs['existsSync'](path[_0x34ea('0x1e')](_0x151fae,_0x5197a2))&&_0x2a0ec2){fs[_0x34ea('0x1f')](path[_0x34ea('0x1e')](_0x151fae,_0x5197a2));}return BPromise[_0x34ea('0x20')](_0x56b2d7,function(_0x5b5885){_0x697475['push'](_0x5b5885);})['then'](function(){for(var _0x142709=0x0;_0x142709<_0x697475[_0x34ea('0x18')];_0x142709+=0x1){var _0x37c214;var _0x4204d7=_0x697475[_0x142709];if(_0x2a0ec2){_0x37c214=path['join'](_0x151fae,_0x5197a2,util[_0x34ea('0x13')](_0x34ea('0x21'),_0x5197a2,_0x142709,_0x34ea('0x22')));}else{_0x37c214=path['join'](_0x151fae,util['format']('%s.%s',_0x5197a2,'csv'));}fs[_0x34ea('0x23')](_0x37c214,csv(_0x4204d7));}})[_0x34ea('0x10')](function(){if(_0x2a0ec2){zipdir(path[_0x34ea('0x1e')](_0x151fae,_0x5197a2),{'saveTo':path[_0x34ea('0x1e')](_0x151fae,util['format'](_0x34ea('0x24'),_0x5197a2,'zip'))},function(_0x2c6de8,_0x4f2b77){});rimraf(path[_0x34ea('0x1e')](_0x151fae,_0x5197a2),function(){});}})[_0x34ea('0x10')](function(){logger[_0x34ea('0x25')](util['format'](_0x34ea('0x26'),EXTRACTED_REPORT_ID,_0x34ea('0xc')));return analyticExtractedReport('Completed',_0x2a0ec2?util[_0x34ea('0x13')]('%s.%s',_0x5197a2,_0x2a0ec2?_0x34ea('0x27'):_0x34ea('0x22')):null);});})[_0x34ea('0x28')](function(_0x5ead76){logger['info'](util[_0x34ea('0x13')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x34ea('0xc')),util[_0x34ea('0x29')](_0x5ead76,{'showHidden':![],'depth':null}));return analyticExtractedReport('Failed');});}main();