Built motion from commit (unavailable).|2.5.20
[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 _0xc151=['html-pdf','eml-format','rimraf','zip-dir','bluebird','mustache','util','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','set','apply','reject','then','destroy','Metrics','UserProfileResource','error','name','send','index','map','AnalyticMetric','rawAttributes','type','key','query','filters','intersection','model','attributes','fields','order','sort','where','merge','filter','options','count','includeAll','include','findAll','show','params','length','find','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update'];(function(_0xeed6,_0x38f35f){var _0x1804fb=function(_0x496368){while(--_0x496368){_0xeed6['push'](_0xeed6['shift']());}};_0x1804fb(++_0x38f35f);}(_0xc151,0x144));var _0x1c15=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xc151[_0x122ef9];return _0x42fba0;};'use strict';var pdf=require(_0x1c15('0x0'));var emlformat=require(_0x1c15('0x1'));var rimraf=require(_0x1c15('0x2'));var zipdir=require(_0x1c15('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x1c15('0x4'));var Mustache=require(_0x1c15('0x5'));var util=require(_0x1c15('0x6'));var path=require(_0x1c15('0x7'));var sox=require(_0x1c15('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x1c15('0x9'));var squel=require(_0x1c15('0xa'));var crypto=require(_0x1c15('0xb'));var jsforce=require(_0x1c15('0xc'));var deskjs=require(_0x1c15('0xd'));var toCsv=require(_0x1c15('0xe'));var querystring=require(_0x1c15('0xf'));var Papa=require(_0x1c15('0x10'));var Redis=require(_0x1c15('0x11'));var authService=require(_0x1c15('0x12'));var qs=require(_0x1c15('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1c15('0x14'));var logger=require(_0x1c15('0x15'))(_0x1c15('0x16'));var utils=require(_0x1c15('0x17'));var config=require(_0x1c15('0x18'));var licenseUtil=require(_0x1c15('0x19'));var db=require(_0x1c15('0x1a'))['db'];function respondWithStatusCode(_0x31642c,_0x4da11b){_0x4da11b=_0x4da11b||0xcc;return function(_0x438738){if(_0x438738){return _0x31642c[_0x1c15('0x1b')](_0x4da11b);}return _0x31642c[_0x1c15('0x1c')](_0x4da11b)[_0x1c15('0x1d')]();};}function respondWithResult(_0x4e4732,_0x16fc5f){_0x16fc5f=_0x16fc5f||0xc8;return function(_0x3259e9){if(_0x3259e9){return _0x4e4732['status'](_0x16fc5f)[_0x1c15('0x1e')](_0x3259e9);}};}function respondWithFilteredResult(_0x5bf148,_0x1c2cd9){return function(_0x1600d0){if(_0x1600d0){var _0x7ddd27=_0x1600d0['count'],_0x431d01=_0x1c2cd9['offset'],_0xccc7db=_0x1c2cd9[_0x1c15('0x1f')]+_0x1c2cd9[_0x1c15('0x20')],_0x1e122b;if(_0xccc7db>=_0x7ddd27){_0xccc7db=_0x7ddd27;_0x1e122b=0xc8;}else{_0x1e122b=0xce;}_0x5bf148[_0x1c15('0x1c')](_0x1e122b);return _0x5bf148[_0x1c15('0x21')]('Content-Range',_0x431d01+'-'+_0xccc7db+'/'+_0x7ddd27)['json'](_0x1600d0);}return null;};}function patchUpdates(_0x121903){return function(_0x546afa){try{jsonpatch[_0x1c15('0x22')](_0x546afa,_0x121903,!![]);}catch(_0x6e0a58){return BPromise[_0x1c15('0x23')](_0x6e0a58);}return _0x546afa['save']();};}function saveUpdates(_0x1c1491,_0x1a1fb8){return function(_0x7db123){if(_0x7db123){return _0x7db123['update'](_0x1c1491)[_0x1c15('0x24')](function(_0x7e86d5){return _0x7e86d5;});}return null;};}function removeEntity(_0x2ccba5,_0x114692){return function(_0x4c0f59){if(_0x4c0f59){return _0x4c0f59[_0x1c15('0x25')]()[_0x1c15('0x24')](function(){var _0x6f8234=_0x4c0f59['get']({'plain':!![]});var _0x180e16=_0x1c15('0x26');return db[_0x1c15('0x27')]['destroy']({'where':{'type':_0x180e16,'resourceId':_0x6f8234['id']}})[_0x1c15('0x24')](function(){return _0x4c0f59;});})[_0x1c15('0x24')](function(){_0x2ccba5[_0x1c15('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x37d803,_0x12432b){return function(_0x47f4b7){if(!_0x47f4b7){_0x37d803[_0x1c15('0x1b')](0x194);}return _0x47f4b7;};}function handleError(_0x15701f,_0xada552){_0xada552=_0xada552||0x1f4;return function(_0x15b32f){logger[_0x1c15('0x28')](_0x15b32f['stack']);if(_0x15b32f[_0x1c15('0x29')]){delete _0x15b32f[_0x1c15('0x29')];}_0x15701f[_0x1c15('0x1c')](_0xada552)[_0x1c15('0x2a')](_0x15b32f);};}exports[_0x1c15('0x2b')]=function(_0x2f4790,_0x3231ef){var _0x4b9e6f={},_0xc4b4a8={},_0x215f4c={'count':0x0,'rows':[]};var _0x411488=_[_0x1c15('0x2c')](db[_0x1c15('0x2d')][_0x1c15('0x2e')],function(_0x14e4e9){return{'name':_0x14e4e9['fieldName'],'type':_0x14e4e9[_0x1c15('0x2f')][_0x1c15('0x30')]};});_0xc4b4a8['model']=_[_0x1c15('0x2c')](_0x411488,_0x1c15('0x29'));_0xc4b4a8[_0x1c15('0x31')]=_['keys'](_0x2f4790[_0x1c15('0x31')]);_0xc4b4a8[_0x1c15('0x32')]=_[_0x1c15('0x33')](_0xc4b4a8[_0x1c15('0x34')],_0xc4b4a8[_0x1c15('0x31')]);_0x4b9e6f[_0x1c15('0x35')]=_[_0x1c15('0x33')](_0xc4b4a8[_0x1c15('0x34')],qs[_0x1c15('0x36')](_0x2f4790['query'][_0x1c15('0x36')]));_0x4b9e6f[_0x1c15('0x35')]=_0x4b9e6f[_0x1c15('0x35')]['length']?_0x4b9e6f['attributes']:_0xc4b4a8[_0x1c15('0x34')];if(!_0x2f4790[_0x1c15('0x31')]['hasOwnProperty']('nolimit')){_0x4b9e6f[_0x1c15('0x20')]=qs[_0x1c15('0x20')](_0x2f4790['query'][_0x1c15('0x20')]);_0x4b9e6f[_0x1c15('0x1f')]=qs['offset'](_0x2f4790[_0x1c15('0x31')][_0x1c15('0x1f')]);}_0x4b9e6f[_0x1c15('0x37')]=qs[_0x1c15('0x38')](_0x2f4790['query'][_0x1c15('0x38')]);_0x4b9e6f[_0x1c15('0x39')]=qs[_0x1c15('0x32')](_['pick'](_0x2f4790['query'],_0xc4b4a8[_0x1c15('0x32')]),_0x411488);if(_0x2f4790[_0x1c15('0x31')]['filter']){_0x4b9e6f[_0x1c15('0x39')]=_[_0x1c15('0x3a')](_0x4b9e6f[_0x1c15('0x39')],{'$or':_[_0x1c15('0x2c')](_0x411488,function(_0x3568bc){if(_0x3568bc[_0x1c15('0x2f')]!=='VIRTUAL'){var _0x426092={};_0x426092[_0x3568bc[_0x1c15('0x29')]]={'$like':'%'+_0x2f4790[_0x1c15('0x31')][_0x1c15('0x3b')]+'%'};return _0x426092;}})});}_0x4b9e6f=_[_0x1c15('0x3a')]({},_0x4b9e6f,_0x2f4790[_0x1c15('0x3c')]);var _0x51fd55={'where':_0x4b9e6f[_0x1c15('0x39')]};return db['AnalyticMetric'][_0x1c15('0x3d')](_0x51fd55)[_0x1c15('0x24')](function(_0x3f2f9a){_0x215f4c[_0x1c15('0x3d')]=_0x3f2f9a;if(_0x2f4790['query'][_0x1c15('0x3e')]){_0x4b9e6f[_0x1c15('0x3f')]=[{'all':!![]}];}return db[_0x1c15('0x2d')][_0x1c15('0x40')](_0x4b9e6f);})['then'](function(_0x250001){_0x215f4c['rows']=_0x250001;return _0x215f4c;})[_0x1c15('0x24')](respondWithFilteredResult(_0x3231ef,_0x4b9e6f))['catch'](handleError(_0x3231ef,null));};exports[_0x1c15('0x41')]=function(_0x3164b0,_0x26d384){var _0x16896a={'raw':!![],'where':{'id':_0x3164b0[_0x1c15('0x42')]['id']}},_0x50ad1d={};_0x50ad1d[_0x1c15('0x34')]=_['keys'](db[_0x1c15('0x2d')][_0x1c15('0x2e')]);_0x50ad1d[_0x1c15('0x31')]=_['keys'](_0x3164b0['query']);_0x50ad1d[_0x1c15('0x32')]=_[_0x1c15('0x33')](_0x50ad1d[_0x1c15('0x34')],_0x50ad1d[_0x1c15('0x31')]);_0x16896a[_0x1c15('0x35')]=_[_0x1c15('0x33')](_0x50ad1d[_0x1c15('0x34')],qs[_0x1c15('0x36')](_0x3164b0[_0x1c15('0x31')]['fields']));_0x16896a['attributes']=_0x16896a[_0x1c15('0x35')][_0x1c15('0x43')]?_0x16896a[_0x1c15('0x35')]:_0x50ad1d['model'];if(_0x3164b0['query'][_0x1c15('0x3e')]){_0x16896a['include']=[{'all':!![]}];}_0x16896a=_[_0x1c15('0x3a')]({},_0x16896a,_0x3164b0['options']);return db[_0x1c15('0x2d')][_0x1c15('0x44')](_0x16896a)['then'](handleEntityNotFound(_0x26d384,null))['then'](respondWithResult(_0x26d384,null))[_0x1c15('0x45')](handleError(_0x26d384,null));};exports[_0x1c15('0x46')]=function(_0x5a845f,_0x1907db){return db[_0x1c15('0x2d')]['create'](_0x5a845f[_0x1c15('0x47')],{})[_0x1c15('0x24')](function(_0x5b3c28){var _0x570f74=_0x5a845f[_0x1c15('0x48')][_0x1c15('0x49')]({'plain':!![]});if(!_0x570f74)throw new Error(_0x1c15('0x4a'));if(_0x570f74[_0x1c15('0x4b')]===_0x1c15('0x48')){var _0x1ef6bb=_0x5b3c28[_0x1c15('0x49')]({'plain':!![]});var _0x15b1ca=_0x1c15('0x26');return db[_0x1c15('0x4c')][_0x1c15('0x44')]({'where':{'name':_0x15b1ca,'userProfileId':_0x570f74[_0x1c15('0x4d')]},'raw':!![]})[_0x1c15('0x24')](function(_0x82a42c){if(_0x82a42c&&_0x82a42c[_0x1c15('0x4e')]===0x0){return db['UserProfileResource'][_0x1c15('0x46')]({'name':_0x1ef6bb[_0x1c15('0x29')],'resourceId':_0x1ef6bb['id'],'type':_0x82a42c['name'],'sectionId':_0x82a42c['id']},{})[_0x1c15('0x24')](function(){return _0x5b3c28;});}else{return _0x5b3c28;}})[_0x1c15('0x45')](function(_0x203702){logger['error'](_0x1c15('0x4f'),_0x203702);throw _0x203702;});}return _0x5b3c28;})[_0x1c15('0x24')](respondWithResult(_0x1907db,0xc9))['catch'](handleError(_0x1907db,null));};exports[_0x1c15('0x50')]=function(_0x19be6c,_0x567ad3){if(_0x19be6c[_0x1c15('0x47')]['id']){delete _0x19be6c[_0x1c15('0x47')]['id'];}return db[_0x1c15('0x2d')][_0x1c15('0x44')]({'where':{'id':_0x19be6c['params']['id']}})[_0x1c15('0x24')](handleEntityNotFound(_0x567ad3,null))[_0x1c15('0x24')](saveUpdates(_0x19be6c[_0x1c15('0x47')],null))[_0x1c15('0x24')](respondWithResult(_0x567ad3,null))[_0x1c15('0x45')](handleError(_0x567ad3,null));};exports[_0x1c15('0x25')]=function(_0x2a842f,_0x4d7a2b){return db[_0x1c15('0x2d')]['find']({'where':{'id':_0x2a842f[_0x1c15('0x42')]['id']}})[_0x1c15('0x24')](handleEntityNotFound(_0x4d7a2b,null))['then'](removeEntity(_0x4d7a2b,null))[_0x1c15('0x45')](handleError(_0x4d7a2b,null));};