4ee37f274f83a45bdf195bd6bc9b4895e7e089d6
[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 _0xba9d=['create','body','params','html-pdf','eml-format','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','get','Metrics','error','stack','name','send','map','AnalyticMetric','fieldName','type','key','query','keys','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','findAll','catch','rawAttributes','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource'];(function(_0x46b103,_0x35a654){var _0x169b90=function(_0x21d8fa){while(--_0x21d8fa){_0x46b103['push'](_0x46b103['shift']());}};_0x169b90(++_0x35a654);}(_0xba9d,0x143));var _0xdba9=function(_0xdea41a,_0x552987){_0xdea41a=_0xdea41a-0x0;var _0x15d0d8=_0xba9d[_0xdea41a];return _0x15d0d8;};'use strict';var pdf=require(_0xdba9('0x0'));var emlformat=require(_0xdba9('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xdba9('0x2'));var jsonpatch=require(_0xdba9('0x3'));var rp=require('request-promise');var moment=require(_0xdba9('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xdba9('0x5'));var util=require(_0xdba9('0x6'));var path=require(_0xdba9('0x7'));var sox=require(_0xdba9('0x8'));var csv=require(_0xdba9('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xdba9('0xa'));var crypto=require('crypto');var jsforce=require(_0xdba9('0xb'));var deskjs=require(_0xdba9('0xc'));var toCsv=require(_0xdba9('0x9'));var querystring=require(_0xdba9('0xd'));var Papa=require('papaparse');var Redis=require(_0xdba9('0xe'));var authService=require(_0xdba9('0xf'));var qs=require(_0xdba9('0x10'));var as=require(_0xdba9('0x11'));var hardwareService=require(_0xdba9('0x12'));var logger=require(_0xdba9('0x13'))(_0xdba9('0x14'));var utils=require(_0xdba9('0x15'));var config=require(_0xdba9('0x16'));var db=require(_0xdba9('0x17'))['db'];function respondWithStatusCode(_0x1934c5,_0x4d5367){_0x4d5367=_0x4d5367||0xcc;return function(_0x2f3e24){if(_0x2f3e24){return _0x1934c5[_0xdba9('0x18')](_0x4d5367);}return _0x1934c5[_0xdba9('0x19')](_0x4d5367)[_0xdba9('0x1a')]();};}function respondWithResult(_0x2d7706,_0x39f3ca){_0x39f3ca=_0x39f3ca||0xc8;return function(_0x409969){if(_0x409969){return _0x2d7706[_0xdba9('0x19')](_0x39f3ca)[_0xdba9('0x1b')](_0x409969);}};}function respondWithFilteredResult(_0x43897b,_0x2fce29){return function(_0x663516){if(_0x663516){var _0x2614b4=_0x663516[_0xdba9('0x1c')],_0x38b7b8=_0x2fce29[_0xdba9('0x1d')],_0x578611=_0x2fce29['offset']+_0x2fce29[_0xdba9('0x1e')],_0x2a15ea;if(_0x578611>=_0x2614b4){_0x578611=_0x2614b4;_0x2a15ea=0xc8;}else{_0x2a15ea=0xce;}_0x43897b[_0xdba9('0x19')](_0x2a15ea);return _0x43897b[_0xdba9('0x1f')](_0xdba9('0x20'),_0x38b7b8+'-'+_0x578611+'/'+_0x2614b4)[_0xdba9('0x1b')](_0x663516);}return null;};}function patchUpdates(_0x59e643){return function(_0x19760c){try{jsonpatch[_0xdba9('0x21')](_0x19760c,_0x59e643,!![]);}catch(_0x8981c1){return BPromise['reject'](_0x8981c1);}return _0x19760c[_0xdba9('0x22')]();};}function saveUpdates(_0xaf70fd,_0x107f6c){return function(_0x1e8565){if(_0x1e8565){return _0x1e8565[_0xdba9('0x23')](_0xaf70fd)[_0xdba9('0x24')](function(_0x49dae2){return _0x49dae2;});}return null;};}function removeEntity(_0x1aa9ce,_0x35a3a1){return function(_0x363b03){if(_0x363b03){return _0x363b03[_0xdba9('0x25')]()[_0xdba9('0x24')](function(){var _0x6f029b=_0x363b03[_0xdba9('0x26')]({'plain':!![]});var _0x4d0772=_0xdba9('0x27');return db['UserProfileResource'][_0xdba9('0x25')]({'where':{'type':_0x4d0772,'resourceId':_0x6f029b['id']}})[_0xdba9('0x24')](function(){return _0x363b03;});})[_0xdba9('0x24')](function(){_0x1aa9ce[_0xdba9('0x19')](0xcc)[_0xdba9('0x1a')]();});}};}function handleEntityNotFound(_0x476399,_0x11a7a5){return function(_0x4af8b9){if(!_0x4af8b9){_0x476399[_0xdba9('0x18')](0x194);}return _0x4af8b9;};}function handleError(_0x4f8254,_0x30cac3){_0x30cac3=_0x30cac3||0x1f4;return function(_0x24bfc4){logger[_0xdba9('0x28')](_0x24bfc4[_0xdba9('0x29')]);if(_0x24bfc4['name']){delete _0x24bfc4[_0xdba9('0x2a')];}_0x4f8254[_0xdba9('0x19')](_0x30cac3)[_0xdba9('0x2b')](_0x24bfc4);};}exports['index']=function(_0x5934ea,_0x426d75){var _0x5302d8={},_0x5ee8d3={},_0x3dad07={'count':0x0,'rows':[]};var _0x22678a=_[_0xdba9('0x2c')](db[_0xdba9('0x2d')]['rawAttributes'],function(_0x343cc6){return{'name':_0x343cc6[_0xdba9('0x2e')],'type':_0x343cc6[_0xdba9('0x2f')][_0xdba9('0x30')]};});_0x5ee8d3['model']=_[_0xdba9('0x2c')](_0x22678a,'name');_0x5ee8d3[_0xdba9('0x31')]=_[_0xdba9('0x32')](_0x5934ea[_0xdba9('0x31')]);_0x5ee8d3['filters']=_['intersection'](_0x5ee8d3[_0xdba9('0x33')],_0x5ee8d3[_0xdba9('0x31')]);_0x5302d8[_0xdba9('0x34')]=_[_0xdba9('0x35')](_0x5ee8d3['model'],qs[_0xdba9('0x36')](_0x5934ea[_0xdba9('0x31')][_0xdba9('0x36')]));_0x5302d8[_0xdba9('0x34')]=_0x5302d8[_0xdba9('0x34')][_0xdba9('0x37')]?_0x5302d8['attributes']:_0x5ee8d3[_0xdba9('0x33')];if(!_0x5934ea[_0xdba9('0x31')][_0xdba9('0x38')](_0xdba9('0x39'))){_0x5302d8[_0xdba9('0x1e')]=qs[_0xdba9('0x1e')](_0x5934ea[_0xdba9('0x31')][_0xdba9('0x1e')]);_0x5302d8[_0xdba9('0x1d')]=qs[_0xdba9('0x1d')](_0x5934ea[_0xdba9('0x31')][_0xdba9('0x1d')]);}_0x5302d8['order']=qs['sort'](_0x5934ea[_0xdba9('0x31')][_0xdba9('0x3a')]);_0x5302d8[_0xdba9('0x3b')]=qs[_0xdba9('0x3c')](_['pick'](_0x5934ea[_0xdba9('0x31')],_0x5ee8d3['filters']));if(_0x5934ea[_0xdba9('0x31')][_0xdba9('0x3d')]){_0x5302d8[_0xdba9('0x3b')]=_[_0xdba9('0x3e')](_0x5302d8[_0xdba9('0x3b')],{'$or':_[_0xdba9('0x2c')](_0x22678a,function(_0x3711a3){if(_0x3711a3[_0xdba9('0x2f')]!==_0xdba9('0x3f')){var _0x2e251f={};_0x2e251f[_0x3711a3[_0xdba9('0x2a')]]={'$like':'%'+_0x5934ea['query'][_0xdba9('0x3d')]+'%'};return _0x2e251f;}})});}_0x5302d8=_[_0xdba9('0x3e')]({},_0x5302d8,_0x5934ea[_0xdba9('0x40')]);var _0xf5c691={'where':_0x5302d8[_0xdba9('0x3b')]};return db[_0xdba9('0x2d')]['count'](_0xf5c691)[_0xdba9('0x24')](function(_0x57a133){_0x3dad07[_0xdba9('0x1c')]=_0x57a133;if(_0x5934ea[_0xdba9('0x31')][_0xdba9('0x41')]){_0x5302d8['include']=[{'all':!![]}];}return db[_0xdba9('0x2d')][_0xdba9('0x42')](_0x5302d8);})[_0xdba9('0x24')](function(_0x452751){_0x3dad07['rows']=_0x452751;return _0x3dad07;})[_0xdba9('0x24')](respondWithFilteredResult(_0x426d75,_0x5302d8))[_0xdba9('0x43')](handleError(_0x426d75,null));};exports['show']=function(_0x5bfe58,_0x5299b2){var _0xcd8517={'raw':!![],'where':{'id':_0x5bfe58['params']['id']}},_0x499699={};_0x499699[_0xdba9('0x33')]=_[_0xdba9('0x32')](db[_0xdba9('0x2d')][_0xdba9('0x44')]);_0x499699['query']=_['keys'](_0x5bfe58[_0xdba9('0x31')]);_0x499699[_0xdba9('0x3c')]=_[_0xdba9('0x35')](_0x499699['model'],_0x499699[_0xdba9('0x31')]);_0xcd8517['attributes']=_[_0xdba9('0x35')](_0x499699['model'],qs[_0xdba9('0x36')](_0x5bfe58[_0xdba9('0x31')]['fields']));_0xcd8517[_0xdba9('0x34')]=_0xcd8517[_0xdba9('0x34')]['length']?_0xcd8517[_0xdba9('0x34')]:_0x499699[_0xdba9('0x33')];if(_0x5bfe58[_0xdba9('0x31')][_0xdba9('0x41')]){_0xcd8517['include']=[{'all':!![]}];}_0xcd8517=_[_0xdba9('0x3e')]({},_0xcd8517,_0x5bfe58[_0xdba9('0x40')]);return db['AnalyticMetric']['find'](_0xcd8517)[_0xdba9('0x24')](handleEntityNotFound(_0x5299b2,null))[_0xdba9('0x24')](respondWithResult(_0x5299b2,null))[_0xdba9('0x43')](handleError(_0x5299b2,null));};exports['create']=function(_0x39ad49,_0x53d0d9){return db[_0xdba9('0x2d')]['create'](_0x39ad49['body'],{})['then'](function(_0x8253f9){var _0xc98fd4=_0x39ad49[_0xdba9('0x45')][_0xdba9('0x26')]({'plain':!![]});if(!_0xc98fd4)throw new Error(_0xdba9('0x46'));if(_0xc98fd4[_0xdba9('0x47')]===_0xdba9('0x45')){var _0x3eca03=_0x8253f9['get']({'plain':!![]});var _0x5ea428=_0xdba9('0x27');return db[_0xdba9('0x48')][_0xdba9('0x49')]({'where':{'name':_0x5ea428,'userProfileId':_0xc98fd4[_0xdba9('0x4a')]},'raw':!![]})[_0xdba9('0x24')](function(_0x5ce911){if(_0x5ce911&&_0x5ce911[_0xdba9('0x4b')]===0x0){return db[_0xdba9('0x4c')][_0xdba9('0x4d')]({'name':_0x3eca03[_0xdba9('0x2a')],'resourceId':_0x3eca03['id'],'type':_0x5ce911[_0xdba9('0x2a')],'sectionId':_0x5ce911['id']},{})[_0xdba9('0x24')](function(){return _0x8253f9;});}else{return _0x8253f9;}})[_0xdba9('0x43')](function(_0x10d118){logger[_0xdba9('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x10d118);throw _0x10d118;});}return _0x8253f9;})[_0xdba9('0x24')](respondWithResult(_0x53d0d9,0xc9))[_0xdba9('0x43')](handleError(_0x53d0d9,null));};exports['update']=function(_0x3e3161,_0x756070){if(_0x3e3161[_0xdba9('0x4e')]['id']){delete _0x3e3161['body']['id'];}return db[_0xdba9('0x2d')][_0xdba9('0x49')]({'where':{'id':_0x3e3161[_0xdba9('0x4f')]['id']}})['then'](handleEntityNotFound(_0x756070,null))[_0xdba9('0x24')](saveUpdates(_0x3e3161[_0xdba9('0x4e')],null))[_0xdba9('0x24')](respondWithResult(_0x756070,null))[_0xdba9('0x43')](handleError(_0x756070,null));};exports['destroy']=function(_0xccb6f4,_0x1249d8){return db[_0xdba9('0x2d')][_0xdba9('0x49')]({'where':{'id':_0xccb6f4[_0xdba9('0x4f')]['id']}})[_0xdba9('0x24')](handleEntityNotFound(_0x1249d8,null))[_0xdba9('0x24')](removeEntity(_0x1249d8,null))[_0xdba9('0x43')](handleError(_0x1249d8,null));};