Built motion from commit (unavailable).|2.3.1
[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 _0x8737=['num','Empty','length','push','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','dirname','basename','.csv','join','mkdirSync','%s%d.%s','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','path','lodash','bluebird','rimraf','../../mysqldb','analytics','argv','savename','AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes'];(function(_0x59312d,_0x52bb25){var _0x13ca66=function(_0x2d4a0c){while(--_0x2d4a0c){_0x59312d['push'](_0x59312d['shift']());}};_0x13ca66(++_0x52bb25);}(_0x8737,0x175));var _0x7873=function(_0x18cd2f,_0x431dc5){_0x18cd2f=_0x18cd2f-0x0;var _0x13a9f4=_0x8737[_0x18cd2f];return _0x13a9f4;};'use strict';var util=require(_0x7873('0x0'));var path=require(_0x7873('0x1'));var _=require(_0x7873('0x2'));var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0x7873('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0x7873('0x4'));var db=require(_0x7873('0x5'))['db'];var dbH=require(_0x7873('0x5'))['dbH'];var logger=require('../../config/logger')(_0x7873('0x6'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x7873('0x7')][0x3];var PATH=process[_0x7873('0x7')][0x4];function analyticExtractedReport(_0xf6b7a0,_0x3f301c){var _0x3a6241={'status':_0xf6b7a0};var _0x250611={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3f301c){_0x3a6241[_0x7873('0x8')]=_0x3f301c;}return db[_0x7873('0x9')]['update'](_0x3a6241,_0x250611);}function main(){var _0x13b2ac=0x1388;var _0x52abad;logger[_0x7873('0xa')](util[_0x7873('0xb')](_0x7873('0xc'),EXTRACTED_REPORT_ID,_0x7873('0xd')));return db[_0x7873('0xe')][_0x7873('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x7873('0x10'),_0x7873('0x11')]})[_0x7873('0x12')](function(_0xb16fc1){if(_0xb16fc1){_0x52abad=_0xb16fc1;_0x13b2ac=_0x52abad['splitSizeCsv']||0x1388;}})[_0x7873('0x12')](function(){return dbH['sequelize'][_0x7873('0x13')](util[_0x7873('0xb')](_0x7873('0x14'),QUERY),{'type':dbH[_0x7873('0x15')][_0x7873('0x16')]['SELECT']});})[_0x7873('0x12')](function(_0x43a2ae){if(!_0x43a2ae[0x0][_0x7873('0x17')]){return analyticExtractedReport(_0x7873('0x18'));}var _0x56d9d5=[];var _0x2e727a=0x0;var _0x2b87c1=!![];if(_0x43a2ae&&_0x43a2ae[_0x7873('0x19')]){var _0x5925a4=_0x43a2ae[0x0][_0x7873('0x17')]%(_0x2e727a+_0x13b2ac);if(_0x52abad[_0x7873('0x10')]){for(;_0x2b87c1;_0x2e727a+=_0x13b2ac,_0x5925a4=_0x43a2ae[0x0][_0x7873('0x17')]%(_0x2e727a+_0x13b2ac)){if(_0x5925a4==0x0||_0x5925a4==_0x43a2ae[0x0][_0x7873('0x17')]){_0x2b87c1=![];}_0x56d9d5[_0x7873('0x1a')](dbH[_0x7873('0x15')][_0x7873('0x13')](util[_0x7873('0xb')](_0x7873('0x1b'),QUERY,_0x13b2ac,_0x2e727a),{'type':dbH[_0x7873('0x15')]['QueryTypes'][_0x7873('0x1c')]}));}}else{_0x56d9d5['push'](dbH['sequelize'][_0x7873('0x13')](QUERY,{'type':dbH[_0x7873('0x15')]['QueryTypes'][_0x7873('0x1c')]}));}}var _0x532313=path[_0x7873('0x1d')](PATH);var _0x494bf0=path[_0x7873('0x1e')](PATH,_0x7873('0x1f'));var _0x313e94=_0x52abad['split']&&_0x56d9d5['length']>0x1;var _0x1c434d=[];if(!fs['existsSync'](path[_0x7873('0x20')](_0x532313,_0x494bf0))&&_0x313e94){fs[_0x7873('0x21')](path['join'](_0x532313,_0x494bf0));}return BPromise['each'](_0x56d9d5,function(_0x3c9b9d){_0x1c434d[_0x7873('0x1a')](_0x3c9b9d);})[_0x7873('0x12')](function(){for(var _0x300ccf=0x0;_0x300ccf<_0x1c434d[_0x7873('0x19')];_0x300ccf+=0x1){var _0x3c2436;var _0x5555bc=_0x1c434d[_0x300ccf];if(_0x313e94){_0x3c2436=path['join'](_0x532313,_0x494bf0,util[_0x7873('0xb')](_0x7873('0x22'),_0x494bf0,_0x300ccf,_0x7873('0x23')));}else{_0x3c2436=path[_0x7873('0x20')](_0x532313,util[_0x7873('0xb')](_0x7873('0x24'),_0x494bf0,'csv'));}fs[_0x7873('0x25')](_0x3c2436,csv(_0x5555bc));}})[_0x7873('0x12')](function(){if(_0x313e94){zipdir(path['join'](_0x532313,_0x494bf0),{'saveTo':path[_0x7873('0x20')](_0x532313,util[_0x7873('0xb')](_0x7873('0x24'),_0x494bf0,_0x7873('0x26')))},function(_0x363a0e,_0x2abd7d){});rimraf(path[_0x7873('0x20')](_0x532313,_0x494bf0),function(){});}})[_0x7873('0x12')](function(){logger[_0x7873('0xa')](util[_0x7873('0xb')](_0x7873('0x27'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport('Completed',_0x313e94?util[_0x7873('0xb')]('%s.%s',_0x494bf0,_0x313e94?_0x7873('0x26'):_0x7873('0x23')):null);});})[_0x7873('0x28')](function(_0x1d2417){logger[_0x7873('0xa')](util['format'](_0x7873('0x29'),EXTRACTED_REPORT_ID,'CSV'),util[_0x7873('0x2a')](_0x1d2417,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x7873('0x2b'));});}main();