2049ffa670f119a16dce1cfb4594fd37552c099d
[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 _0xd206=['num','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','length','join','each','%s%d.%s','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','inspect','Failed','path','lodash','to-csv','zip-dir','rimraf','../../mysqldb','dbH','analytics','argv','savename','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','split','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT'];(function(_0x5e8874,_0x134292){var _0x4bf1de=function(_0x941a8e){while(--_0x941a8e){_0x5e8874['push'](_0x5e8874['shift']());}};_0x4bf1de(++_0x134292);}(_0xd206,0xba));var _0x6d20=function(_0x46d0c9,_0x526bfa){_0x46d0c9=_0x46d0c9-0x0;var _0x174506=_0xd206[_0x46d0c9];return _0x174506;};'use strict';var util=require('util');var path=require(_0x6d20('0x0'));var _=require(_0x6d20('0x1'));var csv=require(_0x6d20('0x2'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0x6d20('0x3'));var rimraf=require(_0x6d20('0x4'));var db=require(_0x6d20('0x5'))['db'];var dbH=require(_0x6d20('0x5'))[_0x6d20('0x6')];var logger=require('../../config/logger')(_0x6d20('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x6d20('0x8')][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];function analyticExtractedReport(_0x50ee8d,_0x5c0418){var _0x2c48db={'status':_0x50ee8d};var _0x5c7927={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5c0418){_0x2c48db[_0x6d20('0x9')]=_0x5c0418;}return db['AnalyticExtractedReport'][_0x6d20('0xa')](_0x2c48db,_0x5c7927);}function main(){var _0x4f5828=0x1388;var _0x254080;logger[_0x6d20('0xb')](util[_0x6d20('0xc')](_0x6d20('0xd'),EXTRACTED_REPORT_ID,_0x6d20('0xe')));return db[_0x6d20('0xf')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x6d20('0x10'),_0x6d20('0x11')]})[_0x6d20('0x12')](function(_0x10f82c){if(_0x10f82c){_0x254080=_0x10f82c;_0x4f5828=_0x254080['splitSizeCsv']||0x1388;}})[_0x6d20('0x12')](function(){return dbH[_0x6d20('0x13')][_0x6d20('0x14')](util['format'](_0x6d20('0x15'),QUERY),{'type':dbH[_0x6d20('0x13')][_0x6d20('0x16')][_0x6d20('0x17')]});})['then'](function(_0x216df0){if(!_0x216df0[0x0][_0x6d20('0x18')]){return analyticExtractedReport('Empty');}var _0x592a36=[];var _0x1cc71c=0x0;var _0x4c675f=!![];if(_0x216df0&&_0x216df0['length']){var _0x2a3ca7=_0x216df0[0x0][_0x6d20('0x18')]%(_0x1cc71c+_0x4f5828);if(_0x254080[_0x6d20('0x10')]){for(;_0x4c675f;_0x1cc71c+=_0x4f5828,_0x2a3ca7=_0x216df0[0x0][_0x6d20('0x18')]%(_0x1cc71c+_0x4f5828)){if(_0x2a3ca7==0x0||_0x2a3ca7==_0x216df0[0x0][_0x6d20('0x18')]){_0x4c675f=![];}_0x592a36[_0x6d20('0x19')](dbH[_0x6d20('0x13')][_0x6d20('0x14')](util[_0x6d20('0xc')](_0x6d20('0x1a'),QUERY,_0x4f5828,_0x1cc71c),{'type':dbH[_0x6d20('0x13')][_0x6d20('0x16')][_0x6d20('0x17')]}));}}else{_0x592a36[_0x6d20('0x19')](dbH['sequelize'][_0x6d20('0x14')](QUERY,{'type':dbH[_0x6d20('0x13')][_0x6d20('0x16')][_0x6d20('0x17')]}));}}var _0xe39af5=path[_0x6d20('0x1b')](PATH);var _0x4119b5=path[_0x6d20('0x1c')](PATH,_0x6d20('0x1d'));var _0x40049a=_0x254080[_0x6d20('0x10')]&&_0x592a36[_0x6d20('0x1e')]>0x1;var _0x552eb8=[];if(!fs['existsSync'](path[_0x6d20('0x1f')](_0xe39af5,_0x4119b5))&&_0x40049a){fs['mkdirSync'](path[_0x6d20('0x1f')](_0xe39af5,_0x4119b5));}return BPromise[_0x6d20('0x20')](_0x592a36,function(_0x3fca43){_0x552eb8[_0x6d20('0x19')](_0x3fca43);})[_0x6d20('0x12')](function(){for(var _0x2e5f78=0x0;_0x2e5f78<_0x552eb8['length'];_0x2e5f78+=0x1){var _0x1e9e5a;var _0x2151d2=_0x552eb8[_0x2e5f78];if(_0x40049a){_0x1e9e5a=path['join'](_0xe39af5,_0x4119b5,util[_0x6d20('0xc')](_0x6d20('0x21'),_0x4119b5,_0x2e5f78,_0x6d20('0x22')));}else{_0x1e9e5a=path['join'](_0xe39af5,util[_0x6d20('0xc')](_0x6d20('0x23'),_0x4119b5,'csv'));}fs[_0x6d20('0x24')](_0x1e9e5a,csv(_0x2151d2));}})['then'](function(){if(_0x40049a){zipdir(path['join'](_0xe39af5,_0x4119b5),{'saveTo':path[_0x6d20('0x1f')](_0xe39af5,util[_0x6d20('0xc')](_0x6d20('0x23'),_0x4119b5,_0x6d20('0x25')))},function(_0xd06708,_0x337fa2){});rimraf(path['join'](_0xe39af5,_0x4119b5),function(){});}})[_0x6d20('0x12')](function(){logger[_0x6d20('0xb')](util['format'](_0x6d20('0x26'),EXTRACTED_REPORT_ID,_0x6d20('0xe')));return analyticExtractedReport('Completed',_0x40049a?util[_0x6d20('0xc')](_0x6d20('0x23'),_0x4119b5,_0x40049a?'zip':_0x6d20('0x22')):null);});})[_0x6d20('0x27')](function(_0x22db45){logger[_0x6d20('0xb')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x6d20('0xe')),util[_0x6d20('0x28')](_0x22db45,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x6d20('0x29'));});}main();