Built motion from commit (unavailable).|2.5.10
[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 _0x4bc3=['length','existsSync','join','mkdirSync','each','csv','writeFileSync','zip','info','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','to-csv','bluebird','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','find','splitSizeCsv','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','num','Empty','split','push','sequelize','QueryTypes','dirname','basename'];(function(_0x308851,_0x5eec42){var _0x143841=function(_0x136bf2){while(--_0x136bf2){_0x308851['push'](_0x308851['shift']());}};_0x143841(++_0x5eec42);}(_0x4bc3,0x16e));var _0x34bc=function(_0x5a3cf0,_0x160a68){_0x5a3cf0=_0x5a3cf0-0x0;var _0x5a64ee=_0x4bc3[_0x5a3cf0];return _0x5a64ee;};'use strict';var util=require(_0x34bc('0x0'));var path=require(_0x34bc('0x1'));var _=require('lodash');var csv=require(_0x34bc('0x2'));var fs=require('fs');var BPromise=require(_0x34bc('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0x34bc('0x4'));var db=require(_0x34bc('0x5'))['db'];var dbH=require(_0x34bc('0x5'))[_0x34bc('0x6')];var logger=require(_0x34bc('0x7'))(_0x34bc('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x34bc('0x9')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x34bc('0x9')][0x4];function analyticExtractedReport(_0x50320d,_0x502087){var _0x18a01c={'status':_0x50320d};var _0x474108={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x502087){_0x18a01c[_0x34bc('0xa')]=_0x502087;}return db[_0x34bc('0xb')][_0x34bc('0xc')](_0x18a01c,_0x474108);}function main(){var _0x41b2ff=0x1388;var _0x5de8b5;logger['info'](util[_0x34bc('0xd')](_0x34bc('0xe'),EXTRACTED_REPORT_ID,_0x34bc('0xf')));return db['Setting'][_0x34bc('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x34bc('0x11')]})[_0x34bc('0x12')](function(_0x164fb2){if(_0x164fb2){_0x5de8b5=_0x164fb2;_0x41b2ff=_0x5de8b5['splitSizeCsv']||0x1388;}})[_0x34bc('0x12')](function(){return dbH['sequelize'][_0x34bc('0x13')](util[_0x34bc('0xd')](_0x34bc('0x14'),QUERY),{'type':dbH['sequelize']['QueryTypes'][_0x34bc('0x15')]});})['then'](function(_0x3e93bf){if(!_0x3e93bf[0x0][_0x34bc('0x16')]){return analyticExtractedReport(_0x34bc('0x17'));}var _0x25da29=[];var _0x2db2dd=0x0;var _0x69542f=!![];if(_0x3e93bf&&_0x3e93bf['length']){var _0x4fa0ab=_0x3e93bf[0x0]['num']%(_0x2db2dd+_0x41b2ff);if(_0x5de8b5[_0x34bc('0x18')]){for(;_0x69542f;_0x2db2dd+=_0x41b2ff,_0x4fa0ab=_0x3e93bf[0x0][_0x34bc('0x16')]%(_0x2db2dd+_0x41b2ff)){if(_0x4fa0ab==0x0||_0x4fa0ab==_0x3e93bf[0x0][_0x34bc('0x16')]){_0x69542f=![];}_0x25da29[_0x34bc('0x19')](dbH['sequelize'][_0x34bc('0x13')](util[_0x34bc('0xd')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x41b2ff,_0x2db2dd),{'type':dbH[_0x34bc('0x1a')][_0x34bc('0x1b')]['SELECT']}));}}else{_0x25da29[_0x34bc('0x19')](dbH[_0x34bc('0x1a')][_0x34bc('0x13')](QUERY,{'type':dbH[_0x34bc('0x1a')][_0x34bc('0x1b')][_0x34bc('0x15')]}));}}var _0x48087e=path[_0x34bc('0x1c')](PATH);var _0x3c9939=path[_0x34bc('0x1d')](PATH,'.csv');var _0x4c4b9a=_0x5de8b5[_0x34bc('0x18')]&&_0x25da29[_0x34bc('0x1e')]>0x1;var _0x4263de=[];if(!fs[_0x34bc('0x1f')](path[_0x34bc('0x20')](_0x48087e,_0x3c9939))&&_0x4c4b9a){fs[_0x34bc('0x21')](path[_0x34bc('0x20')](_0x48087e,_0x3c9939));}return BPromise[_0x34bc('0x22')](_0x25da29,function(_0x19472e){_0x4263de[_0x34bc('0x19')](_0x19472e);})[_0x34bc('0x12')](function(){for(var _0x1edcb0=0x0;_0x1edcb0<_0x4263de['length'];_0x1edcb0+=0x1){var _0x43e527;var _0x48ec13=_0x4263de[_0x1edcb0];if(_0x4c4b9a){_0x43e527=path['join'](_0x48087e,_0x3c9939,util[_0x34bc('0xd')]('%s%d.%s',_0x3c9939,_0x1edcb0,_0x34bc('0x23')));}else{_0x43e527=path[_0x34bc('0x20')](_0x48087e,util[_0x34bc('0xd')]('%s.%s',_0x3c9939,_0x34bc('0x23')));}fs[_0x34bc('0x24')](_0x43e527,csv(_0x48ec13));}})[_0x34bc('0x12')](function(){if(_0x4c4b9a){zipdir(path[_0x34bc('0x20')](_0x48087e,_0x3c9939),{'saveTo':path[_0x34bc('0x20')](_0x48087e,util[_0x34bc('0xd')]('%s.%s',_0x3c9939,_0x34bc('0x25')))},function(_0x1fb7c5,_0x22aacc){});rimraf(path[_0x34bc('0x20')](_0x48087e,_0x3c9939),function(){});}})[_0x34bc('0x12')](function(){logger[_0x34bc('0x26')](util['format'](_0x34bc('0x27'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport('Completed',_0x4c4b9a?util[_0x34bc('0xd')]('%s.%s',_0x3c9939,_0x4c4b9a?_0x34bc('0x25'):_0x34bc('0x23')):null);});})[_0x34bc('0x28')](function(_0x452a51){logger[_0x34bc('0x26')](util[_0x34bc('0xd')](_0x34bc('0x29'),EXTRACTED_REPORT_ID,'CSV'),util[_0x34bc('0x2a')](_0x452a51,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x34bc('0x2b'));});}main();