Built motion from commit (unavailable).|2.5.1
[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 _0x9bde=['%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','join','mkdirSync','each','%s%d.%s','csv','%s.%s','zip','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','inspect','Failed','path','to-csv','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','find','split','splitSizeCsv','then','sequelize','query','QueryTypes','SELECT','num','Empty','length','push'];(function(_0x24482d,_0x3a5def){var _0x7ce70=function(_0x21fe28){while(--_0x21fe28){_0x24482d['push'](_0x24482d['shift']());}};_0x7ce70(++_0x3a5def);}(_0x9bde,0xe1));var _0xe9bd=function(_0x581bf7,_0x23b1fd){_0x581bf7=_0x581bf7-0x0;var _0x39df6b=_0x9bde[_0x581bf7];return _0x39df6b;};'use strict';var util=require('util');var path=require(_0xe9bd('0x0'));var _=require('lodash');var csv=require(_0xe9bd('0x1'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0xe9bd('0x2'));var rimraf=require(_0xe9bd('0x3'));var db=require(_0xe9bd('0x4'))['db'];var dbH=require(_0xe9bd('0x4'))[_0xe9bd('0x5')];var logger=require(_0xe9bd('0x6'))(_0xe9bd('0x7'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xe9bd('0x8')][0x3];var PATH=process[_0xe9bd('0x8')][0x4];function analyticExtractedReport(_0x22a438,_0xa66ae2){var _0x2d5c75={'status':_0x22a438};var _0x3ef9e3={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xa66ae2){_0x2d5c75[_0xe9bd('0x9')]=_0xa66ae2;}return db[_0xe9bd('0xa')][_0xe9bd('0xb')](_0x2d5c75,_0x3ef9e3);}function main(){var _0x45c7ba=0x1388;var _0x581602;logger['info'](util[_0xe9bd('0xc')](_0xe9bd('0xd'),EXTRACTED_REPORT_ID,_0xe9bd('0xe')));return db['Setting'][_0xe9bd('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xe9bd('0x10'),_0xe9bd('0x11')]})[_0xe9bd('0x12')](function(_0x5e022a){if(_0x5e022a){_0x581602=_0x5e022a;_0x45c7ba=_0x581602[_0xe9bd('0x11')]||0x1388;}})['then'](function(){return dbH[_0xe9bd('0x13')][_0xe9bd('0x14')](util[_0xe9bd('0xc')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0xe9bd('0x15')][_0xe9bd('0x16')]});})[_0xe9bd('0x12')](function(_0x46a59b){if(!_0x46a59b[0x0][_0xe9bd('0x17')]){return analyticExtractedReport(_0xe9bd('0x18'));}var _0x45a9f2=[];var _0x573350=0x0;var _0x1d11a0=!![];if(_0x46a59b&&_0x46a59b[_0xe9bd('0x19')]){var _0x160281=_0x46a59b[0x0]['num']%(_0x573350+_0x45c7ba);if(_0x581602[_0xe9bd('0x10')]){for(;_0x1d11a0;_0x573350+=_0x45c7ba,_0x160281=_0x46a59b[0x0][_0xe9bd('0x17')]%(_0x573350+_0x45c7ba)){if(_0x160281==0x0||_0x160281==_0x46a59b[0x0][_0xe9bd('0x17')]){_0x1d11a0=![];}_0x45a9f2[_0xe9bd('0x1a')](dbH['sequelize'][_0xe9bd('0x14')](util['format'](_0xe9bd('0x1b'),QUERY,_0x45c7ba,_0x573350),{'type':dbH['sequelize'][_0xe9bd('0x15')][_0xe9bd('0x16')]}));}}else{_0x45a9f2[_0xe9bd('0x1a')](dbH[_0xe9bd('0x13')][_0xe9bd('0x14')](QUERY,{'type':dbH[_0xe9bd('0x13')][_0xe9bd('0x15')]['SELECT']}));}}var _0x133318=path[_0xe9bd('0x1c')](PATH);var _0x4ecaf5=path[_0xe9bd('0x1d')](PATH,'.csv');var _0x238ab1=_0x581602[_0xe9bd('0x10')]&&_0x45a9f2[_0xe9bd('0x19')]>0x1;var _0xf02209=[];if(!fs['existsSync'](path[_0xe9bd('0x1e')](_0x133318,_0x4ecaf5))&&_0x238ab1){fs[_0xe9bd('0x1f')](path[_0xe9bd('0x1e')](_0x133318,_0x4ecaf5));}return BPromise[_0xe9bd('0x20')](_0x45a9f2,function(_0x2641be){_0xf02209[_0xe9bd('0x1a')](_0x2641be);})[_0xe9bd('0x12')](function(){for(var _0x43ea90=0x0;_0x43ea90<_0xf02209[_0xe9bd('0x19')];_0x43ea90+=0x1){var _0x5987af;var _0x3c211a=_0xf02209[_0x43ea90];if(_0x238ab1){_0x5987af=path[_0xe9bd('0x1e')](_0x133318,_0x4ecaf5,util['format'](_0xe9bd('0x21'),_0x4ecaf5,_0x43ea90,_0xe9bd('0x22')));}else{_0x5987af=path[_0xe9bd('0x1e')](_0x133318,util[_0xe9bd('0xc')](_0xe9bd('0x23'),_0x4ecaf5,_0xe9bd('0x22')));}fs['writeFileSync'](_0x5987af,csv(_0x3c211a));}})['then'](function(){if(_0x238ab1){zipdir(path[_0xe9bd('0x1e')](_0x133318,_0x4ecaf5),{'saveTo':path['join'](_0x133318,util[_0xe9bd('0xc')](_0xe9bd('0x23'),_0x4ecaf5,_0xe9bd('0x24')))},function(_0x36aa80,_0x4057df){});rimraf(path['join'](_0x133318,_0x4ecaf5),function(){});}})['then'](function(){logger[_0xe9bd('0x25')](util[_0xe9bd('0xc')](_0xe9bd('0x26'),EXTRACTED_REPORT_ID,_0xe9bd('0xe')));return analyticExtractedReport(_0xe9bd('0x27'),_0x238ab1?util[_0xe9bd('0xc')](_0xe9bd('0x23'),_0x4ecaf5,_0x238ab1?_0xe9bd('0x24'):_0xe9bd('0x22')):null);});})['catch'](function(_0x426004){logger[_0xe9bd('0x25')](util[_0xe9bd('0xc')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'CSV'),util[_0xe9bd('0x28')](_0x426004,{'showHidden':![],'depth':null}));return analyticExtractedReport(_0xe9bd('0x29'));});}main();