Built motion from commit (unavailable).|2.5.21
[motion2.git] / server / api / analyticMetric / analyticMetric.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 _0xf8a8=['merge','options','AnalyticMetric','findAll','catch','params','includeAll','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Metrics','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','eml-format','zip-dir','fast-json-patch','bluebird','util','path','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','end','status','count','offset','set','Content-Range','json','apply','reject','save','update','destroy','then','get','error','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','VIRTUAL'];(function(_0x279902,_0x4429de){var _0x446f6e=function(_0x59dc05){while(--_0x59dc05){_0x279902['push'](_0x279902['shift']());}};_0x446f6e(++_0x4429de);}(_0xf8a8,0xad));var _0x8f8a=function(_0x4dbaad,_0x730318){_0x4dbaad=_0x4dbaad-0x0;var _0x226c72=_0xf8a8[_0x4dbaad];return _0x226c72;};'use strict';var pdf=require(_0x8f8a('0x0'));var emlformat=require(_0x8f8a('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x8f8a('0x2'));var jsonpatch=require(_0x8f8a('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x8f8a('0x4'));var Mustache=require('mustache');var util=require(_0x8f8a('0x5'));var path=require(_0x8f8a('0x6'));var sox=require('sox');var csv=require(_0x8f8a('0x7'));var ejs=require(_0x8f8a('0x8'));var fs=require('fs');var _=require(_0x8f8a('0x9'));var squel=require('squel');var crypto=require(_0x8f8a('0xa'));var jsforce=require(_0x8f8a('0xb'));var deskjs=require(_0x8f8a('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x8f8a('0xd'));var Redis=require('ioredis');var authService=require(_0x8f8a('0xe'));var qs=require(_0x8f8a('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8f8a('0x10'));var logger=require(_0x8f8a('0x11'))('api');var utils=require(_0x8f8a('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x8f8a('0x13'))['db'];function respondWithStatusCode(_0x5accc7,_0x1363e6){_0x1363e6=_0x1363e6||0xcc;return function(_0x43bbaf){if(_0x43bbaf){return _0x5accc7['sendStatus'](_0x1363e6);}return _0x5accc7['status'](_0x1363e6)[_0x8f8a('0x14')]();};}function respondWithResult(_0x982552,_0x1eff3a){_0x1eff3a=_0x1eff3a||0xc8;return function(_0x211516){if(_0x211516){return _0x982552[_0x8f8a('0x15')](_0x1eff3a)['json'](_0x211516);}};}function respondWithFilteredResult(_0x5bd3f0,_0x1286ae){return function(_0x57fd0b){if(_0x57fd0b){var _0x258a16=_0x57fd0b[_0x8f8a('0x16')],_0x4cc05a=_0x1286ae[_0x8f8a('0x17')],_0x1a02c4=_0x1286ae['offset']+_0x1286ae['limit'],_0xae5df2;if(_0x1a02c4>=_0x258a16){_0x1a02c4=_0x258a16;_0xae5df2=0xc8;}else{_0xae5df2=0xce;}_0x5bd3f0[_0x8f8a('0x15')](_0xae5df2);return _0x5bd3f0[_0x8f8a('0x18')](_0x8f8a('0x19'),_0x4cc05a+'-'+_0x1a02c4+'/'+_0x258a16)[_0x8f8a('0x1a')](_0x57fd0b);}return null;};}function patchUpdates(_0x5eda2b){return function(_0x582366){try{jsonpatch[_0x8f8a('0x1b')](_0x582366,_0x5eda2b,!![]);}catch(_0x21967a){return BPromise[_0x8f8a('0x1c')](_0x21967a);}return _0x582366[_0x8f8a('0x1d')]();};}function saveUpdates(_0x5d45fb,_0x5850fe){return function(_0xbd9582){if(_0xbd9582){return _0xbd9582[_0x8f8a('0x1e')](_0x5d45fb)['then'](function(_0x449f50){return _0x449f50;});}return null;};}function removeEntity(_0x35ca0f,_0x1227e4){return function(_0xa0eb8c){if(_0xa0eb8c){return _0xa0eb8c[_0x8f8a('0x1f')]()[_0x8f8a('0x20')](function(){var _0x344f0b=_0xa0eb8c[_0x8f8a('0x21')]({'plain':!![]});var _0x29d451='Metrics';return db['UserProfileResource'][_0x8f8a('0x1f')]({'where':{'type':_0x29d451,'resourceId':_0x344f0b['id']}})[_0x8f8a('0x20')](function(){return _0xa0eb8c;});})['then'](function(){_0x35ca0f['status'](0xcc)[_0x8f8a('0x14')]();});}};}function handleEntityNotFound(_0x1ea350,_0x2aa3c6){return function(_0x259e77){if(!_0x259e77){_0x1ea350['sendStatus'](0x194);}return _0x259e77;};}function handleError(_0x103391,_0x50cc0f){_0x50cc0f=_0x50cc0f||0x1f4;return function(_0x271e30){logger[_0x8f8a('0x22')](_0x271e30['stack']);if(_0x271e30[_0x8f8a('0x23')]){delete _0x271e30[_0x8f8a('0x23')];}_0x103391[_0x8f8a('0x15')](_0x50cc0f)[_0x8f8a('0x24')](_0x271e30);};}exports[_0x8f8a('0x25')]=function(_0x134384,_0x190c94){var _0x89416b={},_0x30fa62={},_0x1c9ab6={'count':0x0,'rows':[]};var _0x19276c=_[_0x8f8a('0x26')](db['AnalyticMetric'][_0x8f8a('0x27')],function(_0x39e854){return{'name':_0x39e854[_0x8f8a('0x28')],'type':_0x39e854[_0x8f8a('0x29')][_0x8f8a('0x2a')]};});_0x30fa62['model']=_['map'](_0x19276c,_0x8f8a('0x23'));_0x30fa62[_0x8f8a('0x2b')]=_[_0x8f8a('0x2c')](_0x134384[_0x8f8a('0x2b')]);_0x30fa62[_0x8f8a('0x2d')]=_[_0x8f8a('0x2e')](_0x30fa62[_0x8f8a('0x2f')],_0x30fa62['query']);_0x89416b[_0x8f8a('0x30')]=_[_0x8f8a('0x2e')](_0x30fa62[_0x8f8a('0x2f')],qs[_0x8f8a('0x31')](_0x134384[_0x8f8a('0x2b')]['fields']));_0x89416b[_0x8f8a('0x30')]=_0x89416b['attributes'][_0x8f8a('0x32')]?_0x89416b[_0x8f8a('0x30')]:_0x30fa62[_0x8f8a('0x2f')];if(!_0x134384['query'][_0x8f8a('0x33')](_0x8f8a('0x34'))){_0x89416b[_0x8f8a('0x35')]=qs[_0x8f8a('0x35')](_0x134384[_0x8f8a('0x2b')][_0x8f8a('0x35')]);_0x89416b[_0x8f8a('0x17')]=qs[_0x8f8a('0x17')](_0x134384[_0x8f8a('0x2b')]['offset']);}_0x89416b[_0x8f8a('0x36')]=qs['sort'](_0x134384[_0x8f8a('0x2b')][_0x8f8a('0x37')]);_0x89416b[_0x8f8a('0x38')]=qs[_0x8f8a('0x2d')](_['pick'](_0x134384[_0x8f8a('0x2b')],_0x30fa62[_0x8f8a('0x2d')]),_0x19276c);if(_0x134384[_0x8f8a('0x2b')]['filter']){_0x89416b['where']=_['merge'](_0x89416b[_0x8f8a('0x38')],{'$or':_[_0x8f8a('0x26')](_0x19276c,function(_0x38d31e){if(_0x38d31e['type']!==_0x8f8a('0x39')){var _0x27da70={};_0x27da70[_0x38d31e[_0x8f8a('0x23')]]={'$like':'%'+_0x134384['query']['filter']+'%'};return _0x27da70;}})});}_0x89416b=_[_0x8f8a('0x3a')]({},_0x89416b,_0x134384[_0x8f8a('0x3b')]);var _0x2026d4={'where':_0x89416b[_0x8f8a('0x38')]};return db[_0x8f8a('0x3c')][_0x8f8a('0x16')](_0x2026d4)[_0x8f8a('0x20')](function(_0x1a98a3){_0x1c9ab6[_0x8f8a('0x16')]=_0x1a98a3;if(_0x134384[_0x8f8a('0x2b')]['includeAll']){_0x89416b['include']=[{'all':!![]}];}return db[_0x8f8a('0x3c')][_0x8f8a('0x3d')](_0x89416b);})[_0x8f8a('0x20')](function(_0x2c9d6e){_0x1c9ab6['rows']=_0x2c9d6e;return _0x1c9ab6;})['then'](respondWithFilteredResult(_0x190c94,_0x89416b))[_0x8f8a('0x3e')](handleError(_0x190c94,null));};exports['show']=function(_0x481f79,_0x8cb3e5){var _0x4c6875={'raw':!![],'where':{'id':_0x481f79[_0x8f8a('0x3f')]['id']}},_0x5c88cf={};_0x5c88cf[_0x8f8a('0x2f')]=_[_0x8f8a('0x2c')](db[_0x8f8a('0x3c')]['rawAttributes']);_0x5c88cf[_0x8f8a('0x2b')]=_[_0x8f8a('0x2c')](_0x481f79[_0x8f8a('0x2b')]);_0x5c88cf[_0x8f8a('0x2d')]=_[_0x8f8a('0x2e')](_0x5c88cf[_0x8f8a('0x2f')],_0x5c88cf[_0x8f8a('0x2b')]);_0x4c6875[_0x8f8a('0x30')]=_['intersection'](_0x5c88cf[_0x8f8a('0x2f')],qs[_0x8f8a('0x31')](_0x481f79[_0x8f8a('0x2b')]['fields']));_0x4c6875['attributes']=_0x4c6875[_0x8f8a('0x30')][_0x8f8a('0x32')]?_0x4c6875[_0x8f8a('0x30')]:_0x5c88cf[_0x8f8a('0x2f')];if(_0x481f79[_0x8f8a('0x2b')][_0x8f8a('0x40')]){_0x4c6875[_0x8f8a('0x41')]=[{'all':!![]}];}_0x4c6875=_[_0x8f8a('0x3a')]({},_0x4c6875,_0x481f79[_0x8f8a('0x3b')]);return db[_0x8f8a('0x3c')][_0x8f8a('0x42')](_0x4c6875)[_0x8f8a('0x20')](handleEntityNotFound(_0x8cb3e5,null))[_0x8f8a('0x20')](respondWithResult(_0x8cb3e5,null))[_0x8f8a('0x3e')](handleError(_0x8cb3e5,null));};exports[_0x8f8a('0x43')]=function(_0x375f37,_0x1e9121){return db[_0x8f8a('0x3c')][_0x8f8a('0x43')](_0x375f37[_0x8f8a('0x44')],{})[_0x8f8a('0x20')](function(_0x333961){var _0x3276cb=_0x375f37['user'][_0x8f8a('0x21')]({'plain':!![]});if(!_0x3276cb)throw new Error(_0x8f8a('0x45'));if(_0x3276cb[_0x8f8a('0x46')]==='user'){var _0x3fee7f=_0x333961[_0x8f8a('0x21')]({'plain':!![]});var _0x298d3d=_0x8f8a('0x47');return db[_0x8f8a('0x48')][_0x8f8a('0x42')]({'where':{'name':_0x298d3d,'userProfileId':_0x3276cb[_0x8f8a('0x49')]},'raw':!![]})[_0x8f8a('0x20')](function(_0x312e51){if(_0x312e51&&_0x312e51[_0x8f8a('0x4a')]===0x0){return db[_0x8f8a('0x4b')]['create']({'name':_0x3fee7f['name'],'resourceId':_0x3fee7f['id'],'type':_0x312e51[_0x8f8a('0x23')],'sectionId':_0x312e51['id']},{})[_0x8f8a('0x20')](function(){return _0x333961;});}else{return _0x333961;}})[_0x8f8a('0x3e')](function(_0x5e0904){logger['error'](_0x8f8a('0x4c'),_0x5e0904);throw _0x5e0904;});}return _0x333961;})[_0x8f8a('0x20')](respondWithResult(_0x1e9121,0xc9))['catch'](handleError(_0x1e9121,null));};exports[_0x8f8a('0x1e')]=function(_0x595393,_0x12745b){if(_0x595393[_0x8f8a('0x44')]['id']){delete _0x595393[_0x8f8a('0x44')]['id'];}return db[_0x8f8a('0x3c')][_0x8f8a('0x42')]({'where':{'id':_0x595393[_0x8f8a('0x3f')]['id']}})['then'](handleEntityNotFound(_0x12745b,null))[_0x8f8a('0x20')](saveUpdates(_0x595393[_0x8f8a('0x44')],null))[_0x8f8a('0x20')](respondWithResult(_0x12745b,null))[_0x8f8a('0x3e')](handleError(_0x12745b,null));};exports[_0x8f8a('0x1f')]=function(_0x690b79,_0x76fdff){return db['AnalyticMetric'][_0x8f8a('0x42')]({'where':{'id':_0x690b79[_0x8f8a('0x3f')]['id']}})[_0x8f8a('0x20')](handleEntityNotFound(_0x76fdff,null))[_0x8f8a('0x20')](removeEntity(_0x76fdff,null))[_0x8f8a('0x3e')](handleError(_0x76fdff,null));};