Built motion from commit 43538d75.|2.5.35
[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 _0xd764=['%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','existsSync','join','each','csv','%s.%s','zip','zip\x20finished','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','util','path','to-csv','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','argv','savename','AnalyticExtractedReport','update','info','CSV','Setting','find','split','splitSizeCsv','then','sequelize','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','Empty','length','range','num','isInteger','forEach','push'];(function(_0x18e1e7,_0x194254){var _0x3cc813=function(_0x541afd){while(--_0x541afd){_0x18e1e7['push'](_0x18e1e7['shift']());}};_0x3cc813(++_0x194254);}(_0xd764,0x199));var _0x4d76=function(_0x4a68ab,_0x565b23){_0x4a68ab=_0x4a68ab-0x0;var _0x25cc72=_0xd764[_0x4a68ab];return _0x25cc72;};'use strict';var util=require(_0x4d76('0x0'));var path=require(_0x4d76('0x1'));var _=require('lodash');var csv=require(_0x4d76('0x2'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0x4d76('0x3'));var rimraf=require(_0x4d76('0x4'));var db=require('../../mysqldb')['db'];var dbH=require(_0x4d76('0x5'))[_0x4d76('0x6')];var logger=require(_0x4d76('0x7'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x4d76('0x8')][0x2]);var QUERY=process[_0x4d76('0x8')][0x3];var PATH=process[_0x4d76('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x39ec90,_0x1c5c03){var _0x5c7711={'status':_0x39ec90};var _0x5a116a={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1c5c03){_0x5c7711[_0x4d76('0x9')]=_0x1c5c03;}return db[_0x4d76('0xa')][_0x4d76('0xb')](_0x5c7711,_0x5a116a);}function main(){var _0x59154f=0x1388;var _0x19d1b0;logger[_0x4d76('0xc')](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x4d76('0xd')));return db[_0x4d76('0xe')][_0x4d76('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4d76('0x10'),_0x4d76('0x11')]})[_0x4d76('0x12')](function(_0xdda0e9){if(_0xdda0e9){_0x19d1b0=_0xdda0e9;_0x59154f=_0x19d1b0[_0x4d76('0x11')]||0x1388;}})[_0x4d76('0x12')](function(){return dbH[_0x4d76('0x13')][_0x4d76('0x14')](util[_0x4d76('0x15')](_0x4d76('0x16'),QUERY),{'type':dbH[_0x4d76('0x13')][_0x4d76('0x17')][_0x4d76('0x18')]});})['then'](function(_0x2908d6){if(!_0x2908d6[0x0]['num']){return analyticExtractedReport(_0x4d76('0x19'));}var _0x3d4e88=[];var _0x7c042=0x0;if(_0x19d1b0[_0x4d76('0x10')]){if(_0x2908d6&&_0x2908d6[_0x4d76('0x1a')]){var _0x3348c6=_[_0x4d76('0x1b')](_0x2908d6[0x0][_0x4d76('0x1c')]/_0x59154f);var _0x4989e7=Number[_0x4d76('0x1d')](_0x2908d6[0x0]['num']/_0x59154f)?_0x2908d6[0x0][_0x4d76('0x1c')]%_0x59154f:0x0;_0x3348c6[_0x4d76('0x1e')](function(_0x58e64e){if(_0x58e64e>0x0){_0x7c042+=_0x59154f;}_0x3d4e88[_0x4d76('0x1f')](dbH[_0x4d76('0x13')][_0x4d76('0x14')](util[_0x4d76('0x15')](_0x4d76('0x20'),QUERY,_0x59154f,_0x7c042),{'type':dbH['sequelize'][_0x4d76('0x17')][_0x4d76('0x18')]}));});if(_0x4989e7>0x0){_0x7c042+=_0x59154f;_0x3d4e88[_0x4d76('0x1f')](dbH['sequelize'][_0x4d76('0x14')](util[_0x4d76('0x15')](_0x4d76('0x20'),QUERY,_0x4989e7,_0x7c042),{'type':dbH['sequelize'][_0x4d76('0x17')][_0x4d76('0x18')]}));}}}else{_0x3d4e88[_0x4d76('0x1f')](dbH[_0x4d76('0x13')][_0x4d76('0x14')](QUERY,{'type':dbH['sequelize'][_0x4d76('0x17')][_0x4d76('0x18')]}));}var _0x4b965a=path[_0x4d76('0x21')](PATH);var _0x2a8d51=path[_0x4d76('0x22')](PATH,_0x4d76('0x23'));var _0x56cf5c=_0x19d1b0['split']&&_0x3d4e88[_0x4d76('0x1a')]>0x1;var _0x3adc87=[];if(!fs[_0x4d76('0x24')](path[_0x4d76('0x25')](_0x4b965a,_0x2a8d51))&&_0x56cf5c){fs['mkdirSync'](path[_0x4d76('0x25')](_0x4b965a,_0x2a8d51));}return BPromise[_0x4d76('0x26')](_0x3d4e88,function(_0x42d83e){_0x3adc87[_0x4d76('0x1f')](_0x42d83e);})[_0x4d76('0x12')](function(){for(var _0x583a3f=0x0;_0x583a3f<_0x3adc87[_0x4d76('0x1a')];_0x583a3f+=0x1){var _0x44097f;var _0x59e2c1=_0x3adc87[_0x583a3f];if(_0x56cf5c){_0x44097f=path['join'](_0x4b965a,_0x2a8d51,util[_0x4d76('0x15')]('%s%d.%s',_0x2a8d51,_0x583a3f,_0x4d76('0x27')));}else{_0x44097f=path[_0x4d76('0x25')](_0x4b965a,util[_0x4d76('0x15')](_0x4d76('0x28'),_0x2a8d51,'csv'));}fs['writeFileSync'](_0x44097f,csv(_0x59e2c1));}})[_0x4d76('0x12')](function(){if(_0x56cf5c){return new Promise(function(_0x1a29c2){zipdir(path['join'](_0x4b965a,_0x2a8d51),{'saveTo':path[_0x4d76('0x25')](_0x4b965a,util[_0x4d76('0x15')](_0x4d76('0x28'),_0x2a8d51,_0x4d76('0x29')))},function(_0x46144b,_0x108b8a){rimraf(path['join'](_0x4b965a,_0x2a8d51),function(){});_0x1a29c2(_0x4d76('0x2a'));});});}})[_0x4d76('0x12')](function(){logger[_0x4d76('0xc')](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x4d76('0xd')));return analyticExtractedReport('Completed',_0x56cf5c?util[_0x4d76('0x15')](_0x4d76('0x28'),_0x2a8d51,_0x56cf5c?_0x4d76('0x29'):_0x4d76('0x27')):null);});})[_0x4d76('0x2b')](function(_0x5263a5){logger['info'](util[_0x4d76('0x15')](_0x4d76('0x2c'),EXTRACTED_REPORT_ID,_0x4d76('0xd')),util[_0x4d76('0x2d')](_0x5263a5,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x4d76('0x2e'));})[_0x4d76('0x2f')](function(){process[_0x4d76('0x30')](EXIT_CODE);});}main();