Built motion from commit 936e8062.|2.5.33
[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 _0xca66=['%s.%s','inspect','Failed','exit','util','to-csv','bluebird','zip-dir','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','update','info','format','CSV','Setting','find','split','splitSizeCsv','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','SELECT','Empty','length','num','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','existsSync','join','mkdirSync','each','%s%d.%s','csv','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xca66,0x8b));var _0x6ca6=function(_0x129d8b,_0x2903f8){_0x129d8b=_0x129d8b-0x0;var _0x383e2c=_0xca66[_0x129d8b];return _0x383e2c;};'use strict';var util=require(_0x6ca6('0x0'));var path=require('path');var _=require('lodash');var csv=require(_0x6ca6('0x1'));var fs=require('fs');var BPromise=require(_0x6ca6('0x2'));var zipdir=require(_0x6ca6('0x3'));var rimraf=require('rimraf');var db=require(_0x6ca6('0x4'))['db'];var dbH=require('../../mysqldb')[_0x6ca6('0x5')];var logger=require('../../config/logger')(_0x6ca6('0x6'));var EXTRACTED_REPORT_ID=Number(process[_0x6ca6('0x7')][0x2]);var QUERY=process[_0x6ca6('0x7')][0x3];var PATH=process[_0x6ca6('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x407e66,_0x27a210){var _0x27d280={'status':_0x407e66};var _0x4f5651={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x27a210){_0x27d280[_0x6ca6('0x8')]=_0x27a210;}return db[_0x6ca6('0x9')][_0x6ca6('0xa')](_0x27d280,_0x4f5651);}function main(){var _0x4352a5=0x1388;var _0x231f4c;logger[_0x6ca6('0xb')](util[_0x6ca6('0xc')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x6ca6('0xd')));return db[_0x6ca6('0xe')][_0x6ca6('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x6ca6('0x10'),_0x6ca6('0x11')]})[_0x6ca6('0x12')](function(_0x4c05e9){if(_0x4c05e9){_0x231f4c=_0x4c05e9;_0x4352a5=_0x231f4c[_0x6ca6('0x11')]||0x1388;}})[_0x6ca6('0x12')](function(){return dbH['sequelize'][_0x6ca6('0x13')](util[_0x6ca6('0xc')](_0x6ca6('0x14'),QUERY),{'type':dbH[_0x6ca6('0x15')][_0x6ca6('0x16')][_0x6ca6('0x17')]});})['then'](function(_0x52c59a){if(!_0x52c59a[0x0]['num']){return analyticExtractedReport(_0x6ca6('0x18'));}var _0x19e94f=[];var _0x260b56=0x0;var _0x3f03e6=!![];if(_0x52c59a&&_0x52c59a[_0x6ca6('0x19')]){var _0x3d7f3f=_0x52c59a[0x0][_0x6ca6('0x1a')]%(_0x260b56+_0x4352a5);if(_0x231f4c['split']){for(;_0x3f03e6;_0x260b56+=_0x4352a5,_0x3d7f3f=_0x52c59a[0x0][_0x6ca6('0x1a')]%(_0x260b56+_0x4352a5)){if(_0x3d7f3f==0x0||_0x3d7f3f==_0x52c59a[0x0][_0x6ca6('0x1a')]){_0x3f03e6=![];}_0x19e94f[_0x6ca6('0x1b')](dbH[_0x6ca6('0x15')][_0x6ca6('0x13')](util[_0x6ca6('0xc')](_0x6ca6('0x1c'),QUERY,_0x4352a5,_0x260b56),{'type':dbH[_0x6ca6('0x15')][_0x6ca6('0x16')][_0x6ca6('0x17')]}));}}else{_0x19e94f[_0x6ca6('0x1b')](dbH['sequelize'][_0x6ca6('0x13')](QUERY,{'type':dbH[_0x6ca6('0x15')][_0x6ca6('0x16')][_0x6ca6('0x17')]}));}}var _0x3a24aa=path[_0x6ca6('0x1d')](PATH);var _0x593f15=path[_0x6ca6('0x1e')](PATH,_0x6ca6('0x1f'));var _0x4bbe69=_0x231f4c['split']&&_0x19e94f[_0x6ca6('0x19')]>0x1;var _0x216701=[];if(!fs[_0x6ca6('0x20')](path[_0x6ca6('0x21')](_0x3a24aa,_0x593f15))&&_0x4bbe69){fs[_0x6ca6('0x22')](path['join'](_0x3a24aa,_0x593f15));}return BPromise[_0x6ca6('0x23')](_0x19e94f,function(_0x1d6caa){_0x216701[_0x6ca6('0x1b')](_0x1d6caa);})[_0x6ca6('0x12')](function(){for(var _0x3971a2=0x0;_0x3971a2<_0x216701[_0x6ca6('0x19')];_0x3971a2+=0x1){var _0x3c32ae;var _0x2a1e2d=_0x216701[_0x3971a2];if(_0x4bbe69){_0x3c32ae=path['join'](_0x3a24aa,_0x593f15,util['format'](_0x6ca6('0x24'),_0x593f15,_0x3971a2,_0x6ca6('0x25')));}else{_0x3c32ae=path[_0x6ca6('0x21')](_0x3a24aa,util[_0x6ca6('0xc')]('%s.%s',_0x593f15,'csv'));}fs[_0x6ca6('0x26')](_0x3c32ae,csv(_0x2a1e2d));}})['then'](function(){if(_0x4bbe69){zipdir(path['join'](_0x3a24aa,_0x593f15),{'saveTo':path[_0x6ca6('0x21')](_0x3a24aa,util[_0x6ca6('0xc')]('%s.%s',_0x593f15,_0x6ca6('0x27')))},function(_0xf829ee,_0xac50e8){});rimraf(path[_0x6ca6('0x21')](_0x3a24aa,_0x593f15),function(){});}})['then'](function(){logger[_0x6ca6('0xb')](util[_0x6ca6('0xc')](_0x6ca6('0x28'),EXTRACTED_REPORT_ID,_0x6ca6('0xd')));return analyticExtractedReport('Completed',_0x4bbe69?util[_0x6ca6('0xc')](_0x6ca6('0x29'),_0x593f15,_0x4bbe69?_0x6ca6('0x27'):_0x6ca6('0x25')):null);});})['catch'](function(_0x5ca7bc){logger['info'](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x6ca6('0xd')),util[_0x6ca6('0x2a')](_0x5ca7bc,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x6ca6('0x2b'));})['finally'](function(){process[_0x6ca6('0x2c')](EXIT_CODE);});}main();