402269795e6ffd7d7deee92edd55575b4ecd7314
[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 _0x0df5=['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','Failed','finally','exit','util','path','lodash','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','sequelize','query','QueryTypes','SELECT','num','length','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','existsSync','join','mkdirSync','each','%s%d.%s','%s.%s','csv'];(function(_0x19dce7,_0x5eca16){var _0x7cdd9a=function(_0x3fba13){while(--_0x3fba13){_0x19dce7['push'](_0x19dce7['shift']());}};_0x7cdd9a(++_0x5eca16);}(_0x0df5,0x6c));var _0x50df=function(_0x3eeb0c,_0x5eb2ca){_0x3eeb0c=_0x3eeb0c-0x0;var _0x647b33=_0x0df5[_0x3eeb0c];return _0x647b33;};'use strict';var util=require(_0x50df('0x0'));var path=require(_0x50df('0x1'));var _=require(_0x50df('0x2'));var csv=require(_0x50df('0x3'));var fs=require('fs');var BPromise=require(_0x50df('0x4'));var zipdir=require(_0x50df('0x5'));var rimraf=require(_0x50df('0x6'));var db=require(_0x50df('0x7'))['db'];var dbH=require(_0x50df('0x7'))[_0x50df('0x8')];var logger=require(_0x50df('0x9'))(_0x50df('0xa'));var EXTRACTED_REPORT_ID=Number(process[_0x50df('0xb')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x50df('0xb')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xe3c37d,_0x152b65){var _0x41d2a2={'status':_0xe3c37d};var _0xa11dbc={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x152b65){_0x41d2a2[_0x50df('0xc')]=_0x152b65;}return db['AnalyticExtractedReport'][_0x50df('0xd')](_0x41d2a2,_0xa11dbc);}function main(){var _0x77f9cb=0x1388;var _0x56b95a;logger['info'](util[_0x50df('0xe')](_0x50df('0xf'),EXTRACTED_REPORT_ID,_0x50df('0x10')));return db[_0x50df('0x11')][_0x50df('0x12')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x50df('0x13'),_0x50df('0x14')]})[_0x50df('0x15')](function(_0x4205de){if(_0x4205de){_0x56b95a=_0x4205de;_0x77f9cb=_0x56b95a[_0x50df('0x14')]||0x1388;}})[_0x50df('0x15')](function(){return dbH[_0x50df('0x16')][_0x50df('0x17')](util[_0x50df('0xe')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x50df('0x16')][_0x50df('0x18')][_0x50df('0x19')]});})['then'](function(_0x7d7743){if(!_0x7d7743[0x0][_0x50df('0x1a')]){return analyticExtractedReport('Empty');}var _0x489b19=[];var _0x5ca7d3=0x0;if(_0x56b95a[_0x50df('0x13')]){if(_0x7d7743&&_0x7d7743[_0x50df('0x1b')]){var _0x209bf8=_[_0x50df('0x1c')](_0x7d7743[0x0]['num']/_0x77f9cb);var _0x9a32e5=Number[_0x50df('0x1d')](_0x7d7743[0x0][_0x50df('0x1a')]/_0x77f9cb)?_0x7d7743[0x0][_0x50df('0x1a')]%_0x77f9cb:0x0;_0x209bf8[_0x50df('0x1e')](function(_0x5c8716){if(_0x5c8716>0x0){_0x5ca7d3+=_0x77f9cb;}_0x489b19[_0x50df('0x1f')](dbH['sequelize']['query'](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x77f9cb,_0x5ca7d3),{'type':dbH[_0x50df('0x16')][_0x50df('0x18')]['SELECT']}));});if(_0x9a32e5>0x0){_0x5ca7d3+=_0x77f9cb;_0x489b19[_0x50df('0x1f')](dbH[_0x50df('0x16')]['query'](util[_0x50df('0xe')](_0x50df('0x20'),QUERY,_0x9a32e5,_0x5ca7d3),{'type':dbH[_0x50df('0x16')][_0x50df('0x18')][_0x50df('0x19')]}));}}}else{_0x489b19[_0x50df('0x1f')](dbH[_0x50df('0x16')][_0x50df('0x17')](QUERY,{'type':dbH[_0x50df('0x16')][_0x50df('0x18')][_0x50df('0x19')]}));}var _0x1d4fb0=path[_0x50df('0x21')](PATH);var _0x28653d=path[_0x50df('0x22')](PATH,'.csv');var _0x4d0fa3=_0x56b95a['split']&&_0x489b19[_0x50df('0x1b')]>0x1;var _0x1ee614=[];if(!fs[_0x50df('0x23')](path[_0x50df('0x24')](_0x1d4fb0,_0x28653d))&&_0x4d0fa3){fs[_0x50df('0x25')](path[_0x50df('0x24')](_0x1d4fb0,_0x28653d));}return BPromise[_0x50df('0x26')](_0x489b19,function(_0x20b967){_0x1ee614[_0x50df('0x1f')](_0x20b967);})['then'](function(){for(var _0x10a720=0x0;_0x10a720<_0x1ee614[_0x50df('0x1b')];_0x10a720+=0x1){var _0x4fdaf7;var _0xa2a4c4=_0x1ee614[_0x10a720];if(_0x4d0fa3){_0x4fdaf7=path[_0x50df('0x24')](_0x1d4fb0,_0x28653d,util[_0x50df('0xe')](_0x50df('0x27'),_0x28653d,_0x10a720,'csv'));}else{_0x4fdaf7=path[_0x50df('0x24')](_0x1d4fb0,util[_0x50df('0xe')](_0x50df('0x28'),_0x28653d,_0x50df('0x29')));}fs['writeFileSync'](_0x4fdaf7,csv(_0xa2a4c4));}})[_0x50df('0x15')](function(){if(_0x4d0fa3){return new Promise(function(_0x2692a6){zipdir(path['join'](_0x1d4fb0,_0x28653d),{'saveTo':path['join'](_0x1d4fb0,util[_0x50df('0xe')]('%s.%s',_0x28653d,_0x50df('0x2a')))},function(_0x15ab98,_0x574274){rimraf(path[_0x50df('0x24')](_0x1d4fb0,_0x28653d),function(){});_0x2692a6('zip\x20finished');});});}})[_0x50df('0x15')](function(){logger[_0x50df('0x2b')](util[_0x50df('0xe')](_0x50df('0x2c'),EXTRACTED_REPORT_ID,_0x50df('0x10')));return analyticExtractedReport('Completed',_0x4d0fa3?util[_0x50df('0xe')]('%s.%s',_0x28653d,_0x4d0fa3?_0x50df('0x2a'):_0x50df('0x29')):null);});})[_0x50df('0x2d')](function(_0x392e97){logger[_0x50df('0x2b')](util[_0x50df('0xe')](_0x50df('0x2e'),EXTRACTED_REPORT_ID,_0x50df('0x10')),util['inspect'](_0x392e97,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x50df('0x2f'));})[_0x50df('0x30')](function(){process[_0x50df('0x31')](EXIT_CODE);});}main();