Built motion from commit ddca4d0d.|2.5.47
[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 _0xcf5c=['../../mysqldb','dbH','../../config/logger','analytics','argv','update','info','format','CSV','Setting','find','split','splitSizeCsv','then','sequelize','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','num','Empty','length','range','isInteger','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','push','query','dirname','basename','join','each','csv','writeFileSync','zip','zip\x20finished','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','exit','lodash','bluebird'];(function(_0x59e8a7,_0x2e6fe6){var _0x17c181=function(_0x279283){while(--_0x279283){_0x59e8a7['push'](_0x59e8a7['shift']());}};_0x17c181(++_0x2e6fe6);}(_0xcf5c,0xa6));var _0xccf5=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0xcf5c[_0x3bf83f];return _0x22c4a9;};'use strict';var util=require('util');var path=require('path');var _=require(_0xccf5('0x0'));var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0xccf5('0x1'));var zipdir=require('zip-dir');var rimraf=require('rimraf');var db=require(_0xccf5('0x2'))['db'];var dbH=require('../../mysqldb')[_0xccf5('0x3')];var logger=require(_0xccf5('0x4'))(_0xccf5('0x5'));var EXTRACTED_REPORT_ID=Number(process[_0xccf5('0x6')][0x2]);var QUERY=process[_0xccf5('0x6')][0x3];var PATH=process[_0xccf5('0x6')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xde30d5,_0x5a85de){var _0x6eb568={'status':_0xde30d5};var _0x16e491={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5a85de){_0x6eb568['savename']=_0x5a85de;}return db['AnalyticExtractedReport'][_0xccf5('0x7')](_0x6eb568,_0x16e491);}function main(){var _0x31042a=0x1388;var _0x557ff7;logger[_0xccf5('0x8')](util[_0xccf5('0x9')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xccf5('0xa')));return db[_0xccf5('0xb')][_0xccf5('0xc')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xccf5('0xd'),_0xccf5('0xe')]})['then'](function(_0x54e719){if(_0x54e719){_0x557ff7=_0x54e719;_0x31042a=_0x557ff7['splitSizeCsv']||0x1388;}})[_0xccf5('0xf')](function(){return dbH[_0xccf5('0x10')]['query'](util['format'](_0xccf5('0x11'),QUERY),{'type':dbH[_0xccf5('0x10')]['QueryTypes'][_0xccf5('0x12')]});})[_0xccf5('0xf')](function(_0x1b26ab){if(!_0x1b26ab[0x0][_0xccf5('0x13')]){return analyticExtractedReport(_0xccf5('0x14'));}var _0x214446=[];var _0x5bac12=0x0;if(_0x557ff7[_0xccf5('0xd')]){if(_0x1b26ab&&_0x1b26ab[_0xccf5('0x15')]){var _0x5189bc=_[_0xccf5('0x16')](_0x1b26ab[0x0][_0xccf5('0x13')]/_0x31042a);var _0x4ee381=Number[_0xccf5('0x17')](_0x1b26ab[0x0]['num']/_0x31042a)?_0x1b26ab[0x0][_0xccf5('0x13')]%_0x31042a:0x0;_0x5189bc['forEach'](function(_0x53f263){if(_0x53f263>0x0){_0x5bac12+=_0x31042a;}_0x214446['push'](dbH[_0xccf5('0x10')]['query'](util[_0xccf5('0x9')](_0xccf5('0x18'),QUERY,_0x31042a,_0x5bac12),{'type':dbH[_0xccf5('0x10')][_0xccf5('0x19')][_0xccf5('0x12')]}));});if(_0x4ee381>0x0){_0x5bac12+=_0x31042a;_0x214446[_0xccf5('0x1a')](dbH[_0xccf5('0x10')][_0xccf5('0x1b')](util['format'](_0xccf5('0x18'),QUERY,_0x4ee381,_0x5bac12),{'type':dbH['sequelize'][_0xccf5('0x19')][_0xccf5('0x12')]}));}}}else{_0x214446[_0xccf5('0x1a')](dbH[_0xccf5('0x10')][_0xccf5('0x1b')](QUERY,{'type':dbH['sequelize'][_0xccf5('0x19')][_0xccf5('0x12')]}));}var _0x22ff3d=path[_0xccf5('0x1c')](PATH);var _0x2b2f2d=path[_0xccf5('0x1d')](PATH,'.csv');var _0x4213c2=_0x557ff7[_0xccf5('0xd')]&&_0x214446[_0xccf5('0x15')]>0x1;var _0xb8132e=[];if(!fs['existsSync'](path[_0xccf5('0x1e')](_0x22ff3d,_0x2b2f2d))&&_0x4213c2){fs['mkdirSync'](path['join'](_0x22ff3d,_0x2b2f2d));}return BPromise[_0xccf5('0x1f')](_0x214446,function(_0x218ba4){_0xb8132e['push'](_0x218ba4);})[_0xccf5('0xf')](function(){for(var _0x2b81d7=0x0;_0x2b81d7<_0xb8132e[_0xccf5('0x15')];_0x2b81d7+=0x1){var _0x4dce91;var _0x55b55b=_0xb8132e[_0x2b81d7];if(_0x4213c2){_0x4dce91=path[_0xccf5('0x1e')](_0x22ff3d,_0x2b2f2d,util[_0xccf5('0x9')]('%s%d.%s',_0x2b2f2d,_0x2b81d7,_0xccf5('0x20')));}else{_0x4dce91=path[_0xccf5('0x1e')](_0x22ff3d,util[_0xccf5('0x9')]('%s.%s',_0x2b2f2d,_0xccf5('0x20')));}fs[_0xccf5('0x21')](_0x4dce91,csv(_0x55b55b));}})[_0xccf5('0xf')](function(){if(_0x4213c2){return new Promise(function(_0x464f79){zipdir(path[_0xccf5('0x1e')](_0x22ff3d,_0x2b2f2d),{'saveTo':path['join'](_0x22ff3d,util['format']('%s.%s',_0x2b2f2d,_0xccf5('0x22')))},function(_0x451e48,_0x579011){rimraf(path[_0xccf5('0x1e')](_0x22ff3d,_0x2b2f2d),function(){});_0x464f79(_0xccf5('0x23'));});});}})[_0xccf5('0xf')](function(){logger[_0xccf5('0x8')](util[_0xccf5('0x9')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0xccf5('0x24'),_0x4213c2?util[_0xccf5('0x9')]('%s.%s',_0x2b2f2d,_0x4213c2?_0xccf5('0x22'):'csv'):null);});})[_0xccf5('0x25')](function(_0x131fcc){logger[_0xccf5('0x8')](util[_0xccf5('0x9')](_0xccf5('0x26'),EXTRACTED_REPORT_ID,_0xccf5('0xa')),util[_0xccf5('0x27')](_0x131fcc,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xccf5('0x28'));})['finally'](function(){process[_0xccf5('0x29')](EXIT_CODE);});}main();