Built motion from commit 85328c08.|2.5.50
[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 _0x48af=['%s.%s','basename','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','destroy','get','UserProfileResource','then','error','stack','name','index','map','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','catch','create','body','user','role','ExtractedReports','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','savename','output','existsSync','join','root','server/files/reports','Sequelize','ValidationError','exists','download','format'];(function(_0x2ada28,_0x6125b8){var _0x5187c1=function(_0x26cb63){while(--_0x26cb63){_0x2ada28['push'](_0x2ada28['shift']());}};_0x5187c1(++_0x6125b8);}(_0x48af,0x129));var _0xf48a=function(_0x4d515d,_0x108c96){_0x4d515d=_0x4d515d-0x0;var _0x58fe07=_0x48af[_0x4d515d];return _0x58fe07;};'use strict';var emlformat=require(_0xf48a('0x0'));var rimraf=require(_0xf48a('0x1'));var zipdir=require(_0xf48a('0x2'));var jsonpatch=require(_0xf48a('0x3'));var rp=require('request-promise');var moment=require(_0xf48a('0x4'));var BPromise=require(_0xf48a('0x5'));var Mustache=require('mustache');var util=require(_0xf48a('0x6'));var path=require('path');var sox=require(_0xf48a('0x7'));var csv=require(_0xf48a('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf48a('0x9'));var _=require(_0xf48a('0xa'));var squel=require(_0xf48a('0xb'));var crypto=require(_0xf48a('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xf48a('0xd'));var toCsv=require(_0xf48a('0x8'));var querystring=require(_0xf48a('0xe'));var Papa=require(_0xf48a('0xf'));var Redis=require('ioredis');var authService=require(_0xf48a('0x10'));var qs=require(_0xf48a('0x11'));var as=require(_0xf48a('0x12'));var hardwareService=require(_0xf48a('0x13'));var logger=require(_0xf48a('0x14'))(_0xf48a('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xf48a('0x16'));var db=require(_0xf48a('0x17'))['db'];function respondWithStatusCode(_0x3f3e1b,_0x3ba802){_0x3ba802=_0x3ba802||0xcc;return function(_0x488625){if(_0x488625){return _0x3f3e1b[_0xf48a('0x18')](_0x3ba802);}return _0x3f3e1b[_0xf48a('0x19')](_0x3ba802)[_0xf48a('0x1a')]();};}function respondWithResult(_0x32bf0d,_0x2ea357){_0x2ea357=_0x2ea357||0xc8;return function(_0x1fadbb){if(_0x1fadbb){return _0x32bf0d['status'](_0x2ea357)[_0xf48a('0x1b')](_0x1fadbb);}};}function respondWithFilteredResult(_0x1eddb1,_0x54fad1){return function(_0x129c94){if(_0x129c94){var _0x20b4d1=typeof _0x54fad1['offset']===_0xf48a('0x1c')&&typeof _0x54fad1[_0xf48a('0x1d')]===_0xf48a('0x1c');var _0x519d35=_0x129c94['count'];var _0xb53d2b=_0x20b4d1?0x0:_0x54fad1[_0xf48a('0x1e')];var _0x1b3716=_0x20b4d1?_0x129c94[_0xf48a('0x1f')]:_0x54fad1[_0xf48a('0x1e')]+_0x54fad1[_0xf48a('0x1d')];var _0x55d1fd;if(_0x1b3716>=_0x519d35){_0x1b3716=_0x519d35;_0x55d1fd=0xc8;}else{_0x55d1fd=0xce;}_0x1eddb1['status'](_0x55d1fd);return _0x1eddb1[_0xf48a('0x20')](_0xf48a('0x21'),_0xb53d2b+'-'+_0x1b3716+'/'+_0x519d35)[_0xf48a('0x1b')](_0x129c94);}return null;};}function patchUpdates(_0x13d44c){return function(_0x25846b){try{jsonpatch[_0xf48a('0x22')](_0x25846b,_0x13d44c,!![]);}catch(_0x2c402c){return BPromise['reject'](_0x2c402c);}return _0x25846b[_0xf48a('0x23')]();};}function saveUpdates(_0x2c7e3b,_0x4cc119){return function(_0x1b38f7){if(_0x1b38f7){return _0x1b38f7[_0xf48a('0x24')](_0x2c7e3b)['then'](function(_0x43346e){return _0x43346e;});}return null;};}function removeEntity(_0x4a97cb,_0x206485){return function(_0xd3fb2b){if(_0xd3fb2b){return _0xd3fb2b[_0xf48a('0x25')]()['then'](function(){var _0x11edd8=_0xd3fb2b[_0xf48a('0x26')]({'plain':!![]});var _0x778208='ExtractedReports';return db[_0xf48a('0x27')]['destroy']({'where':{'type':_0x778208,'resourceId':_0x11edd8['id']}})[_0xf48a('0x28')](function(){return _0xd3fb2b;});})[_0xf48a('0x28')](function(){_0x4a97cb[_0xf48a('0x19')](0xcc)[_0xf48a('0x1a')]();});}};}function handleEntityNotFound(_0x461235,_0x54e4a1){return function(_0x451105){if(!_0x451105){_0x461235[_0xf48a('0x18')](0x194);}return _0x451105;};}function handleError(_0x574345,_0x133252){_0x133252=_0x133252||0x1f4;return function(_0x23bc0b){logger[_0xf48a('0x29')](_0x23bc0b[_0xf48a('0x2a')]);if(_0x23bc0b[_0xf48a('0x2b')]){delete _0x23bc0b[_0xf48a('0x2b')];}_0x574345['status'](_0x133252)['send'](_0x23bc0b);};}exports[_0xf48a('0x2c')]=function(_0x49e260,_0x26f53c){var _0x3eb3ca={},_0x5a9e0d={},_0x5826c0={'count':0x0,'rows':[]};var _0x27255a=_[_0xf48a('0x2d')](db[_0xf48a('0x2e')][_0xf48a('0x2f')],function(_0x4ebc24){return{'name':_0x4ebc24[_0xf48a('0x30')],'type':_0x4ebc24[_0xf48a('0x31')][_0xf48a('0x32')]};});_0x5a9e0d[_0xf48a('0x33')]=_[_0xf48a('0x2d')](_0x27255a,'name');_0x5a9e0d[_0xf48a('0x34')]=_[_0xf48a('0x35')](_0x49e260[_0xf48a('0x34')]);_0x5a9e0d[_0xf48a('0x36')]=_[_0xf48a('0x37')](_0x5a9e0d[_0xf48a('0x33')],_0x5a9e0d[_0xf48a('0x34')]);_0x3eb3ca['attributes']=_['intersection'](_0x5a9e0d[_0xf48a('0x33')],qs[_0xf48a('0x38')](_0x49e260[_0xf48a('0x34')][_0xf48a('0x38')]));_0x3eb3ca[_0xf48a('0x39')]=_0x3eb3ca[_0xf48a('0x39')][_0xf48a('0x3a')]?_0x3eb3ca[_0xf48a('0x39')]:_0x5a9e0d[_0xf48a('0x33')];if(!_0x49e260[_0xf48a('0x34')]['hasOwnProperty'](_0xf48a('0x3b'))){_0x3eb3ca[_0xf48a('0x1d')]=qs[_0xf48a('0x1d')](_0x49e260[_0xf48a('0x34')]['limit']);_0x3eb3ca[_0xf48a('0x1e')]=qs[_0xf48a('0x1e')](_0x49e260['query'][_0xf48a('0x1e')]);}_0x3eb3ca[_0xf48a('0x3c')]=qs[_0xf48a('0x3d')](_0x49e260[_0xf48a('0x34')]['sort']);_0x3eb3ca[_0xf48a('0x3e')]=qs[_0xf48a('0x36')](_[_0xf48a('0x3f')](_0x49e260[_0xf48a('0x34')],_0x5a9e0d[_0xf48a('0x36')]),_0x27255a);if(_0x49e260[_0xf48a('0x34')][_0xf48a('0x40')]){_0x3eb3ca[_0xf48a('0x3e')]=_[_0xf48a('0x41')](_0x3eb3ca[_0xf48a('0x3e')],{'$or':_['map'](_0x27255a,function(_0x20cd0f){if(_0x20cd0f['type']!==_0xf48a('0x42')){var _0x177786={};_0x177786[_0x20cd0f['name']]={'$like':'%'+_0x49e260['query'][_0xf48a('0x40')]+'%'};return _0x177786;}})});}_0x3eb3ca=_[_0xf48a('0x41')]({},_0x3eb3ca,_0x49e260[_0xf48a('0x43')]);var _0x1f5c16={'where':_0x3eb3ca[_0xf48a('0x3e')]};return db['AnalyticExtractedReport'][_0xf48a('0x1f')](_0x1f5c16)['then'](function(_0x3da1ef){_0x5826c0[_0xf48a('0x1f')]=_0x3da1ef;if(_0x49e260[_0xf48a('0x34')][_0xf48a('0x44')]){_0x3eb3ca[_0xf48a('0x45')]=[{'all':!![]}];}return db[_0xf48a('0x2e')][_0xf48a('0x46')](_0x3eb3ca);})['then'](function(_0x4262a6){_0x5826c0['rows']=_0x4262a6;return _0x5826c0;})['then'](respondWithFilteredResult(_0x26f53c,_0x3eb3ca))['catch'](handleError(_0x26f53c,null));};exports[_0xf48a('0x47')]=function(_0x353310,_0x1460ae){var _0x5503ec={'raw':!![],'where':{'id':_0x353310[_0xf48a('0x48')]['id']}},_0x2da097={};_0x2da097[_0xf48a('0x33')]=_[_0xf48a('0x35')](db[_0xf48a('0x2e')][_0xf48a('0x2f')]);_0x2da097[_0xf48a('0x34')]=_[_0xf48a('0x35')](_0x353310[_0xf48a('0x34')]);_0x2da097[_0xf48a('0x36')]=_[_0xf48a('0x37')](_0x2da097[_0xf48a('0x33')],_0x2da097[_0xf48a('0x34')]);_0x5503ec['attributes']=_[_0xf48a('0x37')](_0x2da097[_0xf48a('0x33')],qs[_0xf48a('0x38')](_0x353310[_0xf48a('0x34')][_0xf48a('0x38')]));_0x5503ec['attributes']=_0x5503ec[_0xf48a('0x39')][_0xf48a('0x3a')]?_0x5503ec[_0xf48a('0x39')]:_0x2da097[_0xf48a('0x33')];if(_0x353310['query'][_0xf48a('0x44')]){_0x5503ec[_0xf48a('0x45')]=[{'all':!![]}];}_0x5503ec=_[_0xf48a('0x41')]({},_0x5503ec,_0x353310[_0xf48a('0x43')]);return db[_0xf48a('0x2e')]['find'](_0x5503ec)[_0xf48a('0x28')](handleEntityNotFound(_0x1460ae,null))['then'](respondWithResult(_0x1460ae,null))[_0xf48a('0x49')](handleError(_0x1460ae,null));};exports[_0xf48a('0x4a')]=function(_0x5f0d9a,_0x39b3c3){return db[_0xf48a('0x2e')][_0xf48a('0x4a')](_0x5f0d9a[_0xf48a('0x4b')],{})[_0xf48a('0x28')](function(_0x3d2f44){var _0x23a7b4=_0x5f0d9a[_0xf48a('0x4c')]['get']({'plain':!![]});if(!_0x23a7b4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x23a7b4[_0xf48a('0x4d')]===_0xf48a('0x4c')){var _0x308666=_0x3d2f44[_0xf48a('0x26')]({'plain':!![]});var _0x3a617e=_0xf48a('0x4e');return db[_0xf48a('0x4f')][_0xf48a('0x50')]({'where':{'name':_0x3a617e,'userProfileId':_0x23a7b4[_0xf48a('0x51')]},'raw':!![]})[_0xf48a('0x28')](function(_0x3a2124){if(_0x3a2124&&_0x3a2124[_0xf48a('0x52')]===0x0){return db[_0xf48a('0x27')][_0xf48a('0x4a')]({'name':_0x308666['name'],'resourceId':_0x308666['id'],'type':_0x3a2124[_0xf48a('0x2b')],'sectionId':_0x3a2124['id']},{})[_0xf48a('0x28')](function(){return _0x3d2f44;});}else{return _0x3d2f44;}})['catch'](function(_0x480c17){logger[_0xf48a('0x29')](_0xf48a('0x53'),_0x480c17);throw _0x480c17;});}return _0x3d2f44;})['then'](respondWithResult(_0x39b3c3,0xc9))['catch'](handleError(_0x39b3c3,null));};exports['update']=function(_0x5d858a,_0x3c47e0){if(_0x5d858a['body']['id']){delete _0x5d858a[_0xf48a('0x4b')]['id'];}return db[_0xf48a('0x2e')][_0xf48a('0x50')]({'where':{'id':_0x5d858a['params']['id']}})[_0xf48a('0x28')](handleEntityNotFound(_0x3c47e0,null))[_0xf48a('0x28')](saveUpdates(_0x5d858a['body'],null))[_0xf48a('0x28')](respondWithResult(_0x3c47e0,null))[_0xf48a('0x49')](handleError(_0x3c47e0,null));};exports[_0xf48a('0x25')]=function(_0x35bbaa,_0xb37a08){return db[_0xf48a('0x2e')][_0xf48a('0x50')]({'where':{'id':_0x35bbaa[_0xf48a('0x48')]['id']}})[_0xf48a('0x28')](handleEntityNotFound(_0xb37a08,null))[_0xf48a('0x28')](removeEntity(_0xb37a08,null))[_0xf48a('0x49')](handleError(_0xb37a08,null));};exports['download']=function(_0x855549,_0x4e0f68,_0xf35d85){return db[_0xf48a('0x2e')][_0xf48a('0x50')]({'where':{'id':_0x855549[_0xf48a('0x48')]['id']},'attributes':[_0xf48a('0x2b'),'basename',_0xf48a('0x54'),_0xf48a('0x55')],'raw':!![]})['then'](handleEntityNotFound(_0x4e0f68,null))['then'](function(_0x39a764){if(_0x39a764){if(!fs[_0xf48a('0x56')](path[_0xf48a('0x57')](config[_0xf48a('0x58')],_0xf48a('0x59'),_0x39a764[_0xf48a('0x54')]))){throw new db[(_0xf48a('0x5a'))][(_0xf48a('0x5b'))]('Report\x20not\x20found\x20or\x20empty');}if(_0x855549[_0xf48a('0x34')][_0xf48a('0x5c')]){return _0x4e0f68[_0xf48a('0x18')](0xc8);}return _0x4e0f68[_0xf48a('0x5d')](path[_0xf48a('0x57')](config['root'],'server/files/reports',_0x39a764[_0xf48a('0x54')]),util[_0xf48a('0x5e')](_0xf48a('0x5f'),_0x39a764[_0xf48a('0x60')]||_0x39a764['name'],_0x39a764[_0xf48a('0x55')][_0xf48a('0x61')]()));}})[_0xf48a('0x49')](handleError(_0x4e0f68,null));};