Built motion from commit 3e059bc2.|2.5.32
[motion2.git] / server / api / analyticExtractedReport / analyticExtractedReport.controller.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 _0x1e87=['../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','ExtractedReports','UserProfileResource','stack','name','index','map','AnalyticExtractedReport','rawAttributes','type','key','query','keys','filters','model','attributes','intersection','fields','hasOwnProperty','order','where','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','autoAssociation','basename','output','existsSync','join','root','server/files/reports','savename','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','download','format','%s.%s','toLowerCase','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1e87,0x10c));var _0x71e8=function(_0x273033,_0x24f181){_0x273033=_0x273033-0x0;var _0x1e6b54=_0x1e87[_0x273033];return _0x1e6b54;};'use strict';var emlformat=require(_0x71e8('0x0'));var rimraf=require(_0x71e8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x71e8('0x2'));var rp=require(_0x71e8('0x3'));var moment=require(_0x71e8('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x71e8('0x5'));var util=require('util');var path=require(_0x71e8('0x6'));var sox=require('sox');var csv=require(_0x71e8('0x7'));var ejs=require(_0x71e8('0x8'));var fs=require('fs');var fs_extra=require(_0x71e8('0x9'));var _=require(_0x71e8('0xa'));var squel=require(_0x71e8('0xb'));var crypto=require(_0x71e8('0xc'));var jsforce=require(_0x71e8('0xd'));var deskjs=require(_0x71e8('0xe'));var toCsv=require(_0x71e8('0x7'));var querystring=require(_0x71e8('0xf'));var Papa=require(_0x71e8('0x10'));var Redis=require(_0x71e8('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x71e8('0x12'));var as=require(_0x71e8('0x13'));var hardwareService=require(_0x71e8('0x14'));var logger=require(_0x71e8('0x15'))(_0x71e8('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x71e8('0x17'));var db=require(_0x71e8('0x18'))['db'];function respondWithStatusCode(_0x363a7f,_0x13cc2f){_0x13cc2f=_0x13cc2f||0xcc;return function(_0x2d0f11){if(_0x2d0f11){return _0x363a7f[_0x71e8('0x19')](_0x13cc2f);}return _0x363a7f[_0x71e8('0x1a')](_0x13cc2f)[_0x71e8('0x1b')]();};}function respondWithResult(_0x1e474d,_0x111aa4){_0x111aa4=_0x111aa4||0xc8;return function(_0x3aaa33){if(_0x3aaa33){return _0x1e474d[_0x71e8('0x1a')](_0x111aa4)[_0x71e8('0x1c')](_0x3aaa33);}};}function respondWithFilteredResult(_0x150979,_0x1c8075){return function(_0x685e79){if(_0x685e79){var _0x15d107=typeof _0x1c8075[_0x71e8('0x1d')]===_0x71e8('0x1e')&&typeof _0x1c8075[_0x71e8('0x1f')]==='undefined';var _0x4cf888=_0x685e79[_0x71e8('0x20')];var _0x271a2d=_0x15d107?0x0:_0x1c8075[_0x71e8('0x1d')];var _0xb33370=_0x15d107?_0x685e79[_0x71e8('0x20')]:_0x1c8075[_0x71e8('0x1d')]+_0x1c8075[_0x71e8('0x1f')];var _0x285c97;if(_0xb33370>=_0x4cf888){_0xb33370=_0x4cf888;_0x285c97=0xc8;}else{_0x285c97=0xce;}_0x150979['status'](_0x285c97);return _0x150979[_0x71e8('0x21')](_0x71e8('0x22'),_0x271a2d+'-'+_0xb33370+'/'+_0x4cf888)[_0x71e8('0x1c')](_0x685e79);}return null;};}function patchUpdates(_0x3c7f26){return function(_0x5b4cba){try{jsonpatch[_0x71e8('0x23')](_0x5b4cba,_0x3c7f26,!![]);}catch(_0x22d8f2){return BPromise[_0x71e8('0x24')](_0x22d8f2);}return _0x5b4cba[_0x71e8('0x25')]();};}function saveUpdates(_0x34aaec,_0x58a842){return function(_0x27bacf){if(_0x27bacf){return _0x27bacf[_0x71e8('0x26')](_0x34aaec)[_0x71e8('0x27')](function(_0x20b895){return _0x20b895;});}return null;};}function removeEntity(_0x53d089,_0x22a41d){return function(_0x3055ee){if(_0x3055ee){return _0x3055ee[_0x71e8('0x28')]()[_0x71e8('0x27')](function(){var _0x4c7534=_0x3055ee[_0x71e8('0x29')]({'plain':!![]});var _0x5eda70=_0x71e8('0x2a');return db[_0x71e8('0x2b')]['destroy']({'where':{'type':_0x5eda70,'resourceId':_0x4c7534['id']}})[_0x71e8('0x27')](function(){return _0x3055ee;});})[_0x71e8('0x27')](function(){_0x53d089[_0x71e8('0x1a')](0xcc)[_0x71e8('0x1b')]();});}};}function handleEntityNotFound(_0x1a1240,_0xe48c86){return function(_0x4dcad8){if(!_0x4dcad8){_0x1a1240[_0x71e8('0x19')](0x194);}return _0x4dcad8;};}function handleError(_0x354995,_0x14b964){_0x14b964=_0x14b964||0x1f4;return function(_0x18b2a8){logger['error'](_0x18b2a8[_0x71e8('0x2c')]);if(_0x18b2a8[_0x71e8('0x2d')]){delete _0x18b2a8['name'];}_0x354995[_0x71e8('0x1a')](_0x14b964)['send'](_0x18b2a8);};}exports[_0x71e8('0x2e')]=function(_0x22fc78,_0x257700){var _0xea643e={},_0x3dc804={},_0x3c885a={'count':0x0,'rows':[]};var _0x18ec48=_[_0x71e8('0x2f')](db[_0x71e8('0x30')][_0x71e8('0x31')],function(_0xbc434){return{'name':_0xbc434['fieldName'],'type':_0xbc434[_0x71e8('0x32')][_0x71e8('0x33')]};});_0x3dc804['model']=_['map'](_0x18ec48,_0x71e8('0x2d'));_0x3dc804[_0x71e8('0x34')]=_[_0x71e8('0x35')](_0x22fc78[_0x71e8('0x34')]);_0x3dc804[_0x71e8('0x36')]=_['intersection'](_0x3dc804[_0x71e8('0x37')],_0x3dc804[_0x71e8('0x34')]);_0xea643e[_0x71e8('0x38')]=_[_0x71e8('0x39')](_0x3dc804[_0x71e8('0x37')],qs['fields'](_0x22fc78[_0x71e8('0x34')][_0x71e8('0x3a')]));_0xea643e[_0x71e8('0x38')]=_0xea643e[_0x71e8('0x38')]['length']?_0xea643e[_0x71e8('0x38')]:_0x3dc804[_0x71e8('0x37')];if(!_0x22fc78[_0x71e8('0x34')][_0x71e8('0x3b')]('nolimit')){_0xea643e['limit']=qs[_0x71e8('0x1f')](_0x22fc78['query']['limit']);_0xea643e[_0x71e8('0x1d')]=qs['offset'](_0x22fc78[_0x71e8('0x34')][_0x71e8('0x1d')]);}_0xea643e[_0x71e8('0x3c')]=qs['sort'](_0x22fc78[_0x71e8('0x34')]['sort']);_0xea643e[_0x71e8('0x3d')]=qs[_0x71e8('0x36')](_['pick'](_0x22fc78[_0x71e8('0x34')],_0x3dc804['filters']),_0x18ec48);if(_0x22fc78[_0x71e8('0x34')][_0x71e8('0x3e')]){_0xea643e['where']=_['merge'](_0xea643e[_0x71e8('0x3d')],{'$or':_[_0x71e8('0x2f')](_0x18ec48,function(_0x4d12a3){if(_0x4d12a3[_0x71e8('0x32')]!=='VIRTUAL'){var _0x4b20a0={};_0x4b20a0[_0x4d12a3[_0x71e8('0x2d')]]={'$like':'%'+_0x22fc78['query'][_0x71e8('0x3e')]+'%'};return _0x4b20a0;}})});}_0xea643e=_[_0x71e8('0x3f')]({},_0xea643e,_0x22fc78[_0x71e8('0x40')]);var _0x566126={'where':_0xea643e['where']};return db['AnalyticExtractedReport'][_0x71e8('0x20')](_0x566126)['then'](function(_0x470d03){_0x3c885a['count']=_0x470d03;if(_0x22fc78[_0x71e8('0x34')][_0x71e8('0x41')]){_0xea643e[_0x71e8('0x42')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0x71e8('0x43')](_0xea643e);})[_0x71e8('0x27')](function(_0x58f790){_0x3c885a[_0x71e8('0x44')]=_0x58f790;return _0x3c885a;})[_0x71e8('0x27')](respondWithFilteredResult(_0x257700,_0xea643e))[_0x71e8('0x45')](handleError(_0x257700,null));};exports[_0x71e8('0x46')]=function(_0x39e099,_0x456ada){var _0x42e016={'raw':!![],'where':{'id':_0x39e099[_0x71e8('0x47')]['id']}},_0x29a219={};_0x29a219[_0x71e8('0x37')]=_[_0x71e8('0x35')](db[_0x71e8('0x30')][_0x71e8('0x31')]);_0x29a219[_0x71e8('0x34')]=_[_0x71e8('0x35')](_0x39e099[_0x71e8('0x34')]);_0x29a219[_0x71e8('0x36')]=_['intersection'](_0x29a219['model'],_0x29a219[_0x71e8('0x34')]);_0x42e016[_0x71e8('0x38')]=_[_0x71e8('0x39')](_0x29a219[_0x71e8('0x37')],qs[_0x71e8('0x3a')](_0x39e099['query'][_0x71e8('0x3a')]));_0x42e016[_0x71e8('0x38')]=_0x42e016[_0x71e8('0x38')][_0x71e8('0x48')]?_0x42e016[_0x71e8('0x38')]:_0x29a219[_0x71e8('0x37')];if(_0x39e099[_0x71e8('0x34')][_0x71e8('0x41')]){_0x42e016[_0x71e8('0x42')]=[{'all':!![]}];}_0x42e016=_['merge']({},_0x42e016,_0x39e099['options']);return db[_0x71e8('0x30')]['find'](_0x42e016)[_0x71e8('0x27')](handleEntityNotFound(_0x456ada,null))[_0x71e8('0x27')](respondWithResult(_0x456ada,null))[_0x71e8('0x45')](handleError(_0x456ada,null));};exports['create']=function(_0x2da3e4,_0x50979c){return db[_0x71e8('0x30')][_0x71e8('0x49')](_0x2da3e4[_0x71e8('0x4a')],{})[_0x71e8('0x27')](function(_0x4469a2){var _0x32201e=_0x2da3e4[_0x71e8('0x4b')][_0x71e8('0x29')]({'plain':!![]});if(!_0x32201e)throw new Error(_0x71e8('0x4c'));if(_0x32201e['role']===_0x71e8('0x4b')){var _0x502b1a=_0x4469a2[_0x71e8('0x29')]({'plain':!![]});var _0x474d60=_0x71e8('0x2a');return db[_0x71e8('0x4d')][_0x71e8('0x4e')]({'where':{'name':_0x474d60,'userProfileId':_0x32201e[_0x71e8('0x4f')]},'raw':!![]})[_0x71e8('0x27')](function(_0x2436f3){if(_0x2436f3&&_0x2436f3[_0x71e8('0x50')]===0x0){return db[_0x71e8('0x2b')][_0x71e8('0x49')]({'name':_0x502b1a[_0x71e8('0x2d')],'resourceId':_0x502b1a['id'],'type':_0x2436f3[_0x71e8('0x2d')],'sectionId':_0x2436f3['id']},{})[_0x71e8('0x27')](function(){return _0x4469a2;});}else{return _0x4469a2;}})[_0x71e8('0x45')](function(_0x2fff81){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2fff81);throw _0x2fff81;});}return _0x4469a2;})[_0x71e8('0x27')](respondWithResult(_0x50979c,0xc9))['catch'](handleError(_0x50979c,null));};exports[_0x71e8('0x26')]=function(_0x398b91,_0x26951b){if(_0x398b91[_0x71e8('0x4a')]['id']){delete _0x398b91[_0x71e8('0x4a')]['id'];}return db[_0x71e8('0x30')][_0x71e8('0x4e')]({'where':{'id':_0x398b91[_0x71e8('0x47')]['id']}})[_0x71e8('0x27')](handleEntityNotFound(_0x26951b,null))['then'](saveUpdates(_0x398b91['body'],null))[_0x71e8('0x27')](respondWithResult(_0x26951b,null))[_0x71e8('0x45')](handleError(_0x26951b,null));};exports['destroy']=function(_0x4a5fc2,_0x5002de){return db[_0x71e8('0x30')][_0x71e8('0x4e')]({'where':{'id':_0x4a5fc2[_0x71e8('0x47')]['id']}})[_0x71e8('0x27')](handleEntityNotFound(_0x5002de,null))[_0x71e8('0x27')](removeEntity(_0x5002de,null))[_0x71e8('0x45')](handleError(_0x5002de,null));};exports['download']=function(_0x163f16,_0x11b21a,_0x1ec1e7){return db[_0x71e8('0x30')][_0x71e8('0x4e')]({'where':{'id':_0x163f16[_0x71e8('0x47')]['id']},'attributes':['name',_0x71e8('0x51'),'savename',_0x71e8('0x52')],'raw':!![]})[_0x71e8('0x27')](handleEntityNotFound(_0x11b21a,null))['then'](function(_0x5dc437){if(_0x5dc437){if(!fs[_0x71e8('0x53')](path[_0x71e8('0x54')](config[_0x71e8('0x55')],_0x71e8('0x56'),_0x5dc437[_0x71e8('0x57')]))){throw new db[(_0x71e8('0x58'))][(_0x71e8('0x59'))](_0x71e8('0x5a'));}if(_0x163f16['query'][_0x71e8('0x5b')]){return _0x11b21a[_0x71e8('0x19')](0xc8);}return _0x11b21a[_0x71e8('0x5c')](path[_0x71e8('0x54')](config[_0x71e8('0x55')],_0x71e8('0x56'),_0x5dc437[_0x71e8('0x57')]),util[_0x71e8('0x5d')](_0x71e8('0x5e'),_0x5dc437[_0x71e8('0x51')]||_0x5dc437[_0x71e8('0x2d')],_0x5dc437['output'][_0x71e8('0x5f')]()));}})[_0x71e8('0x45')](handleError(_0x11b21a,null));};