Built motion from commit f7863d46.|2.5.41
[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 _0x67b7=['argv','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','num','Empty','range','isInteger','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','push','length','existsSync','join','mkdirSync','each','%s%d.%s','csv','%s.%s','writeFileSync','zip\x20finished','info','Completed','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger'];(function(_0x48c9b3,_0x1fb678){var _0x4c782f=function(_0x4b3842){while(--_0x4b3842){_0x48c9b3['push'](_0x48c9b3['shift']());}};_0x4c782f(++_0x1fb678);}(_0x67b7,0xdf));var _0x767b=function(_0x4a2379,_0x28effe){_0x4a2379=_0x4a2379-0x0;var _0x379500=_0x67b7[_0x4a2379];return _0x379500;};'use strict';var util=require('util');var path=require('path');var _=require('lodash');var csv=require(_0x767b('0x0'));var fs=require('fs');var BPromise=require(_0x767b('0x1'));var zipdir=require(_0x767b('0x2'));var rimraf=require(_0x767b('0x3'));var db=require(_0x767b('0x4'))['db'];var dbH=require('../../mysqldb')[_0x767b('0x5')];var logger=require(_0x767b('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x767b('0x7')][0x2]);var QUERY=process[_0x767b('0x7')][0x3];var PATH=process[_0x767b('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x5d9c6d,_0xd8c7a0){var _0x1ba6ca={'status':_0x5d9c6d};var _0xe3f25c={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xd8c7a0){_0x1ba6ca['savename']=_0xd8c7a0;}return db['AnalyticExtractedReport'][_0x767b('0x8')](_0x1ba6ca,_0xe3f25c);}function main(){var _0x352298=0x1388;var _0x295891;logger['info'](util[_0x767b('0x9')](_0x767b('0xa'),EXTRACTED_REPORT_ID,_0x767b('0xb')));return db[_0x767b('0xc')][_0x767b('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x767b('0xe'),_0x767b('0xf')]})['then'](function(_0x112175){if(_0x112175){_0x295891=_0x112175;_0x352298=_0x295891[_0x767b('0xf')]||0x1388;}})[_0x767b('0x10')](function(){return dbH[_0x767b('0x11')][_0x767b('0x12')](util[_0x767b('0x9')](_0x767b('0x13'),QUERY),{'type':dbH['sequelize']['QueryTypes'][_0x767b('0x14')]});})[_0x767b('0x10')](function(_0x1a651a){if(!_0x1a651a[0x0][_0x767b('0x15')]){return analyticExtractedReport(_0x767b('0x16'));}var _0xe716fa=[];var _0x79643a=0x0;if(_0x295891[_0x767b('0xe')]){if(_0x1a651a&&_0x1a651a['length']){var _0x186c48=_[_0x767b('0x17')](_0x1a651a[0x0][_0x767b('0x15')]/_0x352298);var _0x53df90=Number[_0x767b('0x18')](_0x1a651a[0x0]['num']/_0x352298)?_0x1a651a[0x0][_0x767b('0x15')]%_0x352298:0x0;_0x186c48['forEach'](function(_0x5f4763){if(_0x5f4763>0x0){_0x79643a+=_0x352298;}_0xe716fa['push'](dbH[_0x767b('0x11')][_0x767b('0x12')](util['format'](_0x767b('0x19'),QUERY,_0x352298,_0x79643a),{'type':dbH[_0x767b('0x11')][_0x767b('0x1a')]['SELECT']}));});if(_0x53df90>0x0){_0x79643a+=_0x352298;_0xe716fa[_0x767b('0x1b')](dbH[_0x767b('0x11')][_0x767b('0x12')](util[_0x767b('0x9')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x53df90,_0x79643a),{'type':dbH['sequelize'][_0x767b('0x1a')][_0x767b('0x14')]}));}}}else{_0xe716fa['push'](dbH['sequelize'][_0x767b('0x12')](QUERY,{'type':dbH[_0x767b('0x11')]['QueryTypes']['SELECT']}));}var _0x25ca51=path['dirname'](PATH);var _0x1240b6=path['basename'](PATH,'.csv');var _0x4433e4=_0x295891[_0x767b('0xe')]&&_0xe716fa[_0x767b('0x1c')]>0x1;var _0x2bc41d=[];if(!fs[_0x767b('0x1d')](path[_0x767b('0x1e')](_0x25ca51,_0x1240b6))&&_0x4433e4){fs[_0x767b('0x1f')](path[_0x767b('0x1e')](_0x25ca51,_0x1240b6));}return BPromise[_0x767b('0x20')](_0xe716fa,function(_0x4ede8b){_0x2bc41d['push'](_0x4ede8b);})[_0x767b('0x10')](function(){for(var _0x7b2684=0x0;_0x7b2684<_0x2bc41d[_0x767b('0x1c')];_0x7b2684+=0x1){var _0xfdc24c;var _0x483957=_0x2bc41d[_0x7b2684];if(_0x4433e4){_0xfdc24c=path['join'](_0x25ca51,_0x1240b6,util['format'](_0x767b('0x21'),_0x1240b6,_0x7b2684,_0x767b('0x22')));}else{_0xfdc24c=path['join'](_0x25ca51,util['format'](_0x767b('0x23'),_0x1240b6,'csv'));}fs[_0x767b('0x24')](_0xfdc24c,csv(_0x483957));}})['then'](function(){if(_0x4433e4){return new Promise(function(_0x3703c0){zipdir(path[_0x767b('0x1e')](_0x25ca51,_0x1240b6),{'saveTo':path[_0x767b('0x1e')](_0x25ca51,util['format'](_0x767b('0x23'),_0x1240b6,'zip'))},function(_0x4af8cc,_0x1f7648){rimraf(path['join'](_0x25ca51,_0x1240b6),function(){});_0x3703c0(_0x767b('0x25'));});});}})['then'](function(){logger[_0x767b('0x26')](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x767b('0xb')));return analyticExtractedReport(_0x767b('0x27'),_0x4433e4?util['format']('%s.%s',_0x1240b6,_0x4433e4?_0x767b('0x28'):_0x767b('0x22')):null);});})[_0x767b('0x29')](function(_0x4c5ac5){logger[_0x767b('0x26')](util[_0x767b('0x9')](_0x767b('0x2a'),EXTRACTED_REPORT_ID,'CSV'),util[_0x767b('0x2b')](_0x4c5ac5,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x767b('0x2c'));})[_0x767b('0x2d')](function(){process['exit'](EXIT_CODE);});}main();