Built motion from commit (unavailable).|2.5.14
[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 _0x5c12=['basename','.csv','existsSync','join','mkdirSync','each','%s%d.%s','csv','%s.%s','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','path','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','find','split','then','splitSizeCsv','sequelize','QueryTypes','SELECT','Empty','length','num','push','query'];(function(_0x246115,_0x398123){var _0x385878=function(_0x534a9c){while(--_0x534a9c){_0x246115['push'](_0x246115['shift']());}};_0x385878(++_0x398123);}(_0x5c12,0x188));var _0x25c1=function(_0x5cabfd,_0x5dea47){_0x5cabfd=_0x5cabfd-0x0;var _0x4bc06c=_0x5c12[_0x5cabfd];return _0x4bc06c;};'use strict';var util=require('util');var path=require(_0x25c1('0x0'));var _=require(_0x25c1('0x1'));var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0x25c1('0x2'));var zipdir=require(_0x25c1('0x3'));var rimraf=require(_0x25c1('0x4'));var db=require(_0x25c1('0x5'))['db'];var dbH=require(_0x25c1('0x5'))[_0x25c1('0x6')];var logger=require(_0x25c1('0x7'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x25c1('0x8')][0x2]);var QUERY=process[_0x25c1('0x8')][0x3];var PATH=process[_0x25c1('0x8')][0x4];function analyticExtractedReport(_0x4ab674,_0x5c69b1){var _0x24981c={'status':_0x4ab674};var _0x3b69ba={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5c69b1){_0x24981c[_0x25c1('0x9')]=_0x5c69b1;}return db[_0x25c1('0xa')][_0x25c1('0xb')](_0x24981c,_0x3b69ba);}function main(){var _0x588f30=0x1388;var _0x3e062e;logger[_0x25c1('0xc')](util[_0x25c1('0xd')](_0x25c1('0xe'),EXTRACTED_REPORT_ID,_0x25c1('0xf')));return db['Setting'][_0x25c1('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x25c1('0x11'),'splitSizeCsv']})[_0x25c1('0x12')](function(_0x209af5){if(_0x209af5){_0x3e062e=_0x209af5;_0x588f30=_0x3e062e[_0x25c1('0x13')]||0x1388;}})[_0x25c1('0x12')](function(){return dbH['sequelize']['query'](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x25c1('0x14')][_0x25c1('0x15')][_0x25c1('0x16')]});})[_0x25c1('0x12')](function(_0x17a032){if(!_0x17a032[0x0]['num']){return analyticExtractedReport(_0x25c1('0x17'));}var _0x55b62d=[];var _0x5d631e=0x0;var _0x5b852a=!![];if(_0x17a032&&_0x17a032[_0x25c1('0x18')]){var _0x1a08b5=_0x17a032[0x0]['num']%(_0x5d631e+_0x588f30);if(_0x3e062e['split']){for(;_0x5b852a;_0x5d631e+=_0x588f30,_0x1a08b5=_0x17a032[0x0][_0x25c1('0x19')]%(_0x5d631e+_0x588f30)){if(_0x1a08b5==0x0||_0x1a08b5==_0x17a032[0x0]['num']){_0x5b852a=![];}_0x55b62d[_0x25c1('0x1a')](dbH[_0x25c1('0x14')]['query'](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x588f30,_0x5d631e),{'type':dbH[_0x25c1('0x14')][_0x25c1('0x15')][_0x25c1('0x16')]}));}}else{_0x55b62d[_0x25c1('0x1a')](dbH['sequelize'][_0x25c1('0x1b')](QUERY,{'type':dbH[_0x25c1('0x14')][_0x25c1('0x15')][_0x25c1('0x16')]}));}}var _0x517a46=path['dirname'](PATH);var _0x2a8a84=path[_0x25c1('0x1c')](PATH,_0x25c1('0x1d'));var _0x1c61e7=_0x3e062e[_0x25c1('0x11')]&&_0x55b62d[_0x25c1('0x18')]>0x1;var _0x2ba595=[];if(!fs[_0x25c1('0x1e')](path[_0x25c1('0x1f')](_0x517a46,_0x2a8a84))&&_0x1c61e7){fs[_0x25c1('0x20')](path[_0x25c1('0x1f')](_0x517a46,_0x2a8a84));}return BPromise[_0x25c1('0x21')](_0x55b62d,function(_0x399d72){_0x2ba595['push'](_0x399d72);})[_0x25c1('0x12')](function(){for(var _0x20dbb9=0x0;_0x20dbb9<_0x2ba595[_0x25c1('0x18')];_0x20dbb9+=0x1){var _0x1fb59f;var _0x21fdb8=_0x2ba595[_0x20dbb9];if(_0x1c61e7){_0x1fb59f=path[_0x25c1('0x1f')](_0x517a46,_0x2a8a84,util['format'](_0x25c1('0x22'),_0x2a8a84,_0x20dbb9,_0x25c1('0x23')));}else{_0x1fb59f=path[_0x25c1('0x1f')](_0x517a46,util[_0x25c1('0xd')](_0x25c1('0x24'),_0x2a8a84,_0x25c1('0x23')));}fs['writeFileSync'](_0x1fb59f,csv(_0x21fdb8));}})[_0x25c1('0x12')](function(){if(_0x1c61e7){zipdir(path['join'](_0x517a46,_0x2a8a84),{'saveTo':path[_0x25c1('0x1f')](_0x517a46,util[_0x25c1('0xd')](_0x25c1('0x24'),_0x2a8a84,_0x25c1('0x25')))},function(_0x2e80b5,_0x21069c){});rimraf(path[_0x25c1('0x1f')](_0x517a46,_0x2a8a84),function(){});}})[_0x25c1('0x12')](function(){logger[_0x25c1('0xc')](util['format'](_0x25c1('0x26'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport('Completed',_0x1c61e7?util[_0x25c1('0xd')](_0x25c1('0x24'),_0x2a8a84,_0x1c61e7?'zip':_0x25c1('0x23')):null);});})['catch'](function(_0x3bfcff){logger['info'](util[_0x25c1('0xd')](_0x25c1('0x27'),EXTRACTED_REPORT_ID,_0x25c1('0xf')),util[_0x25c1('0x28')](_0x3bfcff,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x25c1('0x29'));});}main();