ee894729ca3fbe4dd9c2364f1ed56225ae5b48a5
[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 _0x854d=['split','then','splitSizeCsv','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','range','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','length','join','mkdirSync','each','csv','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','finally','exit','util','path','lodash','to-csv','zip-dir','rimraf','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV'];(function(_0x571d86,_0x2d85e5){var _0x1adc43=function(_0x275973){while(--_0x275973){_0x571d86['push'](_0x571d86['shift']());}};_0x1adc43(++_0x2d85e5);}(_0x854d,0xd5));var _0xd854=function(_0x18b453,_0x46c7d5){_0x18b453=_0x18b453-0x0;var _0x32a9=_0x854d[_0x18b453];return _0x32a9;};'use strict';var util=require(_0xd854('0x0'));var path=require(_0xd854('0x1'));var _=require(_0xd854('0x2'));var csv=require(_0xd854('0x3'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0xd854('0x4'));var rimraf=require(_0xd854('0x5'));var db=require(_0xd854('0x6'))['db'];var dbH=require(_0xd854('0x6'))[_0xd854('0x7')];var logger=require('../../config/logger')(_0xd854('0x8'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xd854('0x9')][0x3];var PATH=process[_0xd854('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x45342e,_0xfc8d06){var _0x36f119={'status':_0x45342e};var _0x1abafd={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xfc8d06){_0x36f119[_0xd854('0xa')]=_0xfc8d06;}return db[_0xd854('0xb')][_0xd854('0xc')](_0x36f119,_0x1abafd);}function main(){var _0x42995f=0x1388;var _0x208160;logger[_0xd854('0xd')](util[_0xd854('0xe')](_0xd854('0xf'),EXTRACTED_REPORT_ID,_0xd854('0x10')));return db['Setting']['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xd854('0x11'),'splitSizeCsv']})[_0xd854('0x12')](function(_0x2c2e6b){if(_0x2c2e6b){_0x208160=_0x2c2e6b;_0x42995f=_0x208160[_0xd854('0x13')]||0x1388;}})['then'](function(){return dbH[_0xd854('0x14')][_0xd854('0x15')](util[_0xd854('0xe')](_0xd854('0x16'),QUERY),{'type':dbH[_0xd854('0x14')][_0xd854('0x17')][_0xd854('0x18')]});})[_0xd854('0x12')](function(_0x5276ba){if(!_0x5276ba[0x0][_0xd854('0x19')]){return analyticExtractedReport(_0xd854('0x1a'));}var _0x6f3759=[];var _0x1d1eca=0x0;if(_0x208160[_0xd854('0x11')]){if(_0x5276ba&&_0x5276ba['length']){var _0x108652=_[_0xd854('0x1b')](_0x5276ba[0x0][_0xd854('0x19')]/_0x42995f);var _0x5a34da=Number['isInteger'](_0x5276ba[0x0][_0xd854('0x19')]/_0x42995f)?_0x5276ba[0x0]['num']%_0x42995f:0x0;_0x108652[_0xd854('0x1c')](function(_0x2168b6){if(_0x2168b6>0x0){_0x1d1eca+=_0x42995f;}_0x6f3759[_0xd854('0x1d')](dbH[_0xd854('0x14')]['query'](util['format'](_0xd854('0x1e'),QUERY,_0x42995f,_0x1d1eca),{'type':dbH['sequelize'][_0xd854('0x17')]['SELECT']}));});if(_0x5a34da>0x0){_0x1d1eca+=_0x42995f;_0x6f3759['push'](dbH[_0xd854('0x14')][_0xd854('0x15')](util[_0xd854('0xe')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x5a34da,_0x1d1eca),{'type':dbH[_0xd854('0x14')]['QueryTypes'][_0xd854('0x18')]}));}}}else{_0x6f3759['push'](dbH[_0xd854('0x14')]['query'](QUERY,{'type':dbH['sequelize']['QueryTypes'][_0xd854('0x18')]}));}var _0x11bde4=path[_0xd854('0x1f')](PATH);var _0x54ca61=path[_0xd854('0x20')](PATH,_0xd854('0x21'));var _0x2e28dc=_0x208160['split']&&_0x6f3759[_0xd854('0x22')]>0x1;var _0x1c6407=[];if(!fs['existsSync'](path[_0xd854('0x23')](_0x11bde4,_0x54ca61))&&_0x2e28dc){fs[_0xd854('0x24')](path[_0xd854('0x23')](_0x11bde4,_0x54ca61));}return BPromise[_0xd854('0x25')](_0x6f3759,function(_0x39880e){_0x1c6407[_0xd854('0x1d')](_0x39880e);})['then'](function(){for(var _0x5c2c06=0x0;_0x5c2c06<_0x1c6407[_0xd854('0x22')];_0x5c2c06+=0x1){var _0x408e64;var _0x15717a=_0x1c6407[_0x5c2c06];if(_0x2e28dc){_0x408e64=path['join'](_0x11bde4,_0x54ca61,util[_0xd854('0xe')]('%s%d.%s',_0x54ca61,_0x5c2c06,_0xd854('0x26')));}else{_0x408e64=path[_0xd854('0x23')](_0x11bde4,util[_0xd854('0xe')](_0xd854('0x27'),_0x54ca61,_0xd854('0x26')));}fs['writeFileSync'](_0x408e64,csv(_0x15717a));}})[_0xd854('0x12')](function(){if(_0x2e28dc){return new Promise(function(_0x203fe4){zipdir(path[_0xd854('0x23')](_0x11bde4,_0x54ca61),{'saveTo':path[_0xd854('0x23')](_0x11bde4,util[_0xd854('0xe')](_0xd854('0x27'),_0x54ca61,_0xd854('0x28')))},function(_0x5a4b2c,_0x27be5f){rimraf(path[_0xd854('0x23')](_0x11bde4,_0x54ca61),function(){});_0x203fe4(_0xd854('0x29'));});});}})[_0xd854('0x12')](function(){logger['info'](util['format'](_0xd854('0x2a'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport('Completed',_0x2e28dc?util[_0xd854('0xe')](_0xd854('0x27'),_0x54ca61,_0x2e28dc?'zip':_0xd854('0x26')):null);});})[_0xd854('0x2b')](function(_0x178aac){logger[_0xd854('0xd')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xd854('0x10')),util['inspect'](_0x178aac,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0xd854('0x2c')](function(){process[_0xd854('0x2d')](EXIT_CODE);});}main();