Built motion from commit (unavailable).|2.5.15
[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 _0x7721=['bluebird','mustache','util','squel','crypto','to-csv','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','destroy','then','get','Metrics','UserProfileResource','error','stack','name','send','index','map','AnalyticMetric','rawAttributes','type','key','model','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','findAll','catch','params','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x32ee02,_0x166cf8){var _0x363be0=function(_0xdaf2d7){while(--_0xdaf2d7){_0x32ee02['push'](_0x32ee02['shift']());}};_0x363be0(++_0x166cf8);}(_0x7721,0xe0));var _0x1772=function(_0x5e7246,_0x507efb){_0x5e7246=_0x5e7246-0x0;var _0x2ccdad=_0x7721[_0x5e7246];return _0x2ccdad;};'use strict';var pdf=require(_0x1772('0x0'));var emlformat=require(_0x1772('0x1'));var rimraf=require(_0x1772('0x2'));var zipdir=require(_0x1772('0x3'));var jsonpatch=require(_0x1772('0x4'));var rp=require(_0x1772('0x5'));var moment=require(_0x1772('0x6'));var BPromise=require(_0x1772('0x7'));var Mustache=require(_0x1772('0x8'));var util=require(_0x1772('0x9'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x1772('0xa'));var crypto=require(_0x1772('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x1772('0xc'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1772('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x1772('0xe'));var as=require(_0x1772('0xf'));var hardwareService=require(_0x1772('0x10'));var logger=require('../../config/logger')(_0x1772('0x11'));var utils=require(_0x1772('0x12'));var config=require(_0x1772('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x1772('0x14'))['db'];function respondWithStatusCode(_0x2aaaef,_0xe762eb){_0xe762eb=_0xe762eb||0xcc;return function(_0x3ea649){if(_0x3ea649){return _0x2aaaef[_0x1772('0x15')](_0xe762eb);}return _0x2aaaef[_0x1772('0x16')](_0xe762eb)[_0x1772('0x17')]();};}function respondWithResult(_0x22d08,_0x56484a){_0x56484a=_0x56484a||0xc8;return function(_0x673653){if(_0x673653){return _0x22d08[_0x1772('0x16')](_0x56484a)[_0x1772('0x18')](_0x673653);}};}function respondWithFilteredResult(_0x3a8ce2,_0x20dcc8){return function(_0x1be70d){if(_0x1be70d){var _0x5017f1=_0x1be70d[_0x1772('0x19')],_0x548d77=_0x20dcc8['offset'],_0x3a5555=_0x20dcc8[_0x1772('0x1a')]+_0x20dcc8[_0x1772('0x1b')],_0x1faf9a;if(_0x3a5555>=_0x5017f1){_0x3a5555=_0x5017f1;_0x1faf9a=0xc8;}else{_0x1faf9a=0xce;}_0x3a8ce2[_0x1772('0x16')](_0x1faf9a);return _0x3a8ce2[_0x1772('0x1c')](_0x1772('0x1d'),_0x548d77+'-'+_0x3a5555+'/'+_0x5017f1)[_0x1772('0x18')](_0x1be70d);}return null;};}function patchUpdates(_0x439d68){return function(_0x298f87){try{jsonpatch['apply'](_0x298f87,_0x439d68,!![]);}catch(_0x5d2749){return BPromise[_0x1772('0x1e')](_0x5d2749);}return _0x298f87[_0x1772('0x1f')]();};}function saveUpdates(_0x364f1d,_0x1ae5f7){return function(_0x4de5d1){if(_0x4de5d1){return _0x4de5d1[_0x1772('0x20')](_0x364f1d)['then'](function(_0x2f3fc4){return _0x2f3fc4;});}return null;};}function removeEntity(_0x20195c,_0x42efd3){return function(_0x4124b4){if(_0x4124b4){return _0x4124b4[_0x1772('0x21')]()[_0x1772('0x22')](function(){var _0x38f105=_0x4124b4[_0x1772('0x23')]({'plain':!![]});var _0x57e366=_0x1772('0x24');return db[_0x1772('0x25')][_0x1772('0x21')]({'where':{'type':_0x57e366,'resourceId':_0x38f105['id']}})[_0x1772('0x22')](function(){return _0x4124b4;});})[_0x1772('0x22')](function(){_0x20195c['status'](0xcc)[_0x1772('0x17')]();});}};}function handleEntityNotFound(_0x283fb9,_0x2bf0ae){return function(_0x12bc30){if(!_0x12bc30){_0x283fb9[_0x1772('0x15')](0x194);}return _0x12bc30;};}function handleError(_0x4c605c,_0x37a2a7){_0x37a2a7=_0x37a2a7||0x1f4;return function(_0x57c79a){logger[_0x1772('0x26')](_0x57c79a[_0x1772('0x27')]);if(_0x57c79a['name']){delete _0x57c79a[_0x1772('0x28')];}_0x4c605c[_0x1772('0x16')](_0x37a2a7)[_0x1772('0x29')](_0x57c79a);};}exports[_0x1772('0x2a')]=function(_0x198c27,_0x41e90c){var _0x5e5437={},_0x74f9dd={},_0x544699={'count':0x0,'rows':[]};var _0x54a2f3=_[_0x1772('0x2b')](db[_0x1772('0x2c')][_0x1772('0x2d')],function(_0x28dd54){return{'name':_0x28dd54['fieldName'],'type':_0x28dd54[_0x1772('0x2e')][_0x1772('0x2f')]};});_0x74f9dd[_0x1772('0x30')]=_['map'](_0x54a2f3,'name');_0x74f9dd[_0x1772('0x31')]=_['keys'](_0x198c27[_0x1772('0x31')]);_0x74f9dd['filters']=_[_0x1772('0x32')](_0x74f9dd[_0x1772('0x30')],_0x74f9dd[_0x1772('0x31')]);_0x5e5437[_0x1772('0x33')]=_[_0x1772('0x32')](_0x74f9dd[_0x1772('0x30')],qs[_0x1772('0x34')](_0x198c27['query'][_0x1772('0x34')]));_0x5e5437['attributes']=_0x5e5437[_0x1772('0x33')]['length']?_0x5e5437['attributes']:_0x74f9dd[_0x1772('0x30')];if(!_0x198c27['query'][_0x1772('0x35')](_0x1772('0x36'))){_0x5e5437[_0x1772('0x1b')]=qs[_0x1772('0x1b')](_0x198c27['query'][_0x1772('0x1b')]);_0x5e5437[_0x1772('0x1a')]=qs['offset'](_0x198c27['query'][_0x1772('0x1a')]);}_0x5e5437[_0x1772('0x37')]=qs[_0x1772('0x38')](_0x198c27[_0x1772('0x31')][_0x1772('0x38')]);_0x5e5437[_0x1772('0x39')]=qs[_0x1772('0x3a')](_[_0x1772('0x3b')](_0x198c27[_0x1772('0x31')],_0x74f9dd[_0x1772('0x3a')]),_0x54a2f3);if(_0x198c27[_0x1772('0x31')][_0x1772('0x3c')]){_0x5e5437[_0x1772('0x39')]=_[_0x1772('0x3d')](_0x5e5437['where'],{'$or':_[_0x1772('0x2b')](_0x54a2f3,function(_0x41f135){if(_0x41f135['type']!==_0x1772('0x3e')){var _0x546896={};_0x546896[_0x41f135[_0x1772('0x28')]]={'$like':'%'+_0x198c27[_0x1772('0x31')]['filter']+'%'};return _0x546896;}})});}_0x5e5437=_[_0x1772('0x3d')]({},_0x5e5437,_0x198c27[_0x1772('0x3f')]);var _0x4359e6={'where':_0x5e5437[_0x1772('0x39')]};return db[_0x1772('0x2c')][_0x1772('0x19')](_0x4359e6)[_0x1772('0x22')](function(_0x36dfb6){_0x544699[_0x1772('0x19')]=_0x36dfb6;if(_0x198c27[_0x1772('0x31')]['includeAll']){_0x5e5437['include']=[{'all':!![]}];}return db['AnalyticMetric'][_0x1772('0x40')](_0x5e5437);})[_0x1772('0x22')](function(_0x574353){_0x544699['rows']=_0x574353;return _0x544699;})[_0x1772('0x22')](respondWithFilteredResult(_0x41e90c,_0x5e5437))[_0x1772('0x41')](handleError(_0x41e90c,null));};exports['show']=function(_0x23646e,_0x48378e){var _0x3efd93={'raw':!![],'where':{'id':_0x23646e[_0x1772('0x42')]['id']}},_0x19c0cc={};_0x19c0cc[_0x1772('0x30')]=_[_0x1772('0x43')](db[_0x1772('0x2c')]['rawAttributes']);_0x19c0cc['query']=_['keys'](_0x23646e[_0x1772('0x31')]);_0x19c0cc[_0x1772('0x3a')]=_['intersection'](_0x19c0cc[_0x1772('0x30')],_0x19c0cc[_0x1772('0x31')]);_0x3efd93['attributes']=_[_0x1772('0x32')](_0x19c0cc[_0x1772('0x30')],qs['fields'](_0x23646e[_0x1772('0x31')]['fields']));_0x3efd93['attributes']=_0x3efd93[_0x1772('0x33')]['length']?_0x3efd93['attributes']:_0x19c0cc['model'];if(_0x23646e[_0x1772('0x31')]['includeAll']){_0x3efd93['include']=[{'all':!![]}];}_0x3efd93=_['merge']({},_0x3efd93,_0x23646e[_0x1772('0x3f')]);return db[_0x1772('0x2c')][_0x1772('0x44')](_0x3efd93)[_0x1772('0x22')](handleEntityNotFound(_0x48378e,null))[_0x1772('0x22')](respondWithResult(_0x48378e,null))['catch'](handleError(_0x48378e,null));};exports[_0x1772('0x45')]=function(_0x2db287,_0x533091){return db['AnalyticMetric']['create'](_0x2db287[_0x1772('0x46')],{})[_0x1772('0x22')](function(_0x5c94a4){var _0x319ff0=_0x2db287[_0x1772('0x47')][_0x1772('0x23')]({'plain':!![]});if(!_0x319ff0)throw new Error(_0x1772('0x48'));if(_0x319ff0[_0x1772('0x49')]==='user'){var _0x2ad3f0=_0x5c94a4[_0x1772('0x23')]({'plain':!![]});var _0x58973e=_0x1772('0x24');return db['UserProfileSection']['find']({'where':{'name':_0x58973e,'userProfileId':_0x319ff0[_0x1772('0x4a')]},'raw':!![]})[_0x1772('0x22')](function(_0x1f559b){if(_0x1f559b&&_0x1f559b[_0x1772('0x4b')]===0x0){return db['UserProfileResource'][_0x1772('0x45')]({'name':_0x2ad3f0[_0x1772('0x28')],'resourceId':_0x2ad3f0['id'],'type':_0x1f559b[_0x1772('0x28')],'sectionId':_0x1f559b['id']},{})[_0x1772('0x22')](function(){return _0x5c94a4;});}else{return _0x5c94a4;}})[_0x1772('0x41')](function(_0x196802){logger[_0x1772('0x26')](_0x1772('0x4c'),_0x196802);throw _0x196802;});}return _0x5c94a4;})['then'](respondWithResult(_0x533091,0xc9))['catch'](handleError(_0x533091,null));};exports[_0x1772('0x20')]=function(_0x4d0632,_0x554ab5){if(_0x4d0632[_0x1772('0x46')]['id']){delete _0x4d0632[_0x1772('0x46')]['id'];}return db[_0x1772('0x2c')][_0x1772('0x44')]({'where':{'id':_0x4d0632[_0x1772('0x42')]['id']}})[_0x1772('0x22')](handleEntityNotFound(_0x554ab5,null))[_0x1772('0x22')](saveUpdates(_0x4d0632['body'],null))[_0x1772('0x22')](respondWithResult(_0x554ab5,null))[_0x1772('0x41')](handleError(_0x554ab5,null));};exports[_0x1772('0x21')]=function(_0x179af2,_0x2add79){return db[_0x1772('0x2c')][_0x1772('0x44')]({'where':{'id':_0x179af2[_0x1772('0x42')]['id']}})[_0x1772('0x22')](handleEntityNotFound(_0x2add79,null))[_0x1772('0x22')](removeEntity(_0x2add79,null))[_0x1772('0x41')](handleError(_0x2add79,null));};