Built motion from commit (unavailable).|2.5.9
[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 _0xe04a=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','limit','set','reject','save','update','then','get','Metrics','UserProfileResource','destroy','end','error','name','send','index','map','AnalyticMetric','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','create','body','user','role','find','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','lodash','squel','crypto','desk.js','querystring'];(function(_0x117fc0,_0x260bc0){var _0x2b034a=function(_0xc2d5b1){while(--_0xc2d5b1){_0x117fc0['push'](_0x117fc0['shift']());}};_0x2b034a(++_0x260bc0);}(_0xe04a,0x98));var _0xae04=function(_0x17cab6,_0x17aacc){_0x17cab6=_0x17cab6-0x0;var _0x513a04=_0xe04a[_0x17cab6];return _0x513a04;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xae04('0x0'));var zipdir=require(_0xae04('0x1'));var jsonpatch=require(_0xae04('0x2'));var rp=require('request-promise');var moment=require(_0xae04('0x3'));var BPromise=require(_0xae04('0x4'));var Mustache=require('mustache');var util=require(_0xae04('0x5'));var path=require(_0xae04('0x6'));var sox=require(_0xae04('0x7'));var csv=require(_0xae04('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xae04('0x9'));var squel=require(_0xae04('0xa'));var crypto=require(_0xae04('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xae04('0xc'));var toCsv=require(_0xae04('0x8'));var querystring=require(_0xae04('0xd'));var Papa=require(_0xae04('0xe'));var Redis=require(_0xae04('0xf'));var authService=require(_0xae04('0x10'));var qs=require(_0xae04('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xae04('0x12'));var logger=require(_0xae04('0x13'))(_0xae04('0x14'));var utils=require(_0xae04('0x15'));var config=require(_0xae04('0x16'));var licenseUtil=require(_0xae04('0x17'));var db=require(_0xae04('0x18'))['db'];function respondWithStatusCode(_0x28c022,_0x2a51a8){_0x2a51a8=_0x2a51a8||0xcc;return function(_0xc789b0){if(_0xc789b0){return _0x28c022[_0xae04('0x19')](_0x2a51a8);}return _0x28c022[_0xae04('0x1a')](_0x2a51a8)['end']();};}function respondWithResult(_0x5f4822,_0x5dc647){_0x5dc647=_0x5dc647||0xc8;return function(_0x172580){if(_0x172580){return _0x5f4822['status'](_0x5dc647)[_0xae04('0x1b')](_0x172580);}};}function respondWithFilteredResult(_0x1bcbc0,_0x2b177d){return function(_0x9c79c7){if(_0x9c79c7){var _0x33b282=_0x9c79c7[_0xae04('0x1c')],_0x4ad6b1=_0x2b177d['offset'],_0x3bca9f=_0x2b177d[_0xae04('0x1d')]+_0x2b177d[_0xae04('0x1e')],_0x290cd8;if(_0x3bca9f>=_0x33b282){_0x3bca9f=_0x33b282;_0x290cd8=0xc8;}else{_0x290cd8=0xce;}_0x1bcbc0[_0xae04('0x1a')](_0x290cd8);return _0x1bcbc0[_0xae04('0x1f')]('Content-Range',_0x4ad6b1+'-'+_0x3bca9f+'/'+_0x33b282)['json'](_0x9c79c7);}return null;};}function patchUpdates(_0x530887){return function(_0x2420a9){try{jsonpatch['apply'](_0x2420a9,_0x530887,!![]);}catch(_0x3c55b7){return BPromise[_0xae04('0x20')](_0x3c55b7);}return _0x2420a9[_0xae04('0x21')]();};}function saveUpdates(_0x57d4b7,_0x26d600){return function(_0x379ac0){if(_0x379ac0){return _0x379ac0[_0xae04('0x22')](_0x57d4b7)[_0xae04('0x23')](function(_0x3113c5){return _0x3113c5;});}return null;};}function removeEntity(_0x1479f6,_0x4af82a){return function(_0x21a566){if(_0x21a566){return _0x21a566['destroy']()[_0xae04('0x23')](function(){var _0x211e1e=_0x21a566[_0xae04('0x24')]({'plain':!![]});var _0x53a957=_0xae04('0x25');return db[_0xae04('0x26')][_0xae04('0x27')]({'where':{'type':_0x53a957,'resourceId':_0x211e1e['id']}})[_0xae04('0x23')](function(){return _0x21a566;});})[_0xae04('0x23')](function(){_0x1479f6['status'](0xcc)[_0xae04('0x28')]();});}};}function handleEntityNotFound(_0x5b82e1,_0x40b1b6){return function(_0x24246b){if(!_0x24246b){_0x5b82e1[_0xae04('0x19')](0x194);}return _0x24246b;};}function handleError(_0x414e7f,_0x3c664c){_0x3c664c=_0x3c664c||0x1f4;return function(_0xaddead){logger[_0xae04('0x29')](_0xaddead['stack']);if(_0xaddead[_0xae04('0x2a')]){delete _0xaddead[_0xae04('0x2a')];}_0x414e7f[_0xae04('0x1a')](_0x3c664c)[_0xae04('0x2b')](_0xaddead);};}exports[_0xae04('0x2c')]=function(_0xeef7c1,_0x146fea){var _0x978a30={},_0x4b2651={},_0x4adf0c={'count':0x0,'rows':[]};var _0x5821c0=_[_0xae04('0x2d')](db[_0xae04('0x2e')][_0xae04('0x2f')],function(_0xf10914){return{'name':_0xf10914[_0xae04('0x30')],'type':_0xf10914[_0xae04('0x31')][_0xae04('0x32')]};});_0x4b2651['model']=_[_0xae04('0x2d')](_0x5821c0,_0xae04('0x2a'));_0x4b2651[_0xae04('0x33')]=_[_0xae04('0x34')](_0xeef7c1[_0xae04('0x33')]);_0x4b2651[_0xae04('0x35')]=_[_0xae04('0x36')](_0x4b2651[_0xae04('0x37')],_0x4b2651[_0xae04('0x33')]);_0x978a30[_0xae04('0x38')]=_['intersection'](_0x4b2651['model'],qs[_0xae04('0x39')](_0xeef7c1[_0xae04('0x33')][_0xae04('0x39')]));_0x978a30[_0xae04('0x38')]=_0x978a30['attributes'][_0xae04('0x3a')]?_0x978a30['attributes']:_0x4b2651['model'];if(!_0xeef7c1['query'][_0xae04('0x3b')](_0xae04('0x3c'))){_0x978a30[_0xae04('0x1e')]=qs[_0xae04('0x1e')](_0xeef7c1[_0xae04('0x33')][_0xae04('0x1e')]);_0x978a30[_0xae04('0x1d')]=qs[_0xae04('0x1d')](_0xeef7c1['query'][_0xae04('0x1d')]);}_0x978a30[_0xae04('0x3d')]=qs[_0xae04('0x3e')](_0xeef7c1[_0xae04('0x33')]['sort']);_0x978a30[_0xae04('0x3f')]=qs[_0xae04('0x35')](_[_0xae04('0x40')](_0xeef7c1['query'],_0x4b2651[_0xae04('0x35')]),_0x5821c0);if(_0xeef7c1[_0xae04('0x33')][_0xae04('0x41')]){_0x978a30[_0xae04('0x3f')]=_[_0xae04('0x42')](_0x978a30[_0xae04('0x3f')],{'$or':_[_0xae04('0x2d')](_0x5821c0,function(_0x4db347){if(_0x4db347[_0xae04('0x31')]!==_0xae04('0x43')){var _0x119fba={};_0x119fba[_0x4db347[_0xae04('0x2a')]]={'$like':'%'+_0xeef7c1['query'][_0xae04('0x41')]+'%'};return _0x119fba;}})});}_0x978a30=_[_0xae04('0x42')]({},_0x978a30,_0xeef7c1[_0xae04('0x44')]);var _0x41e47d={'where':_0x978a30['where']};return db[_0xae04('0x2e')][_0xae04('0x1c')](_0x41e47d)[_0xae04('0x23')](function(_0x10d219){_0x4adf0c[_0xae04('0x1c')]=_0x10d219;if(_0xeef7c1['query'][_0xae04('0x45')]){_0x978a30[_0xae04('0x46')]=[{'all':!![]}];}return db['AnalyticMetric'][_0xae04('0x47')](_0x978a30);})[_0xae04('0x23')](function(_0x393f02){_0x4adf0c[_0xae04('0x48')]=_0x393f02;return _0x4adf0c;})['then'](respondWithFilteredResult(_0x146fea,_0x978a30))['catch'](handleError(_0x146fea,null));};exports[_0xae04('0x49')]=function(_0x2a77c6,_0x263fa0){var _0x137beb={'raw':!![],'where':{'id':_0x2a77c6[_0xae04('0x4a')]['id']}},_0x1a1a8e={};_0x1a1a8e[_0xae04('0x37')]=_[_0xae04('0x34')](db[_0xae04('0x2e')][_0xae04('0x2f')]);_0x1a1a8e[_0xae04('0x33')]=_[_0xae04('0x34')](_0x2a77c6[_0xae04('0x33')]);_0x1a1a8e[_0xae04('0x35')]=_['intersection'](_0x1a1a8e[_0xae04('0x37')],_0x1a1a8e[_0xae04('0x33')]);_0x137beb[_0xae04('0x38')]=_[_0xae04('0x36')](_0x1a1a8e[_0xae04('0x37')],qs[_0xae04('0x39')](_0x2a77c6['query'][_0xae04('0x39')]));_0x137beb[_0xae04('0x38')]=_0x137beb[_0xae04('0x38')][_0xae04('0x3a')]?_0x137beb['attributes']:_0x1a1a8e[_0xae04('0x37')];if(_0x2a77c6[_0xae04('0x33')][_0xae04('0x45')]){_0x137beb[_0xae04('0x46')]=[{'all':!![]}];}_0x137beb=_[_0xae04('0x42')]({},_0x137beb,_0x2a77c6[_0xae04('0x44')]);return db[_0xae04('0x2e')]['find'](_0x137beb)[_0xae04('0x23')](handleEntityNotFound(_0x263fa0,null))[_0xae04('0x23')](respondWithResult(_0x263fa0,null))['catch'](handleError(_0x263fa0,null));};exports['create']=function(_0x2f5fb2,_0x280387){return db[_0xae04('0x2e')][_0xae04('0x4b')](_0x2f5fb2[_0xae04('0x4c')],{})['then'](function(_0x1025c3){var _0x3666be=_0x2f5fb2[_0xae04('0x4d')]['get']({'plain':!![]});if(!_0x3666be)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3666be[_0xae04('0x4e')]===_0xae04('0x4d')){var _0x1b5118=_0x1025c3[_0xae04('0x24')]({'plain':!![]});var _0x3abe35='Metrics';return db['UserProfileSection'][_0xae04('0x4f')]({'where':{'name':_0x3abe35,'userProfileId':_0x3666be['userProfileId']},'raw':!![]})['then'](function(_0x4cf43a){if(_0x4cf43a&&_0x4cf43a[_0xae04('0x50')]===0x0){return db['UserProfileResource'][_0xae04('0x4b')]({'name':_0x1b5118['name'],'resourceId':_0x1b5118['id'],'type':_0x4cf43a[_0xae04('0x2a')],'sectionId':_0x4cf43a['id']},{})[_0xae04('0x23')](function(){return _0x1025c3;});}else{return _0x1025c3;}})[_0xae04('0x51')](function(_0x473fc3){logger['error'](_0xae04('0x52'),_0x473fc3);throw _0x473fc3;});}return _0x1025c3;})[_0xae04('0x23')](respondWithResult(_0x280387,0xc9))[_0xae04('0x51')](handleError(_0x280387,null));};exports[_0xae04('0x22')]=function(_0x24e019,_0x15e160){if(_0x24e019[_0xae04('0x4c')]['id']){delete _0x24e019['body']['id'];}return db[_0xae04('0x2e')][_0xae04('0x4f')]({'where':{'id':_0x24e019['params']['id']}})['then'](handleEntityNotFound(_0x15e160,null))[_0xae04('0x23')](saveUpdates(_0x24e019[_0xae04('0x4c')],null))[_0xae04('0x23')](respondWithResult(_0x15e160,null))['catch'](handleError(_0x15e160,null));};exports[_0xae04('0x27')]=function(_0x2619da,_0x45d6d5){return db[_0xae04('0x2e')][_0xae04('0x4f')]({'where':{'id':_0x2619da[_0xae04('0x4a')]['id']}})[_0xae04('0x23')](handleEntityNotFound(_0x45d6d5,null))['then'](removeEntity(_0x45d6d5,null))[_0xae04('0x51')](handleError(_0x45d6d5,null));};