66713dec07032e59a26a6fd32598f1b8eb09f378
[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 _0xf4eb=['query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','num','Empty','length','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','push','dirname','basename','existsSync','join','mkdirSync','then','%s%d.%s','csv','writeFileSync','%s.%s','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','zip-dir','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Setting','split','splitSizeCsv','sequelize'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf4eb,0xec));var _0xbf4e=function(_0x485d52,_0xe6fc37){_0x485d52=_0x485d52-0x0;var _0x5d4647=_0xf4eb[_0x485d52];return _0x5d4647;};'use strict';var util=require(_0xbf4e('0x0'));var path=require('path');var _=require('lodash');var csv=require('to-csv');var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0xbf4e('0x1'));var rimraf=require('rimraf');var db=require('../../mysqldb')['db'];var dbH=require(_0xbf4e('0x2'))[_0xbf4e('0x3')];var logger=require(_0xbf4e('0x4'))(_0xbf4e('0x5'));var EXTRACTED_REPORT_ID=Number(process[_0xbf4e('0x6')][0x2]);var QUERY=process[_0xbf4e('0x6')][0x3];var PATH=process[_0xbf4e('0x6')][0x4];function analyticExtractedReport(_0x540736,_0x449d55){var _0x5013c2={'status':_0x540736};var _0x5e23d4={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x449d55){_0x5013c2[_0xbf4e('0x7')]=_0x449d55;}return db[_0xbf4e('0x8')][_0xbf4e('0x9')](_0x5013c2,_0x5e23d4);}function main(){var _0xc86f04=0x1388;var _0x5da823;logger[_0xbf4e('0xa')](util[_0xbf4e('0xb')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'CSV'));return db[_0xbf4e('0xc')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xbf4e('0xd'),_0xbf4e('0xe')]})['then'](function(_0x17fd01){if(_0x17fd01){_0x5da823=_0x17fd01;_0xc86f04=_0x5da823['splitSizeCsv']||0x1388;}})['then'](function(){return dbH[_0xbf4e('0xf')][_0xbf4e('0x10')](util[_0xbf4e('0xb')](_0xbf4e('0x11'),QUERY),{'type':dbH[_0xbf4e('0xf')][_0xbf4e('0x12')]['SELECT']});})['then'](function(_0x180432){if(!_0x180432[0x0][_0xbf4e('0x13')]){return analyticExtractedReport(_0xbf4e('0x14'));}var _0x542909=[];var _0x14110b=0x0;var _0x2c292c=!![];if(_0x180432&&_0x180432[_0xbf4e('0x15')]){var _0x320e7d=_0x180432[0x0]['num']%(_0x14110b+_0xc86f04);if(_0x5da823[_0xbf4e('0xd')]){for(;_0x2c292c;_0x14110b+=_0xc86f04,_0x320e7d=_0x180432[0x0]['num']%(_0x14110b+_0xc86f04)){if(_0x320e7d==0x0||_0x320e7d==_0x180432[0x0]['num']){_0x2c292c=![];}_0x542909['push'](dbH['sequelize'][_0xbf4e('0x10')](util[_0xbf4e('0xb')](_0xbf4e('0x16'),QUERY,_0xc86f04,_0x14110b),{'type':dbH['sequelize']['QueryTypes'][_0xbf4e('0x17')]}));}}else{_0x542909[_0xbf4e('0x18')](dbH[_0xbf4e('0xf')][_0xbf4e('0x10')](QUERY,{'type':dbH[_0xbf4e('0xf')][_0xbf4e('0x12')][_0xbf4e('0x17')]}));}}var _0x3d642a=path[_0xbf4e('0x19')](PATH);var _0x376832=path[_0xbf4e('0x1a')](PATH,'.csv');var _0x1ff2ec=_0x5da823[_0xbf4e('0xd')]&&_0x542909['length']>0x1;var _0x31e3f5=[];if(!fs[_0xbf4e('0x1b')](path[_0xbf4e('0x1c')](_0x3d642a,_0x376832))&&_0x1ff2ec){fs[_0xbf4e('0x1d')](path[_0xbf4e('0x1c')](_0x3d642a,_0x376832));}return BPromise['each'](_0x542909,function(_0x90635e){_0x31e3f5[_0xbf4e('0x18')](_0x90635e);})[_0xbf4e('0x1e')](function(){for(var _0x5766d4=0x0;_0x5766d4<_0x31e3f5[_0xbf4e('0x15')];_0x5766d4+=0x1){var _0x5e08b1;var _0x5bcf71=_0x31e3f5[_0x5766d4];if(_0x1ff2ec){_0x5e08b1=path[_0xbf4e('0x1c')](_0x3d642a,_0x376832,util['format'](_0xbf4e('0x1f'),_0x376832,_0x5766d4,_0xbf4e('0x20')));}else{_0x5e08b1=path[_0xbf4e('0x1c')](_0x3d642a,util[_0xbf4e('0xb')]('%s.%s',_0x376832,_0xbf4e('0x20')));}fs[_0xbf4e('0x21')](_0x5e08b1,csv(_0x5bcf71));}})[_0xbf4e('0x1e')](function(){if(_0x1ff2ec){zipdir(path['join'](_0x3d642a,_0x376832),{'saveTo':path[_0xbf4e('0x1c')](_0x3d642a,util['format'](_0xbf4e('0x22'),_0x376832,_0xbf4e('0x23')))},function(_0xb8b58e,_0x498dbd){});rimraf(path[_0xbf4e('0x1c')](_0x3d642a,_0x376832),function(){});}})[_0xbf4e('0x1e')](function(){logger[_0xbf4e('0xa')](util[_0xbf4e('0xb')](_0xbf4e('0x24'),EXTRACTED_REPORT_ID,_0xbf4e('0x25')));return analyticExtractedReport('Completed',_0x1ff2ec?util[_0xbf4e('0xb')](_0xbf4e('0x22'),_0x376832,_0x1ff2ec?'zip':_0xbf4e('0x20')):null);});})[_0xbf4e('0x26')](function(_0x5473ed){logger[_0xbf4e('0xa')](util['format'](_0xbf4e('0x27'),EXTRACTED_REPORT_ID,'CSV'),util[_0xbf4e('0x28')](_0x5473ed,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xbf4e('0x29'));});}main();