Built motion from commit (unavailable).|2.5.4
[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 _0xa1cc=['error','stack','name','send','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','AnalyticMetric','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Metrics','userProfileId','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','crypto','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','update','then','get','UserProfileResource','destroy'];(function(_0x13594e,_0x6f0ed0){var _0x1a4f42=function(_0x30b064){while(--_0x30b064){_0x13594e['push'](_0x13594e['shift']());}};_0x1a4f42(++_0x6f0ed0);}(_0xa1cc,0x10f));var _0xca1c=function(_0x55e59a,_0x4139cc){_0x55e59a=_0x55e59a-0x0;var _0x455228=_0xa1cc[_0x55e59a];return _0x455228;};'use strict';var pdf=require(_0xca1c('0x0'));var emlformat=require(_0xca1c('0x1'));var rimraf=require(_0xca1c('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xca1c('0x3'));var rp=require(_0xca1c('0x4'));var moment=require(_0xca1c('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xca1c('0x6'));var util=require('util');var path=require(_0xca1c('0x7'));var sox=require(_0xca1c('0x8'));var csv=require(_0xca1c('0x9'));var ejs=require(_0xca1c('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xca1c('0xb'));var jsforce=require(_0xca1c('0xc'));var deskjs=require(_0xca1c('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xca1c('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xca1c('0xf'));var as=require(_0xca1c('0x10'));var hardwareService=require(_0xca1c('0x11'));var logger=require(_0xca1c('0x12'))(_0xca1c('0x13'));var utils=require('../../config/utils');var config=require(_0xca1c('0x14'));var db=require(_0xca1c('0x15'))['db'];function respondWithStatusCode(_0x5d4588,_0x3029fd){_0x3029fd=_0x3029fd||0xcc;return function(_0x5d60df){if(_0x5d60df){return _0x5d4588[_0xca1c('0x16')](_0x3029fd);}return _0x5d4588[_0xca1c('0x17')](_0x3029fd)[_0xca1c('0x18')]();};}function respondWithResult(_0x55c182,_0x344d4c){_0x344d4c=_0x344d4c||0xc8;return function(_0x222a56){if(_0x222a56){return _0x55c182['status'](_0x344d4c)['json'](_0x222a56);}};}function respondWithFilteredResult(_0x305077,_0x2b55fd){return function(_0x196a66){if(_0x196a66){var _0x18e6ac=_0x196a66[_0xca1c('0x19')],_0x2644f0=_0x2b55fd[_0xca1c('0x1a')],_0x3ba29e=_0x2b55fd[_0xca1c('0x1a')]+_0x2b55fd[_0xca1c('0x1b')],_0x1347cf;if(_0x3ba29e>=_0x18e6ac){_0x3ba29e=_0x18e6ac;_0x1347cf=0xc8;}else{_0x1347cf=0xce;}_0x305077[_0xca1c('0x17')](_0x1347cf);return _0x305077[_0xca1c('0x1c')](_0xca1c('0x1d'),_0x2644f0+'-'+_0x3ba29e+'/'+_0x18e6ac)[_0xca1c('0x1e')](_0x196a66);}return null;};}function patchUpdates(_0x2c37de){return function(_0x47c9b0){try{jsonpatch[_0xca1c('0x1f')](_0x47c9b0,_0x2c37de,!![]);}catch(_0x202808){return BPromise['reject'](_0x202808);}return _0x47c9b0['save']();};}function saveUpdates(_0x13015c,_0x10f801){return function(_0x31aa79){if(_0x31aa79){return _0x31aa79[_0xca1c('0x20')](_0x13015c)[_0xca1c('0x21')](function(_0x13fa17){return _0x13fa17;});}return null;};}function removeEntity(_0x9c75a4,_0x5d23ac){return function(_0x115b4d){if(_0x115b4d){return _0x115b4d['destroy']()[_0xca1c('0x21')](function(){var _0x348c77=_0x115b4d[_0xca1c('0x22')]({'plain':!![]});var _0x40b169='Metrics';return db[_0xca1c('0x23')][_0xca1c('0x24')]({'where':{'type':_0x40b169,'resourceId':_0x348c77['id']}})['then'](function(){return _0x115b4d;});})[_0xca1c('0x21')](function(){_0x9c75a4['status'](0xcc)[_0xca1c('0x18')]();});}};}function handleEntityNotFound(_0x13ff50,_0x2868c4){return function(_0x77ea99){if(!_0x77ea99){_0x13ff50['sendStatus'](0x194);}return _0x77ea99;};}function handleError(_0x1c3056,_0xa1a686){_0xa1a686=_0xa1a686||0x1f4;return function(_0x75de96){logger[_0xca1c('0x25')](_0x75de96[_0xca1c('0x26')]);if(_0x75de96[_0xca1c('0x27')]){delete _0x75de96[_0xca1c('0x27')];}_0x1c3056['status'](_0xa1a686)[_0xca1c('0x28')](_0x75de96);};}exports['index']=function(_0x573fc,_0x31042a){var _0x4a2406={},_0xb2db36={},_0x3ffa43={'count':0x0,'rows':[]};var _0xec343f=_[_0xca1c('0x29')](db['AnalyticMetric'][_0xca1c('0x2a')],function(_0x267c92){return{'name':_0x267c92[_0xca1c('0x2b')],'type':_0x267c92[_0xca1c('0x2c')]['key']};});_0xb2db36[_0xca1c('0x2d')]=_['map'](_0xec343f,'name');_0xb2db36[_0xca1c('0x2e')]=_[_0xca1c('0x2f')](_0x573fc[_0xca1c('0x2e')]);_0xb2db36[_0xca1c('0x30')]=_[_0xca1c('0x31')](_0xb2db36['model'],_0xb2db36['query']);_0x4a2406[_0xca1c('0x32')]=_[_0xca1c('0x31')](_0xb2db36[_0xca1c('0x2d')],qs[_0xca1c('0x33')](_0x573fc[_0xca1c('0x2e')]['fields']));_0x4a2406[_0xca1c('0x32')]=_0x4a2406['attributes'][_0xca1c('0x34')]?_0x4a2406[_0xca1c('0x32')]:_0xb2db36[_0xca1c('0x2d')];if(!_0x573fc[_0xca1c('0x2e')]['hasOwnProperty'](_0xca1c('0x35'))){_0x4a2406[_0xca1c('0x1b')]=qs[_0xca1c('0x1b')](_0x573fc[_0xca1c('0x2e')][_0xca1c('0x1b')]);_0x4a2406[_0xca1c('0x1a')]=qs[_0xca1c('0x1a')](_0x573fc[_0xca1c('0x2e')][_0xca1c('0x1a')]);}_0x4a2406[_0xca1c('0x36')]=qs[_0xca1c('0x37')](_0x573fc[_0xca1c('0x2e')]['sort']);_0x4a2406[_0xca1c('0x38')]=qs[_0xca1c('0x30')](_['pick'](_0x573fc[_0xca1c('0x2e')],_0xb2db36[_0xca1c('0x30')]),_0xec343f);if(_0x573fc['query'][_0xca1c('0x39')]){_0x4a2406[_0xca1c('0x38')]=_[_0xca1c('0x3a')](_0x4a2406['where'],{'$or':_[_0xca1c('0x29')](_0xec343f,function(_0x192658){if(_0x192658['type']!==_0xca1c('0x3b')){var _0x59233b={};_0x59233b[_0x192658['name']]={'$like':'%'+_0x573fc[_0xca1c('0x2e')][_0xca1c('0x39')]+'%'};return _0x59233b;}})});}_0x4a2406=_[_0xca1c('0x3a')]({},_0x4a2406,_0x573fc['options']);var _0x16d00c={'where':_0x4a2406[_0xca1c('0x38')]};return db[_0xca1c('0x3c')][_0xca1c('0x19')](_0x16d00c)[_0xca1c('0x21')](function(_0x355451){_0x3ffa43[_0xca1c('0x19')]=_0x355451;if(_0x573fc[_0xca1c('0x2e')][_0xca1c('0x3d')]){_0x4a2406[_0xca1c('0x3e')]=[{'all':!![]}];}return db[_0xca1c('0x3c')][_0xca1c('0x3f')](_0x4a2406);})[_0xca1c('0x21')](function(_0x9ce40e){_0x3ffa43[_0xca1c('0x40')]=_0x9ce40e;return _0x3ffa43;})[_0xca1c('0x21')](respondWithFilteredResult(_0x31042a,_0x4a2406))['catch'](handleError(_0x31042a,null));};exports[_0xca1c('0x41')]=function(_0x3f81ae,_0x55fb2a){var _0x34609c={'raw':!![],'where':{'id':_0x3f81ae[_0xca1c('0x42')]['id']}},_0x14e75a={};_0x14e75a[_0xca1c('0x2d')]=_[_0xca1c('0x2f')](db[_0xca1c('0x3c')][_0xca1c('0x2a')]);_0x14e75a['query']=_['keys'](_0x3f81ae[_0xca1c('0x2e')]);_0x14e75a[_0xca1c('0x30')]=_[_0xca1c('0x31')](_0x14e75a['model'],_0x14e75a[_0xca1c('0x2e')]);_0x34609c[_0xca1c('0x32')]=_['intersection'](_0x14e75a[_0xca1c('0x2d')],qs[_0xca1c('0x33')](_0x3f81ae[_0xca1c('0x2e')][_0xca1c('0x33')]));_0x34609c['attributes']=_0x34609c[_0xca1c('0x32')]['length']?_0x34609c[_0xca1c('0x32')]:_0x14e75a['model'];if(_0x3f81ae[_0xca1c('0x2e')][_0xca1c('0x3d')]){_0x34609c['include']=[{'all':!![]}];}_0x34609c=_['merge']({},_0x34609c,_0x3f81ae[_0xca1c('0x43')]);return db[_0xca1c('0x3c')][_0xca1c('0x44')](_0x34609c)[_0xca1c('0x21')](handleEntityNotFound(_0x55fb2a,null))[_0xca1c('0x21')](respondWithResult(_0x55fb2a,null))[_0xca1c('0x45')](handleError(_0x55fb2a,null));};exports[_0xca1c('0x46')]=function(_0x227a80,_0x5e6fb1){return db[_0xca1c('0x3c')][_0xca1c('0x46')](_0x227a80[_0xca1c('0x47')],{})[_0xca1c('0x21')](function(_0x2b1140){var _0x166d45=_0x227a80[_0xca1c('0x48')][_0xca1c('0x22')]({'plain':!![]});if(!_0x166d45)throw new Error(_0xca1c('0x49'));if(_0x166d45[_0xca1c('0x4a')]===_0xca1c('0x48')){var _0x584df6=_0x2b1140[_0xca1c('0x22')]({'plain':!![]});var _0x29e65a=_0xca1c('0x4b');return db['UserProfileSection']['find']({'where':{'name':_0x29e65a,'userProfileId':_0x166d45[_0xca1c('0x4c')]},'raw':!![]})[_0xca1c('0x21')](function(_0x2b4eb4){if(_0x2b4eb4&&_0x2b4eb4['autoAssociation']===0x0){return db['UserProfileResource'][_0xca1c('0x46')]({'name':_0x584df6[_0xca1c('0x27')],'resourceId':_0x584df6['id'],'type':_0x2b4eb4['name'],'sectionId':_0x2b4eb4['id']},{})[_0xca1c('0x21')](function(){return _0x2b1140;});}else{return _0x2b1140;}})['catch'](function(_0xb75be3){logger[_0xca1c('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xb75be3);throw _0xb75be3;});}return _0x2b1140;})[_0xca1c('0x21')](respondWithResult(_0x5e6fb1,0xc9))[_0xca1c('0x45')](handleError(_0x5e6fb1,null));};exports[_0xca1c('0x20')]=function(_0x479629,_0x3c7fc9){if(_0x479629[_0xca1c('0x47')]['id']){delete _0x479629['body']['id'];}return db[_0xca1c('0x3c')]['find']({'where':{'id':_0x479629['params']['id']}})['then'](handleEntityNotFound(_0x3c7fc9,null))[_0xca1c('0x21')](saveUpdates(_0x479629['body'],null))[_0xca1c('0x21')](respondWithResult(_0x3c7fc9,null))[_0xca1c('0x45')](handleError(_0x3c7fc9,null));};exports[_0xca1c('0x24')]=function(_0x269014,_0x16633b){return db[_0xca1c('0x3c')]['find']({'where':{'id':_0x269014[_0xca1c('0x42')]['id']}})[_0xca1c('0x21')](handleEntityNotFound(_0x16633b,null))[_0xca1c('0x21')](removeEntity(_0x16633b,null))[_0xca1c('0x45')](handleError(_0x16633b,null));};