72b88ea7de7f84746ddeeb3f5d73ee70a1f6a71d
[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 _0x930f=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../mysqldb','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','then','UserProfileResource','error','stack','name','send','index','AnalyticMetric','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','merge','VIRTUAL','filter','options','include','findAll','rows','catch','show','params','includeAll','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Metrics','UserProfileSection','userProfileId','autoAssociation','update','body','find','destroy','eml-format','zip-dir','fast-json-patch','moment','bluebird','path','to-csv','ejs','lodash','squel'];(function(_0x3ee6cf,_0x22de3a){var _0x5a0ca9=function(_0x4b16f7){while(--_0x4b16f7){_0x3ee6cf['push'](_0x3ee6cf['shift']());}};_0x5a0ca9(++_0x22de3a);}(_0x930f,0x12e));var _0xf930=function(_0x37b595,_0x34b8d3){_0x37b595=_0x37b595-0x0;var _0x56e3d9=_0x930f[_0x37b595];return _0x56e3d9;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xf930('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf930('0x1'));var jsonpatch=require(_0xf930('0x2'));var rp=require('request-promise');var moment=require(_0xf930('0x3'));var BPromise=require(_0xf930('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xf930('0x5'));var sox=require('sox');var csv=require(_0xf930('0x6'));var ejs=require(_0xf930('0x7'));var fs=require('fs');var _=require(_0xf930('0x8'));var squel=require(_0xf930('0x9'));var crypto=require('crypto');var jsforce=require(_0xf930('0xa'));var deskjs=require(_0xf930('0xb'));var toCsv=require('to-csv');var querystring=require(_0xf930('0xc'));var Papa=require(_0xf930('0xd'));var Redis=require(_0xf930('0xe'));var authService=require(_0xf930('0xf'));var qs=require(_0xf930('0x10'));var as=require(_0xf930('0x11'));var hardwareService=require(_0xf930('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0xf930('0x13'))['db'];function respondWithStatusCode(_0x3508fd,_0xba921a){_0xba921a=_0xba921a||0xcc;return function(_0x39e73d){if(_0x39e73d){return _0x3508fd[_0xf930('0x14')](_0xba921a);}return _0x3508fd[_0xf930('0x15')](_0xba921a)[_0xf930('0x16')]();};}function respondWithResult(_0x29fd22,_0x4d89e6){_0x4d89e6=_0x4d89e6||0xc8;return function(_0x3ac247){if(_0x3ac247){return _0x29fd22[_0xf930('0x15')](_0x4d89e6)[_0xf930('0x17')](_0x3ac247);}};}function respondWithFilteredResult(_0x1e2236,_0x59dba8){return function(_0x174820){if(_0x174820){var _0x59b719=_0x174820[_0xf930('0x18')],_0xa00e0f=_0x59dba8['offset'],_0x2af95b=_0x59dba8[_0xf930('0x19')]+_0x59dba8[_0xf930('0x1a')],_0x394726;if(_0x2af95b>=_0x59b719){_0x2af95b=_0x59b719;_0x394726=0xc8;}else{_0x394726=0xce;}_0x1e2236['status'](_0x394726);return _0x1e2236['set'](_0xf930('0x1b'),_0xa00e0f+'-'+_0x2af95b+'/'+_0x59b719)['json'](_0x174820);}return null;};}function patchUpdates(_0x1cebfc){return function(_0x32f53f){try{jsonpatch[_0xf930('0x1c')](_0x32f53f,_0x1cebfc,!![]);}catch(_0x13e306){return BPromise[_0xf930('0x1d')](_0x13e306);}return _0x32f53f['save']();};}function saveUpdates(_0x6f9d24,_0x30a2a5){return function(_0x5672e5){if(_0x5672e5){return _0x5672e5['update'](_0x6f9d24)['then'](function(_0x1e85f0){return _0x1e85f0;});}return null;};}function removeEntity(_0xddc668,_0x3849bc){return function(_0x5acfb2){if(_0x5acfb2){return _0x5acfb2['destroy']()[_0xf930('0x1e')](function(){var _0x2a2fd9=_0x5acfb2['get']({'plain':!![]});var _0x3daa28='Metrics';return db[_0xf930('0x1f')]['destroy']({'where':{'type':_0x3daa28,'resourceId':_0x2a2fd9['id']}})['then'](function(){return _0x5acfb2;});})[_0xf930('0x1e')](function(){_0xddc668['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x15ed93,_0x53fea6){return function(_0x536a33){if(!_0x536a33){_0x15ed93[_0xf930('0x14')](0x194);}return _0x536a33;};}function handleError(_0x31bd20,_0x434601){_0x434601=_0x434601||0x1f4;return function(_0x5b8f0e){logger[_0xf930('0x20')](_0x5b8f0e[_0xf930('0x21')]);if(_0x5b8f0e[_0xf930('0x22')]){delete _0x5b8f0e[_0xf930('0x22')];}_0x31bd20[_0xf930('0x15')](_0x434601)[_0xf930('0x23')](_0x5b8f0e);};}exports[_0xf930('0x24')]=function(_0x2ee7b6,_0x504bf4){var _0x2925e1={},_0x39943f={},_0xe92c16={'count':0x0,'rows':[]};var _0x28bdac=_['map'](db[_0xf930('0x25')][_0xf930('0x26')],function(_0x284210){return{'name':_0x284210[_0xf930('0x27')],'type':_0x284210[_0xf930('0x28')]['key']};});_0x39943f[_0xf930('0x29')]=_[_0xf930('0x2a')](_0x28bdac,_0xf930('0x22'));_0x39943f[_0xf930('0x2b')]=_[_0xf930('0x2c')](_0x2ee7b6[_0xf930('0x2b')]);_0x39943f[_0xf930('0x2d')]=_[_0xf930('0x2e')](_0x39943f['model'],_0x39943f[_0xf930('0x2b')]);_0x2925e1[_0xf930('0x2f')]=_[_0xf930('0x2e')](_0x39943f['model'],qs['fields'](_0x2ee7b6['query'][_0xf930('0x30')]));_0x2925e1[_0xf930('0x2f')]=_0x2925e1[_0xf930('0x2f')][_0xf930('0x31')]?_0x2925e1['attributes']:_0x39943f[_0xf930('0x29')];if(!_0x2ee7b6[_0xf930('0x2b')]['hasOwnProperty'](_0xf930('0x32'))){_0x2925e1[_0xf930('0x1a')]=qs[_0xf930('0x1a')](_0x2ee7b6['query'][_0xf930('0x1a')]);_0x2925e1[_0xf930('0x19')]=qs[_0xf930('0x19')](_0x2ee7b6[_0xf930('0x2b')]['offset']);}_0x2925e1[_0xf930('0x33')]=qs[_0xf930('0x34')](_0x2ee7b6[_0xf930('0x2b')][_0xf930('0x34')]);_0x2925e1[_0xf930('0x35')]=qs['filters'](_['pick'](_0x2ee7b6['query'],_0x39943f['filters']));if(_0x2ee7b6[_0xf930('0x2b')]['filter']){_0x2925e1[_0xf930('0x35')]=_[_0xf930('0x36')](_0x2925e1[_0xf930('0x35')],{'$or':_[_0xf930('0x2a')](_0x28bdac,function(_0x5e3a4f){if(_0x5e3a4f[_0xf930('0x28')]!==_0xf930('0x37')){var _0x2ea6d6={};_0x2ea6d6[_0x5e3a4f['name']]={'$like':'%'+_0x2ee7b6[_0xf930('0x2b')][_0xf930('0x38')]+'%'};return _0x2ea6d6;}})});}_0x2925e1=_[_0xf930('0x36')]({},_0x2925e1,_0x2ee7b6[_0xf930('0x39')]);var _0x1c5378={'where':_0x2925e1[_0xf930('0x35')]};return db[_0xf930('0x25')][_0xf930('0x18')](_0x1c5378)[_0xf930('0x1e')](function(_0x2e5328){_0xe92c16[_0xf930('0x18')]=_0x2e5328;if(_0x2ee7b6[_0xf930('0x2b')]['includeAll']){_0x2925e1[_0xf930('0x3a')]=[{'all':!![]}];}return db[_0xf930('0x25')][_0xf930('0x3b')](_0x2925e1);})[_0xf930('0x1e')](function(_0x5726bb){_0xe92c16[_0xf930('0x3c')]=_0x5726bb;return _0xe92c16;})[_0xf930('0x1e')](respondWithFilteredResult(_0x504bf4,_0x2925e1))[_0xf930('0x3d')](handleError(_0x504bf4,null));};exports[_0xf930('0x3e')]=function(_0x27b829,_0x314bea){var _0x1dff74={'raw':!![],'where':{'id':_0x27b829[_0xf930('0x3f')]['id']}},_0x2ef89a={};_0x2ef89a['model']=_['keys'](db[_0xf930('0x25')]['rawAttributes']);_0x2ef89a[_0xf930('0x2b')]=_[_0xf930('0x2c')](_0x27b829[_0xf930('0x2b')]);_0x2ef89a[_0xf930('0x2d')]=_['intersection'](_0x2ef89a[_0xf930('0x29')],_0x2ef89a[_0xf930('0x2b')]);_0x1dff74['attributes']=_[_0xf930('0x2e')](_0x2ef89a['model'],qs[_0xf930('0x30')](_0x27b829['query'][_0xf930('0x30')]));_0x1dff74['attributes']=_0x1dff74[_0xf930('0x2f')][_0xf930('0x31')]?_0x1dff74[_0xf930('0x2f')]:_0x2ef89a[_0xf930('0x29')];if(_0x27b829[_0xf930('0x2b')][_0xf930('0x40')]){_0x1dff74['include']=[{'all':!![]}];}_0x1dff74=_[_0xf930('0x36')]({},_0x1dff74,_0x27b829['options']);return db['AnalyticMetric']['find'](_0x1dff74)['then'](handleEntityNotFound(_0x314bea,null))['then'](respondWithResult(_0x314bea,null))[_0xf930('0x3d')](handleError(_0x314bea,null));};exports[_0xf930('0x41')]=function(_0x4d2112,_0xfbdb1){return db[_0xf930('0x25')][_0xf930('0x41')](_0x4d2112['body'],{})[_0xf930('0x1e')](function(_0x41084f){var _0x3a0832=_0x4d2112['user'][_0xf930('0x42')]({'plain':!![]});if(!_0x3a0832)throw new Error(_0xf930('0x43'));if(_0x3a0832[_0xf930('0x44')]===_0xf930('0x45')){var _0xce2acb=_0x41084f[_0xf930('0x42')]({'plain':!![]});var _0x5021cd=_0xf930('0x46');return db[_0xf930('0x47')]['find']({'where':{'name':_0x5021cd,'userProfileId':_0x3a0832[_0xf930('0x48')]},'raw':!![]})[_0xf930('0x1e')](function(_0x214352){if(_0x214352&&_0x214352[_0xf930('0x49')]===0x0){return db[_0xf930('0x1f')][_0xf930('0x41')]({'name':_0xce2acb[_0xf930('0x22')],'resourceId':_0xce2acb['id'],'type':_0x214352[_0xf930('0x22')],'sectionId':_0x214352['id']},{})[_0xf930('0x1e')](function(){return _0x41084f;});}else{return _0x41084f;}})['catch'](function(_0x4d4894){logger[_0xf930('0x20')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4d4894);throw _0x4d4894;});}return _0x41084f;})[_0xf930('0x1e')](respondWithResult(_0xfbdb1,0xc9))[_0xf930('0x3d')](handleError(_0xfbdb1,null));};exports[_0xf930('0x4a')]=function(_0x36c76c,_0x1e0ffc){if(_0x36c76c[_0xf930('0x4b')]['id']){delete _0x36c76c[_0xf930('0x4b')]['id'];}return db[_0xf930('0x25')][_0xf930('0x4c')]({'where':{'id':_0x36c76c[_0xf930('0x3f')]['id']}})[_0xf930('0x1e')](handleEntityNotFound(_0x1e0ffc,null))[_0xf930('0x1e')](saveUpdates(_0x36c76c[_0xf930('0x4b')],null))[_0xf930('0x1e')](respondWithResult(_0x1e0ffc,null))[_0xf930('0x3d')](handleError(_0x1e0ffc,null));};exports[_0xf930('0x4d')]=function(_0x13bda4,_0xc80979){return db[_0xf930('0x25')][_0xf930('0x4c')]({'where':{'id':_0x13bda4['params']['id']}})[_0xf930('0x1e')](handleEntityNotFound(_0xc80979,null))[_0xf930('0x1e')](removeEntity(_0xc80979,null))['catch'](handleError(_0xc80979,null));};