bd2e6021186710356a8cd9c1214a578f67e5e55c
[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 _0x3109=['index','map','AnalyticMetric','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','order','sort','filters','pick','filter','where','merge','include','findAll','rows','show','rawAttributes','includeAll','options','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','autoAssociation','catch','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','crypto','jsforce','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','json','count','offset','limit','status','Content-Range','apply','reject','update','then','destroy','get','Metrics','UserProfileResource','end','stack','name','send'];(function(_0x1ac29c,_0x15f74a){var _0x475e75=function(_0x27328f){while(--_0x27328f){_0x1ac29c['push'](_0x1ac29c['shift']());}};_0x475e75(++_0x15f74a);}(_0x3109,0x7c));var _0x9310=function(_0x3ae703,_0x376a89){_0x3ae703=_0x3ae703-0x0;var _0x583f33=_0x3109[_0x3ae703];return _0x583f33;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x9310('0x0'));var rimraf=require(_0x9310('0x1'));var zipdir=require(_0x9310('0x2'));var jsonpatch=require(_0x9310('0x3'));var rp=require(_0x9310('0x4'));var moment=require(_0x9310('0x5'));var BPromise=require(_0x9310('0x6'));var Mustache=require(_0x9310('0x7'));var util=require(_0x9310('0x8'));var path=require(_0x9310('0x9'));var sox=require(_0x9310('0xa'));var csv=require(_0x9310('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x9310('0xc'));var crypto=require(_0x9310('0xd'));var jsforce=require(_0x9310('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x9310('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x9310('0xf'));var authService=require(_0x9310('0x10'));var qs=require(_0x9310('0x11'));var as=require(_0x9310('0x12'));var hardwareService=require(_0x9310('0x13'));var logger=require(_0x9310('0x14'))(_0x9310('0x15'));var utils=require(_0x9310('0x16'));var config=require(_0x9310('0x17'));var licenseUtil=require(_0x9310('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1a4b8b,_0x5c69ad){_0x5c69ad=_0x5c69ad||0xcc;return function(_0x15f2b9){if(_0x15f2b9){return _0x1a4b8b[_0x9310('0x19')](_0x5c69ad);}return _0x1a4b8b['status'](_0x5c69ad)['end']();};}function respondWithResult(_0x474e64,_0x2f63d5){_0x2f63d5=_0x2f63d5||0xc8;return function(_0x119f87){if(_0x119f87){return _0x474e64['status'](_0x2f63d5)[_0x9310('0x1a')](_0x119f87);}};}function respondWithFilteredResult(_0x55a7c5,_0x52094c){return function(_0x1fbdc5){if(_0x1fbdc5){var _0x1012e7=_0x1fbdc5[_0x9310('0x1b')],_0x48afdc=_0x52094c['offset'],_0x14c676=_0x52094c[_0x9310('0x1c')]+_0x52094c[_0x9310('0x1d')],_0x28ebeb;if(_0x14c676>=_0x1012e7){_0x14c676=_0x1012e7;_0x28ebeb=0xc8;}else{_0x28ebeb=0xce;}_0x55a7c5[_0x9310('0x1e')](_0x28ebeb);return _0x55a7c5['set'](_0x9310('0x1f'),_0x48afdc+'-'+_0x14c676+'/'+_0x1012e7)[_0x9310('0x1a')](_0x1fbdc5);}return null;};}function patchUpdates(_0x274212){return function(_0x5e86c5){try{jsonpatch[_0x9310('0x20')](_0x5e86c5,_0x274212,!![]);}catch(_0x419f6f){return BPromise[_0x9310('0x21')](_0x419f6f);}return _0x5e86c5['save']();};}function saveUpdates(_0xe4faac,_0x21231e){return function(_0x357a80){if(_0x357a80){return _0x357a80[_0x9310('0x22')](_0xe4faac)[_0x9310('0x23')](function(_0x242622){return _0x242622;});}return null;};}function removeEntity(_0x302b2f,_0x22a75a){return function(_0x22b796){if(_0x22b796){return _0x22b796[_0x9310('0x24')]()[_0x9310('0x23')](function(){var _0x593cc9=_0x22b796[_0x9310('0x25')]({'plain':!![]});var _0x5ace35=_0x9310('0x26');return db[_0x9310('0x27')][_0x9310('0x24')]({'where':{'type':_0x5ace35,'resourceId':_0x593cc9['id']}})[_0x9310('0x23')](function(){return _0x22b796;});})[_0x9310('0x23')](function(){_0x302b2f[_0x9310('0x1e')](0xcc)[_0x9310('0x28')]();});}};}function handleEntityNotFound(_0x224095,_0x5600d7){return function(_0x5e75df){if(!_0x5e75df){_0x224095[_0x9310('0x19')](0x194);}return _0x5e75df;};}function handleError(_0x4ac95e,_0x144324){_0x144324=_0x144324||0x1f4;return function(_0x1f238e){logger['error'](_0x1f238e[_0x9310('0x29')]);if(_0x1f238e[_0x9310('0x2a')]){delete _0x1f238e[_0x9310('0x2a')];}_0x4ac95e[_0x9310('0x1e')](_0x144324)[_0x9310('0x2b')](_0x1f238e);};}exports[_0x9310('0x2c')]=function(_0x18f295,_0x34d217){var _0x4e6396={},_0x198020={},_0x182579={'count':0x0,'rows':[]};var _0x5e3743=_[_0x9310('0x2d')](db[_0x9310('0x2e')]['rawAttributes'],function(_0x180d69){return{'name':_0x180d69[_0x9310('0x2f')],'type':_0x180d69[_0x9310('0x30')][_0x9310('0x31')]};});_0x198020[_0x9310('0x32')]=_[_0x9310('0x2d')](_0x5e3743,_0x9310('0x2a'));_0x198020[_0x9310('0x33')]=_[_0x9310('0x34')](_0x18f295[_0x9310('0x33')]);_0x198020['filters']=_['intersection'](_0x198020['model'],_0x198020[_0x9310('0x33')]);_0x4e6396[_0x9310('0x35')]=_[_0x9310('0x36')](_0x198020['model'],qs[_0x9310('0x37')](_0x18f295[_0x9310('0x33')][_0x9310('0x37')]));_0x4e6396[_0x9310('0x35')]=_0x4e6396[_0x9310('0x35')][_0x9310('0x38')]?_0x4e6396[_0x9310('0x35')]:_0x198020['model'];if(!_0x18f295[_0x9310('0x33')][_0x9310('0x39')]('nolimit')){_0x4e6396[_0x9310('0x1d')]=qs['limit'](_0x18f295[_0x9310('0x33')][_0x9310('0x1d')]);_0x4e6396[_0x9310('0x1c')]=qs[_0x9310('0x1c')](_0x18f295[_0x9310('0x33')][_0x9310('0x1c')]);}_0x4e6396[_0x9310('0x3a')]=qs[_0x9310('0x3b')](_0x18f295[_0x9310('0x33')][_0x9310('0x3b')]);_0x4e6396['where']=qs[_0x9310('0x3c')](_[_0x9310('0x3d')](_0x18f295[_0x9310('0x33')],_0x198020[_0x9310('0x3c')]),_0x5e3743);if(_0x18f295[_0x9310('0x33')][_0x9310('0x3e')]){_0x4e6396[_0x9310('0x3f')]=_['merge'](_0x4e6396[_0x9310('0x3f')],{'$or':_[_0x9310('0x2d')](_0x5e3743,function(_0x376614){if(_0x376614['type']!=='VIRTUAL'){var _0x56bb88={};_0x56bb88[_0x376614[_0x9310('0x2a')]]={'$like':'%'+_0x18f295[_0x9310('0x33')][_0x9310('0x3e')]+'%'};return _0x56bb88;}})});}_0x4e6396=_[_0x9310('0x40')]({},_0x4e6396,_0x18f295['options']);var _0x2e0ef1={'where':_0x4e6396[_0x9310('0x3f')]};return db[_0x9310('0x2e')][_0x9310('0x1b')](_0x2e0ef1)[_0x9310('0x23')](function(_0x356c45){_0x182579[_0x9310('0x1b')]=_0x356c45;if(_0x18f295[_0x9310('0x33')]['includeAll']){_0x4e6396[_0x9310('0x41')]=[{'all':!![]}];}return db[_0x9310('0x2e')][_0x9310('0x42')](_0x4e6396);})['then'](function(_0x44dae7){_0x182579[_0x9310('0x43')]=_0x44dae7;return _0x182579;})[_0x9310('0x23')](respondWithFilteredResult(_0x34d217,_0x4e6396))['catch'](handleError(_0x34d217,null));};exports[_0x9310('0x44')]=function(_0x421e19,_0x17916d){var _0x45cf9f={'raw':!![],'where':{'id':_0x421e19['params']['id']}},_0x27112f={};_0x27112f[_0x9310('0x32')]=_['keys'](db[_0x9310('0x2e')][_0x9310('0x45')]);_0x27112f['query']=_[_0x9310('0x34')](_0x421e19[_0x9310('0x33')]);_0x27112f[_0x9310('0x3c')]=_[_0x9310('0x36')](_0x27112f[_0x9310('0x32')],_0x27112f[_0x9310('0x33')]);_0x45cf9f[_0x9310('0x35')]=_[_0x9310('0x36')](_0x27112f[_0x9310('0x32')],qs['fields'](_0x421e19[_0x9310('0x33')][_0x9310('0x37')]));_0x45cf9f[_0x9310('0x35')]=_0x45cf9f[_0x9310('0x35')][_0x9310('0x38')]?_0x45cf9f[_0x9310('0x35')]:_0x27112f[_0x9310('0x32')];if(_0x421e19['query'][_0x9310('0x46')]){_0x45cf9f[_0x9310('0x41')]=[{'all':!![]}];}_0x45cf9f=_[_0x9310('0x40')]({},_0x45cf9f,_0x421e19[_0x9310('0x47')]);return db[_0x9310('0x2e')]['find'](_0x45cf9f)[_0x9310('0x23')](handleEntityNotFound(_0x17916d,null))['then'](respondWithResult(_0x17916d,null))['catch'](handleError(_0x17916d,null));};exports[_0x9310('0x48')]=function(_0x9d3d0b,_0x3dde6f){return db[_0x9310('0x2e')][_0x9310('0x48')](_0x9d3d0b['body'],{})[_0x9310('0x23')](function(_0x20d64f){var _0x33a06b=_0x9d3d0b['user'][_0x9310('0x25')]({'plain':!![]});if(!_0x33a06b)throw new Error(_0x9310('0x49'));if(_0x33a06b[_0x9310('0x4a')]===_0x9310('0x4b')){var _0x3b888c=_0x20d64f[_0x9310('0x25')]({'plain':!![]});var _0x4c58ef=_0x9310('0x26');return db[_0x9310('0x4c')][_0x9310('0x4d')]({'where':{'name':_0x4c58ef,'userProfileId':_0x33a06b['userProfileId']},'raw':!![]})[_0x9310('0x23')](function(_0x527a6b){if(_0x527a6b&&_0x527a6b[_0x9310('0x4e')]===0x0){return db['UserProfileResource'][_0x9310('0x48')]({'name':_0x3b888c[_0x9310('0x2a')],'resourceId':_0x3b888c['id'],'type':_0x527a6b[_0x9310('0x2a')],'sectionId':_0x527a6b['id']},{})[_0x9310('0x23')](function(){return _0x20d64f;});}else{return _0x20d64f;}})[_0x9310('0x4f')](function(_0x7c0f08){logger[_0x9310('0x50')](_0x9310('0x51'),_0x7c0f08);throw _0x7c0f08;});}return _0x20d64f;})[_0x9310('0x23')](respondWithResult(_0x3dde6f,0xc9))['catch'](handleError(_0x3dde6f,null));};exports['update']=function(_0x10efab,_0x43f686){if(_0x10efab[_0x9310('0x52')]['id']){delete _0x10efab['body']['id'];}return db[_0x9310('0x2e')]['find']({'where':{'id':_0x10efab['params']['id']}})[_0x9310('0x23')](handleEntityNotFound(_0x43f686,null))['then'](saveUpdates(_0x10efab[_0x9310('0x52')],null))[_0x9310('0x23')](respondWithResult(_0x43f686,null))[_0x9310('0x4f')](handleError(_0x43f686,null));};exports[_0x9310('0x24')]=function(_0x3b2fd4,_0xf2e247){return db['AnalyticMetric'][_0x9310('0x4d')]({'where':{'id':_0x3b2fd4[_0x9310('0x53')]['id']}})[_0x9310('0x23')](handleEntityNotFound(_0xf2e247,null))['then'](removeEntity(_0xf2e247,null))[_0x9310('0x4f')](handleError(_0xf2e247,null));};