Built motion from commit (unavailable).|2.4.20
[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 _0xf109=['Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','util','path','lodash','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','find','split','splitSizeCsv','then','query','sequelize','QueryTypes','num','length','SELECT','push','basename','.csv','join','mkdirSync','%s%d.%s','csv','%s.%s','writeFileSync'];(function(_0x5c542a,_0x783aaa){var _0x1046e3=function(_0xab1fa5){while(--_0xab1fa5){_0x5c542a['push'](_0x5c542a['shift']());}};_0x1046e3(++_0x783aaa);}(_0xf109,0xce));var _0x9f10=function(_0x68c979,_0x431cff){_0x68c979=_0x68c979-0x0;var _0x4f0001=_0xf109[_0x68c979];return _0x4f0001;};'use strict';var util=require(_0x9f10('0x0'));var path=require(_0x9f10('0x1'));var _=require(_0x9f10('0x2'));var csv=require('to-csv');var fs=require('fs');var BPromise=require('bluebird');var zipdir=require('zip-dir');var rimraf=require(_0x9f10('0x3'));var db=require(_0x9f10('0x4'))['db'];var dbH=require(_0x9f10('0x4'))[_0x9f10('0x5')];var logger=require(_0x9f10('0x6'))(_0x9f10('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x9f10('0x8')][0x2]);var QUERY=process[_0x9f10('0x8')][0x3];var PATH=process[_0x9f10('0x8')][0x4];function analyticExtractedReport(_0x2a877e,_0x3fd82f){var _0x5c8719={'status':_0x2a877e};var _0x42a8cd={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3fd82f){_0x5c8719[_0x9f10('0x9')]=_0x3fd82f;}return db[_0x9f10('0xa')][_0x9f10('0xb')](_0x5c8719,_0x42a8cd);}function main(){var _0x325f22=0x1388;var _0x5d5f53;logger[_0x9f10('0xc')](util[_0x9f10('0xd')](_0x9f10('0xe'),EXTRACTED_REPORT_ID,'CSV'));return db['Setting'][_0x9f10('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x9f10('0x10'),_0x9f10('0x11')]})['then'](function(_0x289164){if(_0x289164){_0x5d5f53=_0x289164;_0x325f22=_0x5d5f53[_0x9f10('0x11')]||0x1388;}})[_0x9f10('0x12')](function(){return dbH['sequelize'][_0x9f10('0x13')](util[_0x9f10('0xd')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x9f10('0x14')][_0x9f10('0x15')]['SELECT']});})['then'](function(_0x2b6c4c){if(!_0x2b6c4c[0x0][_0x9f10('0x16')]){return analyticExtractedReport('Empty');}var _0x11154b=[];var _0x5ae255=0x0;var _0x14d3fe=!![];if(_0x2b6c4c&&_0x2b6c4c[_0x9f10('0x17')]){var _0x4b1b8f=_0x2b6c4c[0x0][_0x9f10('0x16')]%(_0x5ae255+_0x325f22);if(_0x5d5f53[_0x9f10('0x10')]){for(;_0x14d3fe;_0x5ae255+=_0x325f22,_0x4b1b8f=_0x2b6c4c[0x0]['num']%(_0x5ae255+_0x325f22)){if(_0x4b1b8f==0x0||_0x4b1b8f==_0x2b6c4c[0x0][_0x9f10('0x16')]){_0x14d3fe=![];}_0x11154b['push'](dbH[_0x9f10('0x14')]['query'](util[_0x9f10('0xd')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x325f22,_0x5ae255),{'type':dbH['sequelize'][_0x9f10('0x15')][_0x9f10('0x18')]}));}}else{_0x11154b[_0x9f10('0x19')](dbH[_0x9f10('0x14')][_0x9f10('0x13')](QUERY,{'type':dbH[_0x9f10('0x14')][_0x9f10('0x15')]['SELECT']}));}}var _0x366044=path['dirname'](PATH);var _0x293990=path[_0x9f10('0x1a')](PATH,_0x9f10('0x1b'));var _0x4adbda=_0x5d5f53[_0x9f10('0x10')]&&_0x11154b[_0x9f10('0x17')]>0x1;var _0x213567=[];if(!fs['existsSync'](path[_0x9f10('0x1c')](_0x366044,_0x293990))&&_0x4adbda){fs[_0x9f10('0x1d')](path[_0x9f10('0x1c')](_0x366044,_0x293990));}return BPromise['each'](_0x11154b,function(_0x2ec07d){_0x213567[_0x9f10('0x19')](_0x2ec07d);})[_0x9f10('0x12')](function(){for(var _0x1647c0=0x0;_0x1647c0<_0x213567['length'];_0x1647c0+=0x1){var _0x57539b;var _0x5c1800=_0x213567[_0x1647c0];if(_0x4adbda){_0x57539b=path[_0x9f10('0x1c')](_0x366044,_0x293990,util['format'](_0x9f10('0x1e'),_0x293990,_0x1647c0,_0x9f10('0x1f')));}else{_0x57539b=path[_0x9f10('0x1c')](_0x366044,util[_0x9f10('0xd')](_0x9f10('0x20'),_0x293990,'csv'));}fs[_0x9f10('0x21')](_0x57539b,csv(_0x5c1800));}})[_0x9f10('0x12')](function(){if(_0x4adbda){zipdir(path[_0x9f10('0x1c')](_0x366044,_0x293990),{'saveTo':path[_0x9f10('0x1c')](_0x366044,util[_0x9f10('0xd')](_0x9f10('0x20'),_0x293990,'zip'))},function(_0x358d3f,_0x501ee){});rimraf(path[_0x9f10('0x1c')](_0x366044,_0x293990),function(){});}})[_0x9f10('0x12')](function(){logger['info'](util[_0x9f10('0xd')](_0x9f10('0x22'),EXTRACTED_REPORT_ID,_0x9f10('0x23')));return analyticExtractedReport('Completed',_0x4adbda?util[_0x9f10('0xd')]('%s.%s',_0x293990,_0x4adbda?_0x9f10('0x24'):_0x9f10('0x1f')):null);});})[_0x9f10('0x25')](function(_0x5944e5){logger[_0x9f10('0xc')](util[_0x9f10('0xd')](_0x9f10('0x26'),EXTRACTED_REPORT_ID,_0x9f10('0x23')),util[_0x9f10('0x27')](_0x5944e5,{'showHidden':![],'depth':null}));return analyticExtractedReport('Failed');});}main();