a7033c8daff43a7e468e28929cfc87181500664f
[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 _0x16b3=['Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','then','splitSizeCsv','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','QueryTypes','SELECT','num','Empty','length','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','existsSync','join','mkdirSync','%s.%s','csv','writeFileSync','zip','zip\x20finished','info','CSV','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','finally','exit','util','path','lodash','to-csv','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x16b3,0x1c6));var _0x316b=function(_0x13e550,_0x2eb102){_0x13e550=_0x13e550-0x0;var _0x4f9a14=_0x16b3[_0x13e550];return _0x4f9a14;};'use strict';var util=require(_0x316b('0x0'));var path=require(_0x316b('0x1'));var _=require(_0x316b('0x2'));var csv=require(_0x316b('0x3'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0x316b('0x4'));var rimraf=require(_0x316b('0x5'));var db=require(_0x316b('0x6'))['db'];var dbH=require(_0x316b('0x6'))[_0x316b('0x7')];var logger=require(_0x316b('0x8'))(_0x316b('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x316b('0xa')][0x2]);var QUERY=process[_0x316b('0xa')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2c5062,_0x3ddf82){var _0x217824={'status':_0x2c5062};var _0x38736b={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3ddf82){_0x217824[_0x316b('0xb')]=_0x3ddf82;}return db[_0x316b('0xc')][_0x316b('0xd')](_0x217824,_0x38736b);}function main(){var _0x249778=0x1388;var _0x4bf4c7;logger['info'](util['format'](_0x316b('0xe'),EXTRACTED_REPORT_ID,'CSV'));return db[_0x316b('0xf')][_0x316b('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x316b('0x11'),'splitSizeCsv']})[_0x316b('0x12')](function(_0x226bf2){if(_0x226bf2){_0x4bf4c7=_0x226bf2;_0x249778=_0x4bf4c7[_0x316b('0x13')]||0x1388;}})[_0x316b('0x12')](function(){return dbH['sequelize'][_0x316b('0x14')](util[_0x316b('0x15')](_0x316b('0x16'),QUERY),{'type':dbH[_0x316b('0x17')][_0x316b('0x18')][_0x316b('0x19')]});})['then'](function(_0x460897){if(!_0x460897[0x0][_0x316b('0x1a')]){return analyticExtractedReport(_0x316b('0x1b'));}var _0x5667d5=[];var _0x5f3601=0x0;if(_0x4bf4c7['split']){if(_0x460897&&_0x460897[_0x316b('0x1c')]){var _0x5cf684=_[_0x316b('0x1d')](_0x460897[0x0]['num']/_0x249778);var _0x18e19f=Number[_0x316b('0x1e')](_0x460897[0x0][_0x316b('0x1a')]/_0x249778)?_0x460897[0x0][_0x316b('0x1a')]%_0x249778:0x0;_0x5cf684[_0x316b('0x1f')](function(_0x13ab31){if(_0x13ab31>0x0){_0x5f3601+=_0x249778;}_0x5667d5[_0x316b('0x20')](dbH[_0x316b('0x17')][_0x316b('0x14')](util[_0x316b('0x15')](_0x316b('0x21'),QUERY,_0x249778,_0x5f3601),{'type':dbH[_0x316b('0x17')][_0x316b('0x18')][_0x316b('0x19')]}));});if(_0x18e19f>0x0){_0x5f3601+=_0x249778;_0x5667d5[_0x316b('0x20')](dbH[_0x316b('0x17')][_0x316b('0x14')](util['format'](_0x316b('0x21'),QUERY,_0x18e19f,_0x5f3601),{'type':dbH['sequelize'][_0x316b('0x18')][_0x316b('0x19')]}));}}}else{_0x5667d5[_0x316b('0x20')](dbH['sequelize'][_0x316b('0x14')](QUERY,{'type':dbH[_0x316b('0x17')][_0x316b('0x18')][_0x316b('0x19')]}));}var _0x5bc1ee=path[_0x316b('0x22')](PATH);var _0x4f7bbf=path[_0x316b('0x23')](PATH,'.csv');var _0x430c98=_0x4bf4c7['split']&&_0x5667d5[_0x316b('0x1c')]>0x1;var _0x35c8a0=[];if(!fs[_0x316b('0x24')](path[_0x316b('0x25')](_0x5bc1ee,_0x4f7bbf))&&_0x430c98){fs[_0x316b('0x26')](path['join'](_0x5bc1ee,_0x4f7bbf));}return BPromise['each'](_0x5667d5,function(_0xe98720){_0x35c8a0[_0x316b('0x20')](_0xe98720);})['then'](function(){for(var _0x1d9825=0x0;_0x1d9825<_0x35c8a0[_0x316b('0x1c')];_0x1d9825+=0x1){var _0x137eb5;var _0x1c15ae=_0x35c8a0[_0x1d9825];if(_0x430c98){_0x137eb5=path[_0x316b('0x25')](_0x5bc1ee,_0x4f7bbf,util[_0x316b('0x15')]('%s%d.%s',_0x4f7bbf,_0x1d9825,'csv'));}else{_0x137eb5=path[_0x316b('0x25')](_0x5bc1ee,util[_0x316b('0x15')](_0x316b('0x27'),_0x4f7bbf,_0x316b('0x28')));}fs[_0x316b('0x29')](_0x137eb5,csv(_0x1c15ae));}})['then'](function(){if(_0x430c98){return new Promise(function(_0x5257f4){zipdir(path[_0x316b('0x25')](_0x5bc1ee,_0x4f7bbf),{'saveTo':path['join'](_0x5bc1ee,util[_0x316b('0x15')](_0x316b('0x27'),_0x4f7bbf,_0x316b('0x2a')))},function(_0x331698,_0x1e0e65){rimraf(path['join'](_0x5bc1ee,_0x4f7bbf),function(){});_0x5257f4(_0x316b('0x2b'));});});}})[_0x316b('0x12')](function(){logger[_0x316b('0x2c')](util[_0x316b('0x15')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x316b('0x2d')));return analyticExtractedReport(_0x316b('0x2e'),_0x430c98?util[_0x316b('0x15')]('%s.%s',_0x4f7bbf,_0x430c98?_0x316b('0x2a'):_0x316b('0x28')):null);});})[_0x316b('0x2f')](function(_0x31c90f){logger[_0x316b('0x2c')](util[_0x316b('0x15')](_0x316b('0x30'),EXTRACTED_REPORT_ID,'CSV'),util[_0x316b('0x31')](_0x31c90f,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x316b('0x32')](function(){process[_0x316b('0x33')](EXIT_CODE);});}main();