2ecbc00fc60e011f6bd312603b500832f8ab21ef
[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 _0x47e7=['get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','Metrics','UserProfileResource','stack','name','send','map','AnalyticMetric','rawAttributes','type','key','filters','intersection','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','catch','params','keys','includeAll','find','create','body','user'];(function(_0x256e07,_0x4f0447){var _0x291549=function(_0x505f65){while(--_0x505f65){_0x256e07['push'](_0x256e07['shift']());}};_0x291549(++_0x4f0447);}(_0x47e7,0x190));var _0x747e=function(_0x2b23d3,_0xc85fa8){_0x2b23d3=_0x2b23d3-0x0;var _0x237c89=_0x47e7[_0x2b23d3];return _0x237c89;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x747e('0x0'));var rimraf=require(_0x747e('0x1'));var zipdir=require(_0x747e('0x2'));var jsonpatch=require(_0x747e('0x3'));var rp=require(_0x747e('0x4'));var moment=require('moment');var BPromise=require(_0x747e('0x5'));var Mustache=require(_0x747e('0x6'));var util=require(_0x747e('0x7'));var path=require(_0x747e('0x8'));var sox=require('sox');var csv=require(_0x747e('0x9'));var ejs=require(_0x747e('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x747e('0xb'));var jsforce=require(_0x747e('0xc'));var deskjs=require(_0x747e('0xd'));var toCsv=require('to-csv');var querystring=require(_0x747e('0xe'));var Papa=require(_0x747e('0xf'));var Redis=require(_0x747e('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x747e('0x11'));var hardwareService=require(_0x747e('0x12'));var logger=require('../../config/logger')(_0x747e('0x13'));var utils=require(_0x747e('0x14'));var config=require(_0x747e('0x15'));var licenseUtil=require(_0x747e('0x16'));var db=require(_0x747e('0x17'))['db'];function respondWithStatusCode(_0x1af8d6,_0x3830c1){_0x3830c1=_0x3830c1||0xcc;return function(_0x1e7d92){if(_0x1e7d92){return _0x1af8d6['sendStatus'](_0x3830c1);}return _0x1af8d6['status'](_0x3830c1)[_0x747e('0x18')]();};}function respondWithResult(_0x4c8d6d,_0x5e9348){_0x5e9348=_0x5e9348||0xc8;return function(_0x31735c){if(_0x31735c){return _0x4c8d6d[_0x747e('0x19')](_0x5e9348)[_0x747e('0x1a')](_0x31735c);}};}function respondWithFilteredResult(_0x6f0496,_0x3a9bc0){return function(_0x3cdf71){if(_0x3cdf71){var _0x296815=_0x3cdf71[_0x747e('0x1b')],_0x44a41c=_0x3a9bc0[_0x747e('0x1c')],_0x514476=_0x3a9bc0['offset']+_0x3a9bc0[_0x747e('0x1d')],_0x4f54fb;if(_0x514476>=_0x296815){_0x514476=_0x296815;_0x4f54fb=0xc8;}else{_0x4f54fb=0xce;}_0x6f0496['status'](_0x4f54fb);return _0x6f0496[_0x747e('0x1e')](_0x747e('0x1f'),_0x44a41c+'-'+_0x514476+'/'+_0x296815)[_0x747e('0x1a')](_0x3cdf71);}return null;};}function patchUpdates(_0x3e491a){return function(_0x1ac9ea){try{jsonpatch['apply'](_0x1ac9ea,_0x3e491a,!![]);}catch(_0x27f232){return BPromise[_0x747e('0x20')](_0x27f232);}return _0x1ac9ea[_0x747e('0x21')]();};}function saveUpdates(_0x32edc2,_0x2c0e32){return function(_0x473127){if(_0x473127){return _0x473127[_0x747e('0x22')](_0x32edc2)[_0x747e('0x23')](function(_0x2c650a){return _0x2c650a;});}return null;};}function removeEntity(_0x34e53c,_0x462c27){return function(_0x347dcf){if(_0x347dcf){return _0x347dcf[_0x747e('0x24')]()[_0x747e('0x23')](function(){var _0x5c4376=_0x347dcf['get']({'plain':!![]});var _0x38c363=_0x747e('0x25');return db[_0x747e('0x26')][_0x747e('0x24')]({'where':{'type':_0x38c363,'resourceId':_0x5c4376['id']}})['then'](function(){return _0x347dcf;});})['then'](function(){_0x34e53c[_0x747e('0x19')](0xcc)[_0x747e('0x18')]();});}};}function handleEntityNotFound(_0x34d839,_0x109a55){return function(_0x1d2158){if(!_0x1d2158){_0x34d839['sendStatus'](0x194);}return _0x1d2158;};}function handleError(_0x46f307,_0x100198){_0x100198=_0x100198||0x1f4;return function(_0x3952dd){logger['error'](_0x3952dd[_0x747e('0x27')]);if(_0x3952dd[_0x747e('0x28')]){delete _0x3952dd['name'];}_0x46f307['status'](_0x100198)[_0x747e('0x29')](_0x3952dd);};}exports['index']=function(_0x4bfcd6,_0x2708e4){var _0x581d97={},_0x2cf287={},_0x3bbbe0={'count':0x0,'rows':[]};var _0x2e99c0=_[_0x747e('0x2a')](db[_0x747e('0x2b')][_0x747e('0x2c')],function(_0x52b504){return{'name':_0x52b504['fieldName'],'type':_0x52b504[_0x747e('0x2d')][_0x747e('0x2e')]};});_0x2cf287['model']=_[_0x747e('0x2a')](_0x2e99c0,_0x747e('0x28'));_0x2cf287['query']=_['keys'](_0x4bfcd6['query']);_0x2cf287[_0x747e('0x2f')]=_[_0x747e('0x30')](_0x2cf287[_0x747e('0x31')],_0x2cf287[_0x747e('0x32')]);_0x581d97[_0x747e('0x33')]=_['intersection'](_0x2cf287[_0x747e('0x31')],qs['fields'](_0x4bfcd6[_0x747e('0x32')][_0x747e('0x34')]));_0x581d97['attributes']=_0x581d97['attributes'][_0x747e('0x35')]?_0x581d97[_0x747e('0x33')]:_0x2cf287[_0x747e('0x31')];if(!_0x4bfcd6[_0x747e('0x32')][_0x747e('0x36')](_0x747e('0x37'))){_0x581d97[_0x747e('0x1d')]=qs['limit'](_0x4bfcd6['query'][_0x747e('0x1d')]);_0x581d97[_0x747e('0x1c')]=qs[_0x747e('0x1c')](_0x4bfcd6[_0x747e('0x32')][_0x747e('0x1c')]);}_0x581d97[_0x747e('0x38')]=qs[_0x747e('0x39')](_0x4bfcd6[_0x747e('0x32')][_0x747e('0x39')]);_0x581d97[_0x747e('0x3a')]=qs['filters'](_[_0x747e('0x3b')](_0x4bfcd6[_0x747e('0x32')],_0x2cf287[_0x747e('0x2f')]),_0x2e99c0);if(_0x4bfcd6[_0x747e('0x32')][_0x747e('0x3c')]){_0x581d97[_0x747e('0x3a')]=_[_0x747e('0x3d')](_0x581d97[_0x747e('0x3a')],{'$or':_[_0x747e('0x2a')](_0x2e99c0,function(_0x232f29){if(_0x232f29[_0x747e('0x2d')]!==_0x747e('0x3e')){var _0x185a2e={};_0x185a2e[_0x232f29[_0x747e('0x28')]]={'$like':'%'+_0x4bfcd6[_0x747e('0x32')]['filter']+'%'};return _0x185a2e;}})});}_0x581d97=_['merge']({},_0x581d97,_0x4bfcd6[_0x747e('0x3f')]);var _0x34b57={'where':_0x581d97[_0x747e('0x3a')]};return db['AnalyticMetric'][_0x747e('0x1b')](_0x34b57)['then'](function(_0x3b1c9b){_0x3bbbe0[_0x747e('0x1b')]=_0x3b1c9b;if(_0x4bfcd6['query']['includeAll']){_0x581d97['include']=[{'all':!![]}];}return db[_0x747e('0x2b')][_0x747e('0x40')](_0x581d97);})['then'](function(_0x1855e1){_0x3bbbe0[_0x747e('0x41')]=_0x1855e1;return _0x3bbbe0;})['then'](respondWithFilteredResult(_0x2708e4,_0x581d97))[_0x747e('0x42')](handleError(_0x2708e4,null));};exports['show']=function(_0xd5d7e2,_0x18ded3){var _0x124fef={'raw':!![],'where':{'id':_0xd5d7e2[_0x747e('0x43')]['id']}},_0x8e7e44={};_0x8e7e44[_0x747e('0x31')]=_[_0x747e('0x44')](db[_0x747e('0x2b')][_0x747e('0x2c')]);_0x8e7e44[_0x747e('0x32')]=_[_0x747e('0x44')](_0xd5d7e2[_0x747e('0x32')]);_0x8e7e44[_0x747e('0x2f')]=_['intersection'](_0x8e7e44[_0x747e('0x31')],_0x8e7e44['query']);_0x124fef['attributes']=_[_0x747e('0x30')](_0x8e7e44[_0x747e('0x31')],qs[_0x747e('0x34')](_0xd5d7e2[_0x747e('0x32')][_0x747e('0x34')]));_0x124fef['attributes']=_0x124fef[_0x747e('0x33')][_0x747e('0x35')]?_0x124fef[_0x747e('0x33')]:_0x8e7e44['model'];if(_0xd5d7e2[_0x747e('0x32')][_0x747e('0x45')]){_0x124fef['include']=[{'all':!![]}];}_0x124fef=_[_0x747e('0x3d')]({},_0x124fef,_0xd5d7e2[_0x747e('0x3f')]);return db[_0x747e('0x2b')][_0x747e('0x46')](_0x124fef)[_0x747e('0x23')](handleEntityNotFound(_0x18ded3,null))[_0x747e('0x23')](respondWithResult(_0x18ded3,null))[_0x747e('0x42')](handleError(_0x18ded3,null));};exports[_0x747e('0x47')]=function(_0x108bc3,_0x2df43c){return db[_0x747e('0x2b')][_0x747e('0x47')](_0x108bc3[_0x747e('0x48')],{})[_0x747e('0x23')](function(_0x297e16){var _0x187274=_0x108bc3[_0x747e('0x49')][_0x747e('0x4a')]({'plain':!![]});if(!_0x187274)throw new Error(_0x747e('0x4b'));if(_0x187274[_0x747e('0x4c')]==='user'){var _0x1d972d=_0x297e16[_0x747e('0x4a')]({'plain':!![]});var _0x522ed3=_0x747e('0x25');return db['UserProfileSection']['find']({'where':{'name':_0x522ed3,'userProfileId':_0x187274['userProfileId']},'raw':!![]})[_0x747e('0x23')](function(_0x3afb60){if(_0x3afb60&&_0x3afb60[_0x747e('0x4d')]===0x0){return db['UserProfileResource']['create']({'name':_0x1d972d[_0x747e('0x28')],'resourceId':_0x1d972d['id'],'type':_0x3afb60['name'],'sectionId':_0x3afb60['id']},{})['then'](function(){return _0x297e16;});}else{return _0x297e16;}})[_0x747e('0x42')](function(_0x4283b0){logger['error'](_0x747e('0x4e'),_0x4283b0);throw _0x4283b0;});}return _0x297e16;})[_0x747e('0x23')](respondWithResult(_0x2df43c,0xc9))[_0x747e('0x42')](handleError(_0x2df43c,null));};exports['update']=function(_0x50d7ef,_0x2a5dc6){if(_0x50d7ef[_0x747e('0x48')]['id']){delete _0x50d7ef[_0x747e('0x48')]['id'];}return db['AnalyticMetric'][_0x747e('0x46')]({'where':{'id':_0x50d7ef[_0x747e('0x43')]['id']}})['then'](handleEntityNotFound(_0x2a5dc6,null))[_0x747e('0x23')](saveUpdates(_0x50d7ef[_0x747e('0x48')],null))[_0x747e('0x23')](respondWithResult(_0x2a5dc6,null))['catch'](handleError(_0x2a5dc6,null));};exports[_0x747e('0x24')]=function(_0x24f18f,_0x7cd2f8){return db['AnalyticMetric']['find']({'where':{'id':_0x24f18f['params']['id']}})[_0x747e('0x23')](handleEntityNotFound(_0x7cd2f8,null))[_0x747e('0x23')](removeEntity(_0x7cd2f8,null))[_0x747e('0x42')](handleError(_0x7cd2f8,null));};