Built motion from commit (unavailable).|2.4.21
[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 _0xda55=['%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','length','existsSync','mkdirSync','join','each','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util','path','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','num','Empty','split','push'];(function(_0x11c573,_0x9e7c6e){var _0x6b72de=function(_0x2e8a61){while(--_0x2e8a61){_0x11c573['push'](_0x11c573['shift']());}};_0x6b72de(++_0x9e7c6e);}(_0xda55,0x6d));var _0x5da5=function(_0x49bca7,_0x1b5e3d){_0x49bca7=_0x49bca7-0x0;var _0x44ba48=_0xda55[_0x49bca7];return _0x44ba48;};'use strict';var util=require(_0x5da5('0x0'));var path=require(_0x5da5('0x1'));var _=require('lodash');var csv=require('to-csv');var fs=require('fs');var BPromise=require(_0x5da5('0x2'));var zipdir=require(_0x5da5('0x3'));var rimraf=require(_0x5da5('0x4'));var db=require(_0x5da5('0x5'))['db'];var dbH=require(_0x5da5('0x5'))['dbH'];var logger=require(_0x5da5('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x5da5('0x7')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x5da5('0x7')][0x4];function analyticExtractedReport(_0x267469,_0x71b187){var _0x46290d={'status':_0x267469};var _0x3debdf={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x71b187){_0x46290d[_0x5da5('0x8')]=_0x71b187;}return db[_0x5da5('0x9')][_0x5da5('0xa')](_0x46290d,_0x3debdf);}function main(){var _0x5c056f=0x1388;var _0x3ed24c;logger[_0x5da5('0xb')](util[_0x5da5('0xc')](_0x5da5('0xd'),EXTRACTED_REPORT_ID,_0x5da5('0xe')));return db[_0x5da5('0xf')][_0x5da5('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x5da5('0x11')]})[_0x5da5('0x12')](function(_0x4f813b){if(_0x4f813b){_0x3ed24c=_0x4f813b;_0x5c056f=_0x3ed24c[_0x5da5('0x11')]||0x1388;}})[_0x5da5('0x12')](function(){return dbH[_0x5da5('0x13')][_0x5da5('0x14')](util[_0x5da5('0xc')](_0x5da5('0x15'),QUERY),{'type':dbH['sequelize']['QueryTypes']['SELECT']});})[_0x5da5('0x12')](function(_0x126fc8){if(!_0x126fc8[0x0][_0x5da5('0x16')]){return analyticExtractedReport(_0x5da5('0x17'));}var _0x11bd3=[];var _0x134afa=0x0;var _0x3aff51=!![];if(_0x126fc8&&_0x126fc8['length']){var _0x124dc5=_0x126fc8[0x0][_0x5da5('0x16')]%(_0x134afa+_0x5c056f);if(_0x3ed24c[_0x5da5('0x18')]){for(;_0x3aff51;_0x134afa+=_0x5c056f,_0x124dc5=_0x126fc8[0x0][_0x5da5('0x16')]%(_0x134afa+_0x5c056f)){if(_0x124dc5==0x0||_0x124dc5==_0x126fc8[0x0][_0x5da5('0x16')]){_0x3aff51=![];}_0x11bd3[_0x5da5('0x19')](dbH['sequelize'][_0x5da5('0x14')](util[_0x5da5('0xc')](_0x5da5('0x1a'),QUERY,_0x5c056f,_0x134afa),{'type':dbH[_0x5da5('0x13')][_0x5da5('0x1b')]['SELECT']}));}}else{_0x11bd3[_0x5da5('0x19')](dbH[_0x5da5('0x13')][_0x5da5('0x14')](QUERY,{'type':dbH['sequelize'][_0x5da5('0x1b')][_0x5da5('0x1c')]}));}}var _0x20c8a6=path[_0x5da5('0x1d')](PATH);var _0xec69f2=path[_0x5da5('0x1e')](PATH,'.csv');var _0x1a6bd7=_0x3ed24c['split']&&_0x11bd3[_0x5da5('0x1f')]>0x1;var _0x716ab7=[];if(!fs[_0x5da5('0x20')](path['join'](_0x20c8a6,_0xec69f2))&&_0x1a6bd7){fs[_0x5da5('0x21')](path[_0x5da5('0x22')](_0x20c8a6,_0xec69f2));}return BPromise[_0x5da5('0x23')](_0x11bd3,function(_0x21e795){_0x716ab7['push'](_0x21e795);})['then'](function(){for(var _0x50aadc=0x0;_0x50aadc<_0x716ab7[_0x5da5('0x1f')];_0x50aadc+=0x1){var _0x56d509;var _0x4e8890=_0x716ab7[_0x50aadc];if(_0x1a6bd7){_0x56d509=path[_0x5da5('0x22')](_0x20c8a6,_0xec69f2,util[_0x5da5('0xc')]('%s%d.%s',_0xec69f2,_0x50aadc,_0x5da5('0x24')));}else{_0x56d509=path[_0x5da5('0x22')](_0x20c8a6,util['format'](_0x5da5('0x25'),_0xec69f2,_0x5da5('0x24')));}fs[_0x5da5('0x26')](_0x56d509,csv(_0x4e8890));}})[_0x5da5('0x12')](function(){if(_0x1a6bd7){zipdir(path[_0x5da5('0x22')](_0x20c8a6,_0xec69f2),{'saveTo':path['join'](_0x20c8a6,util[_0x5da5('0xc')](_0x5da5('0x25'),_0xec69f2,_0x5da5('0x27')))},function(_0x15a0c0,_0x55e2bf){});rimraf(path['join'](_0x20c8a6,_0xec69f2),function(){});}})['then'](function(){logger[_0x5da5('0xb')](util[_0x5da5('0xc')](_0x5da5('0x28'),EXTRACTED_REPORT_ID,_0x5da5('0xe')));return analyticExtractedReport('Completed',_0x1a6bd7?util['format'](_0x5da5('0x25'),_0xec69f2,_0x1a6bd7?'zip':'csv'):null);});})[_0x5da5('0x29')](function(_0x4c6cce){logger[_0x5da5('0xb')](util[_0x5da5('0xc')](_0x5da5('0x2a'),EXTRACTED_REPORT_ID,_0x5da5('0xe')),util[_0x5da5('0x2b')](_0x4c6cce,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0x5da5('0x2c'));});}main();