30276b1a54159f1ee4457825b78ebe88d6f7ea1b
[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 _0x5990=['rimraf','../../mysqldb','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','then','splitSizeCsv','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','num','Empty','length','push','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','existsSync','mkdirSync','join','each','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','util','path','to-csv','bluebird','zip-dir'];(function(_0x291cbf,_0x3be4ea){var _0x1a33f7=function(_0x2dd17e){while(--_0x2dd17e){_0x291cbf['push'](_0x291cbf['shift']());}};_0x1a33f7(++_0x3be4ea);}(_0x5990,0x8b));var _0x0599=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x5990[_0x321bb2];return _0x9c12ed;};'use strict';var util=require(_0x0599('0x0'));var path=require(_0x0599('0x1'));var _=require('lodash');var csv=require(_0x0599('0x2'));var fs=require('fs');var BPromise=require(_0x0599('0x3'));var zipdir=require(_0x0599('0x4'));var rimraf=require(_0x0599('0x5'));var db=require(_0x0599('0x6'))['db'];var dbH=require(_0x0599('0x6'))['dbH'];var logger=require('../../config/logger')(_0x0599('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x0599('0x8')][0x2]);var QUERY=process[_0x0599('0x8')][0x3];var PATH=process[_0x0599('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x5816ea,_0xae5bbe){var _0x2f7450={'status':_0x5816ea};var _0x3ca9a5={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xae5bbe){_0x2f7450[_0x0599('0x9')]=_0xae5bbe;}return db[_0x0599('0xa')][_0x0599('0xb')](_0x2f7450,_0x3ca9a5);}function main(){var _0x53261b=0x1388;var _0x53f66f;logger[_0x0599('0xc')](util[_0x0599('0xd')](_0x0599('0xe'),EXTRACTED_REPORT_ID,_0x0599('0xf')));return db[_0x0599('0x10')][_0x0599('0x11')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x0599('0x12'),'splitSizeCsv']})[_0x0599('0x13')](function(_0x22c5ff){if(_0x22c5ff){_0x53f66f=_0x22c5ff;_0x53261b=_0x53f66f[_0x0599('0x14')]||0x1388;}})[_0x0599('0x13')](function(){return dbH[_0x0599('0x15')][_0x0599('0x16')](util[_0x0599('0xd')](_0x0599('0x17'),QUERY),{'type':dbH['sequelize']['QueryTypes']['SELECT']});})[_0x0599('0x13')](function(_0x533ff7){if(!_0x533ff7[0x0][_0x0599('0x18')]){return analyticExtractedReport(_0x0599('0x19'));}var _0x43b918=[];var _0x115539=0x0;var _0x11590c=!![];if(_0x533ff7&&_0x533ff7[_0x0599('0x1a')]){var _0x58bd70=_0x533ff7[0x0][_0x0599('0x18')]%(_0x115539+_0x53261b);if(_0x53f66f[_0x0599('0x12')]){for(;_0x11590c;_0x115539+=_0x53261b,_0x58bd70=_0x533ff7[0x0][_0x0599('0x18')]%(_0x115539+_0x53261b)){if(_0x58bd70==0x0||_0x58bd70==_0x533ff7[0x0][_0x0599('0x18')]){_0x11590c=![];}_0x43b918[_0x0599('0x1b')](dbH[_0x0599('0x15')][_0x0599('0x16')](util[_0x0599('0xd')](_0x0599('0x1c'),QUERY,_0x53261b,_0x115539),{'type':dbH[_0x0599('0x15')][_0x0599('0x1d')][_0x0599('0x1e')]}));}}else{_0x43b918[_0x0599('0x1b')](dbH[_0x0599('0x15')]['query'](QUERY,{'type':dbH[_0x0599('0x15')]['QueryTypes'][_0x0599('0x1e')]}));}}var _0x14e748=path[_0x0599('0x1f')](PATH);var _0xa1995c=path[_0x0599('0x20')](PATH,'.csv');var _0x52858f=_0x53f66f[_0x0599('0x12')]&&_0x43b918[_0x0599('0x1a')]>0x1;var _0x29bbee=[];if(!fs[_0x0599('0x21')](path['join'](_0x14e748,_0xa1995c))&&_0x52858f){fs[_0x0599('0x22')](path[_0x0599('0x23')](_0x14e748,_0xa1995c));}return BPromise[_0x0599('0x24')](_0x43b918,function(_0x569900){_0x29bbee[_0x0599('0x1b')](_0x569900);})[_0x0599('0x13')](function(){for(var _0x5bb0c6=0x0;_0x5bb0c6<_0x29bbee[_0x0599('0x1a')];_0x5bb0c6+=0x1){var _0x12acab;var _0x2b8e44=_0x29bbee[_0x5bb0c6];if(_0x52858f){_0x12acab=path[_0x0599('0x23')](_0x14e748,_0xa1995c,util[_0x0599('0xd')]('%s%d.%s',_0xa1995c,_0x5bb0c6,_0x0599('0x25')));}else{_0x12acab=path['join'](_0x14e748,util[_0x0599('0xd')](_0x0599('0x26'),_0xa1995c,_0x0599('0x25')));}fs[_0x0599('0x27')](_0x12acab,csv(_0x2b8e44));}})[_0x0599('0x13')](function(){if(_0x52858f){zipdir(path[_0x0599('0x23')](_0x14e748,_0xa1995c),{'saveTo':path[_0x0599('0x23')](_0x14e748,util['format']('%s.%s',_0xa1995c,_0x0599('0x28')))},function(_0x2ec3f5,_0x3da8b6){});rimraf(path[_0x0599('0x23')](_0x14e748,_0xa1995c),function(){});}})[_0x0599('0x13')](function(){logger[_0x0599('0xc')](util[_0x0599('0xd')](_0x0599('0x29'),EXTRACTED_REPORT_ID,_0x0599('0xf')));return analyticExtractedReport(_0x0599('0x2a'),_0x52858f?util[_0x0599('0xd')](_0x0599('0x26'),_0xa1995c,_0x52858f?_0x0599('0x28'):_0x0599('0x25')):null);});})['catch'](function(_0x47343b){logger[_0x0599('0xc')](util[_0x0599('0xd')](_0x0599('0x2b'),EXTRACTED_REPORT_ID,'CSV'),util[_0x0599('0x2c')](_0x47343b,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x0599('0x2d'));})[_0x0599('0x2e')](function(){process[_0x0599('0x2f')](EXIT_CODE);});}main();