4befea78127a80fe44c00b8c693ac6144519a7a4
[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 _0x5b12=['Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','eml-format','rimraf','fast-json-patch','moment','bluebird','util','to-csv','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','set','Content-Range','save','update','destroy','then','get','Metrics','UserProfileResource','stack','name','send','map','rawAttributes','fieldName','type','key','query','keys','model','attributes','intersection','fields','hasOwnProperty','order','sort','where','filters','pick','filter','merge','AnalyticMetric','count','includeAll','include','findAll','rows','catch','show','params','length','options','find','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','create','error'];(function(_0x1b4d8b,_0x1ba2a4){var _0x4ae75d=function(_0x1eff2d){while(--_0x1eff2d){_0x1b4d8b['push'](_0x1b4d8b['shift']());}};_0x4ae75d(++_0x1ba2a4);}(_0x5b12,0xa3));var _0x25b1=function(_0x4d2714,_0x48c741){_0x4d2714=_0x4d2714-0x0;var _0x52a94e=_0x5b12[_0x4d2714];return _0x52a94e;};'use strict';var pdf=require(_0x25b1('0x0'));var emlformat=require(_0x25b1('0x1'));var rimraf=require(_0x25b1('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x25b1('0x3'));var rp=require('request-promise');var moment=require(_0x25b1('0x4'));var BPromise=require(_0x25b1('0x5'));var Mustache=require('mustache');var util=require(_0x25b1('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x25b1('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x25b1('0x8'));var crypto=require(_0x25b1('0x9'));var jsforce=require(_0x25b1('0xa'));var deskjs=require(_0x25b1('0xb'));var toCsv=require(_0x25b1('0x7'));var querystring=require(_0x25b1('0xc'));var Papa=require(_0x25b1('0xd'));var Redis=require(_0x25b1('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x25b1('0xf'));var as=require(_0x25b1('0x10'));var hardwareService=require(_0x25b1('0x11'));var logger=require(_0x25b1('0x12'))(_0x25b1('0x13'));var utils=require(_0x25b1('0x14'));var config=require(_0x25b1('0x15'));var db=require(_0x25b1('0x16'))['db'];function respondWithStatusCode(_0x90a241,_0x459070){_0x459070=_0x459070||0xcc;return function(_0xbdd348){if(_0xbdd348){return _0x90a241[_0x25b1('0x17')](_0x459070);}return _0x90a241[_0x25b1('0x18')](_0x459070)[_0x25b1('0x19')]();};}function respondWithResult(_0x1bdb9a,_0x76b5c4){_0x76b5c4=_0x76b5c4||0xc8;return function(_0x4ee40c){if(_0x4ee40c){return _0x1bdb9a[_0x25b1('0x18')](_0x76b5c4)[_0x25b1('0x1a')](_0x4ee40c);}};}function respondWithFilteredResult(_0x4de13f,_0xb5b9cf){return function(_0x4bb1bb){if(_0x4bb1bb){var _0xe32e02=_0x4bb1bb['count'],_0x4a5a58=_0xb5b9cf[_0x25b1('0x1b')],_0x593165=_0xb5b9cf[_0x25b1('0x1b')]+_0xb5b9cf[_0x25b1('0x1c')],_0x7b50ab;if(_0x593165>=_0xe32e02){_0x593165=_0xe32e02;_0x7b50ab=0xc8;}else{_0x7b50ab=0xce;}_0x4de13f[_0x25b1('0x18')](_0x7b50ab);return _0x4de13f[_0x25b1('0x1d')](_0x25b1('0x1e'),_0x4a5a58+'-'+_0x593165+'/'+_0xe32e02)[_0x25b1('0x1a')](_0x4bb1bb);}return null;};}function patchUpdates(_0x292463){return function(_0x53ce1b){try{jsonpatch['apply'](_0x53ce1b,_0x292463,!![]);}catch(_0x42a60e){return BPromise['reject'](_0x42a60e);}return _0x53ce1b[_0x25b1('0x1f')]();};}function saveUpdates(_0x50ae0f,_0x3bfd7d){return function(_0x59aa37){if(_0x59aa37){return _0x59aa37[_0x25b1('0x20')](_0x50ae0f)['then'](function(_0xb61b1){return _0xb61b1;});}return null;};}function removeEntity(_0x5b0be0,_0x4e3f48){return function(_0x565cfd){if(_0x565cfd){return _0x565cfd[_0x25b1('0x21')]()[_0x25b1('0x22')](function(){var _0x4affba=_0x565cfd[_0x25b1('0x23')]({'plain':!![]});var _0x26b555=_0x25b1('0x24');return db[_0x25b1('0x25')][_0x25b1('0x21')]({'where':{'type':_0x26b555,'resourceId':_0x4affba['id']}})['then'](function(){return _0x565cfd;});})[_0x25b1('0x22')](function(){_0x5b0be0[_0x25b1('0x18')](0xcc)[_0x25b1('0x19')]();});}};}function handleEntityNotFound(_0x282187,_0x1f37ed){return function(_0x1292bf){if(!_0x1292bf){_0x282187['sendStatus'](0x194);}return _0x1292bf;};}function handleError(_0x3c05c6,_0x27dd68){_0x27dd68=_0x27dd68||0x1f4;return function(_0x3d279f){logger['error'](_0x3d279f[_0x25b1('0x26')]);if(_0x3d279f[_0x25b1('0x27')]){delete _0x3d279f[_0x25b1('0x27')];}_0x3c05c6['status'](_0x27dd68)[_0x25b1('0x28')](_0x3d279f);};}exports['index']=function(_0x19ecd1,_0x3febb8){var _0x3a4475={},_0x293413={},_0x362118={'count':0x0,'rows':[]};var _0x300a14=_[_0x25b1('0x29')](db['AnalyticMetric'][_0x25b1('0x2a')],function(_0xca56f0){return{'name':_0xca56f0[_0x25b1('0x2b')],'type':_0xca56f0[_0x25b1('0x2c')][_0x25b1('0x2d')]};});_0x293413['model']=_[_0x25b1('0x29')](_0x300a14,_0x25b1('0x27'));_0x293413[_0x25b1('0x2e')]=_[_0x25b1('0x2f')](_0x19ecd1[_0x25b1('0x2e')]);_0x293413['filters']=_['intersection'](_0x293413[_0x25b1('0x30')],_0x293413['query']);_0x3a4475[_0x25b1('0x31')]=_[_0x25b1('0x32')](_0x293413[_0x25b1('0x30')],qs['fields'](_0x19ecd1['query'][_0x25b1('0x33')]));_0x3a4475[_0x25b1('0x31')]=_0x3a4475[_0x25b1('0x31')]['length']?_0x3a4475[_0x25b1('0x31')]:_0x293413[_0x25b1('0x30')];if(!_0x19ecd1[_0x25b1('0x2e')][_0x25b1('0x34')]('nolimit')){_0x3a4475[_0x25b1('0x1c')]=qs[_0x25b1('0x1c')](_0x19ecd1[_0x25b1('0x2e')]['limit']);_0x3a4475['offset']=qs[_0x25b1('0x1b')](_0x19ecd1['query'][_0x25b1('0x1b')]);}_0x3a4475[_0x25b1('0x35')]=qs[_0x25b1('0x36')](_0x19ecd1[_0x25b1('0x2e')][_0x25b1('0x36')]);_0x3a4475[_0x25b1('0x37')]=qs[_0x25b1('0x38')](_[_0x25b1('0x39')](_0x19ecd1[_0x25b1('0x2e')],_0x293413[_0x25b1('0x38')]),_0x300a14);if(_0x19ecd1[_0x25b1('0x2e')][_0x25b1('0x3a')]){_0x3a4475[_0x25b1('0x37')]=_[_0x25b1('0x3b')](_0x3a4475[_0x25b1('0x37')],{'$or':_['map'](_0x300a14,function(_0x472ed3){if(_0x472ed3[_0x25b1('0x2c')]!=='VIRTUAL'){var _0x3c7bf2={};_0x3c7bf2[_0x472ed3[_0x25b1('0x27')]]={'$like':'%'+_0x19ecd1[_0x25b1('0x2e')][_0x25b1('0x3a')]+'%'};return _0x3c7bf2;}})});}_0x3a4475=_[_0x25b1('0x3b')]({},_0x3a4475,_0x19ecd1['options']);var _0x7346c3={'where':_0x3a4475['where']};return db[_0x25b1('0x3c')]['count'](_0x7346c3)[_0x25b1('0x22')](function(_0x158993){_0x362118[_0x25b1('0x3d')]=_0x158993;if(_0x19ecd1[_0x25b1('0x2e')][_0x25b1('0x3e')]){_0x3a4475[_0x25b1('0x3f')]=[{'all':!![]}];}return db[_0x25b1('0x3c')][_0x25b1('0x40')](_0x3a4475);})[_0x25b1('0x22')](function(_0x49f049){_0x362118[_0x25b1('0x41')]=_0x49f049;return _0x362118;})['then'](respondWithFilteredResult(_0x3febb8,_0x3a4475))[_0x25b1('0x42')](handleError(_0x3febb8,null));};exports[_0x25b1('0x43')]=function(_0x4d4e32,_0x52d3f8){var _0x39b4c7={'raw':!![],'where':{'id':_0x4d4e32[_0x25b1('0x44')]['id']}},_0x2ab993={};_0x2ab993[_0x25b1('0x30')]=_[_0x25b1('0x2f')](db[_0x25b1('0x3c')][_0x25b1('0x2a')]);_0x2ab993[_0x25b1('0x2e')]=_[_0x25b1('0x2f')](_0x4d4e32[_0x25b1('0x2e')]);_0x2ab993[_0x25b1('0x38')]=_[_0x25b1('0x32')](_0x2ab993[_0x25b1('0x30')],_0x2ab993[_0x25b1('0x2e')]);_0x39b4c7[_0x25b1('0x31')]=_[_0x25b1('0x32')](_0x2ab993[_0x25b1('0x30')],qs['fields'](_0x4d4e32['query']['fields']));_0x39b4c7[_0x25b1('0x31')]=_0x39b4c7['attributes'][_0x25b1('0x45')]?_0x39b4c7['attributes']:_0x2ab993[_0x25b1('0x30')];if(_0x4d4e32[_0x25b1('0x2e')][_0x25b1('0x3e')]){_0x39b4c7[_0x25b1('0x3f')]=[{'all':!![]}];}_0x39b4c7=_[_0x25b1('0x3b')]({},_0x39b4c7,_0x4d4e32[_0x25b1('0x46')]);return db['AnalyticMetric'][_0x25b1('0x47')](_0x39b4c7)[_0x25b1('0x22')](handleEntityNotFound(_0x52d3f8,null))[_0x25b1('0x22')](respondWithResult(_0x52d3f8,null))[_0x25b1('0x42')](handleError(_0x52d3f8,null));};exports['create']=function(_0x489f73,_0x27d8c6){return db[_0x25b1('0x3c')]['create'](_0x489f73[_0x25b1('0x48')],{})['then'](function(_0x344e8e){var _0x4b6181=_0x489f73['user'][_0x25b1('0x23')]({'plain':!![]});if(!_0x4b6181)throw new Error(_0x25b1('0x49'));if(_0x4b6181[_0x25b1('0x4a')]===_0x25b1('0x4b')){var _0x5de62e=_0x344e8e[_0x25b1('0x23')]({'plain':!![]});var _0x58e612=_0x25b1('0x24');return db['UserProfileSection'][_0x25b1('0x47')]({'where':{'name':_0x58e612,'userProfileId':_0x4b6181[_0x25b1('0x4c')]},'raw':!![]})[_0x25b1('0x22')](function(_0x4fb92e){if(_0x4fb92e&&_0x4fb92e[_0x25b1('0x4d')]===0x0){return db[_0x25b1('0x25')][_0x25b1('0x4e')]({'name':_0x5de62e[_0x25b1('0x27')],'resourceId':_0x5de62e['id'],'type':_0x4fb92e[_0x25b1('0x27')],'sectionId':_0x4fb92e['id']},{})[_0x25b1('0x22')](function(){return _0x344e8e;});}else{return _0x344e8e;}})['catch'](function(_0x134c64){logger[_0x25b1('0x4f')](_0x25b1('0x50'),_0x134c64);throw _0x134c64;});}return _0x344e8e;})[_0x25b1('0x22')](respondWithResult(_0x27d8c6,0xc9))[_0x25b1('0x42')](handleError(_0x27d8c6,null));};exports[_0x25b1('0x20')]=function(_0x291dac,_0x40d574){if(_0x291dac[_0x25b1('0x48')]['id']){delete _0x291dac[_0x25b1('0x48')]['id'];}return db[_0x25b1('0x3c')][_0x25b1('0x47')]({'where':{'id':_0x291dac[_0x25b1('0x44')]['id']}})[_0x25b1('0x22')](handleEntityNotFound(_0x40d574,null))[_0x25b1('0x22')](saveUpdates(_0x291dac[_0x25b1('0x48')],null))[_0x25b1('0x22')](respondWithResult(_0x40d574,null))[_0x25b1('0x42')](handleError(_0x40d574,null));};exports['destroy']=function(_0x3c6658,_0x16e61e){return db[_0x25b1('0x3c')][_0x25b1('0x47')]({'where':{'id':_0x3c6658[_0x25b1('0x44')]['id']}})[_0x25b1('0x22')](handleEntityNotFound(_0x16e61e,null))['then'](removeEntity(_0x16e61e,null))[_0x25b1('0x42')](handleError(_0x16e61e,null));};