44b0b8fd2d89cce73daea74422459cc8b076a5a9
[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 _0xd0bb=['push','QueryTypes','basename','.csv','join','mkdirSync','each','length','csv','writeFileSync','%s.%s','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','path','lodash','bluebird','rimraf','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','update','info','format','CSV','Setting','split','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','num','Empty'];(function(_0x404eed,_0x5390c5){var _0xd45887=function(_0x1ee42b){while(--_0x1ee42b){_0x404eed['push'](_0x404eed['shift']());}};_0xd45887(++_0x5390c5);}(_0xd0bb,0x1eb));var _0xbd0b=function(_0x20f3bc,_0x34c2fd){_0x20f3bc=_0x20f3bc-0x0;var _0x2e0502=_0xd0bb[_0x20f3bc];return _0x2e0502;};'use strict';var util=require(_0xbd0b('0x0'));var path=require(_0xbd0b('0x1'));var _=require(_0xbd0b('0x2'));var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0xbd0b('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0xbd0b('0x4'));var db=require(_0xbd0b('0x5'))['db'];var dbH=require('../../mysqldb')[_0xbd0b('0x6')];var logger=require('../../config/logger')(_0xbd0b('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0xbd0b('0x8')][0x2]);var QUERY=process[_0xbd0b('0x8')][0x3];var PATH=process[_0xbd0b('0x8')][0x4];function analyticExtractedReport(_0x809599,_0x5eb975){var _0x2a4075={'status':_0x809599};var _0x4533ff={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5eb975){_0x2a4075[_0xbd0b('0x9')]=_0x5eb975;}return db[_0xbd0b('0xa')][_0xbd0b('0xb')](_0x2a4075,_0x4533ff);}function main(){var _0x53d5e8=0x1388;var _0x51cf98;logger[_0xbd0b('0xc')](util[_0xbd0b('0xd')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xbd0b('0xe')));return db[_0xbd0b('0xf')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xbd0b('0x10'),_0xbd0b('0x11')]})[_0xbd0b('0x12')](function(_0x315ed9){if(_0x315ed9){_0x51cf98=_0x315ed9;_0x53d5e8=_0x51cf98[_0xbd0b('0x11')]||0x1388;}})[_0xbd0b('0x12')](function(){return dbH[_0xbd0b('0x13')][_0xbd0b('0x14')](util[_0xbd0b('0xd')](_0xbd0b('0x15'),QUERY),{'type':dbH[_0xbd0b('0x13')]['QueryTypes'][_0xbd0b('0x16')]});})['then'](function(_0x4a8014){if(!_0x4a8014[0x0][_0xbd0b('0x17')]){return analyticExtractedReport(_0xbd0b('0x18'));}var _0x3183cf=[];var _0x40b075=0x0;var _0x39b0fe=!![];if(_0x4a8014&&_0x4a8014['length']){var _0x55e0a1=_0x4a8014[0x0][_0xbd0b('0x17')]%(_0x40b075+_0x53d5e8);if(_0x51cf98[_0xbd0b('0x10')]){for(;_0x39b0fe;_0x40b075+=_0x53d5e8,_0x55e0a1=_0x4a8014[0x0][_0xbd0b('0x17')]%(_0x40b075+_0x53d5e8)){if(_0x55e0a1==0x0||_0x55e0a1==_0x4a8014[0x0][_0xbd0b('0x17')]){_0x39b0fe=![];}_0x3183cf[_0xbd0b('0x19')](dbH[_0xbd0b('0x13')]['query'](util[_0xbd0b('0xd')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x53d5e8,_0x40b075),{'type':dbH[_0xbd0b('0x13')][_0xbd0b('0x1a')][_0xbd0b('0x16')]}));}}else{_0x3183cf[_0xbd0b('0x19')](dbH['sequelize'][_0xbd0b('0x14')](QUERY,{'type':dbH[_0xbd0b('0x13')][_0xbd0b('0x1a')]['SELECT']}));}}var _0x1c5b52=path['dirname'](PATH);var _0xc66b8=path[_0xbd0b('0x1b')](PATH,_0xbd0b('0x1c'));var _0x17a92a=_0x51cf98[_0xbd0b('0x10')]&&_0x3183cf['length']>0x1;var _0x75909f=[];if(!fs['existsSync'](path[_0xbd0b('0x1d')](_0x1c5b52,_0xc66b8))&&_0x17a92a){fs[_0xbd0b('0x1e')](path[_0xbd0b('0x1d')](_0x1c5b52,_0xc66b8));}return BPromise[_0xbd0b('0x1f')](_0x3183cf,function(_0xfd9f82){_0x75909f[_0xbd0b('0x19')](_0xfd9f82);})['then'](function(){for(var _0x382f76=0x0;_0x382f76<_0x75909f[_0xbd0b('0x20')];_0x382f76+=0x1){var _0x33b752;var _0x1b5a00=_0x75909f[_0x382f76];if(_0x17a92a){_0x33b752=path[_0xbd0b('0x1d')](_0x1c5b52,_0xc66b8,util[_0xbd0b('0xd')]('%s%d.%s',_0xc66b8,_0x382f76,_0xbd0b('0x21')));}else{_0x33b752=path[_0xbd0b('0x1d')](_0x1c5b52,util[_0xbd0b('0xd')]('%s.%s',_0xc66b8,'csv'));}fs[_0xbd0b('0x22')](_0x33b752,csv(_0x1b5a00));}})[_0xbd0b('0x12')](function(){if(_0x17a92a){zipdir(path[_0xbd0b('0x1d')](_0x1c5b52,_0xc66b8),{'saveTo':path[_0xbd0b('0x1d')](_0x1c5b52,util[_0xbd0b('0xd')](_0xbd0b('0x23'),_0xc66b8,_0xbd0b('0x24')))},function(_0x4bc752,_0x45f7d6){});rimraf(path[_0xbd0b('0x1d')](_0x1c5b52,_0xc66b8),function(){});}})['then'](function(){logger['info'](util[_0xbd0b('0xd')](_0xbd0b('0x25'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0xbd0b('0x26'),_0x17a92a?util[_0xbd0b('0xd')](_0xbd0b('0x23'),_0xc66b8,_0x17a92a?_0xbd0b('0x24'):_0xbd0b('0x21')):null);});})[_0xbd0b('0x27')](function(_0x5f224e){logger[_0xbd0b('0xc')](util[_0xbd0b('0xd')](_0xbd0b('0x28'),EXTRACTED_REPORT_ID,_0xbd0b('0xe')),util[_0xbd0b('0x29')](_0x5f224e,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xbd0b('0x2a'));});}main();