7eb7d3cc7bca6fa2de96143a016cf03b39980a70
[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 _0xd350=['destroy','html-pdf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','reject','save','then','get','UserProfileResource','end','stack','name','index','map','AnalyticMetric','fieldName','type','key','model','query','keys','filters','intersection','attributes','length','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','params','rawAttributes','fields','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Metrics','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update'];(function(_0xeef94c,_0x1db3f7){var _0x447522=function(_0x16d3d5){while(--_0x16d3d5){_0xeef94c['push'](_0xeef94c['shift']());}};_0x447522(++_0x1db3f7);}(_0xd350,0xf4));var _0x0d35=function(_0x239b31,_0x44a64d){_0x239b31=_0x239b31-0x0;var _0x41c8be=_0xd350[_0x239b31];return _0x41c8be;};'use strict';var pdf=require(_0x0d35('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0d35('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0d35('0x2'));var moment=require(_0x0d35('0x3'));var BPromise=require(_0x0d35('0x4'));var Mustache=require('mustache');var util=require(_0x0d35('0x5'));var path=require(_0x0d35('0x6'));var sox=require(_0x0d35('0x7'));var csv=require(_0x0d35('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x0d35('0x9'));var crypto=require(_0x0d35('0xa'));var jsforce=require(_0x0d35('0xb'));var deskjs=require(_0x0d35('0xc'));var toCsv=require('to-csv');var querystring=require(_0x0d35('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x0d35('0xe'));var qs=require(_0x0d35('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0d35('0x10'));var logger=require(_0x0d35('0x11'))(_0x0d35('0x12'));var utils=require(_0x0d35('0x13'));var config=require(_0x0d35('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x0d35('0x15'))['db'];function respondWithStatusCode(_0x36a157,_0x2cfe16){_0x2cfe16=_0x2cfe16||0xcc;return function(_0x2e4b09){if(_0x2e4b09){return _0x36a157[_0x0d35('0x16')](_0x2cfe16);}return _0x36a157[_0x0d35('0x17')](_0x2cfe16)['end']();};}function respondWithResult(_0x204d5f,_0x5685ef){_0x5685ef=_0x5685ef||0xc8;return function(_0x1eceac){if(_0x1eceac){return _0x204d5f['status'](_0x5685ef)['json'](_0x1eceac);}};}function respondWithFilteredResult(_0x4d6f04,_0x183554){return function(_0x4c2314){if(_0x4c2314){var _0x42db40=_0x4c2314[_0x0d35('0x18')],_0x573afd=_0x183554['offset'],_0xed2a14=_0x183554[_0x0d35('0x19')]+_0x183554[_0x0d35('0x1a')],_0x38969b;if(_0xed2a14>=_0x42db40){_0xed2a14=_0x42db40;_0x38969b=0xc8;}else{_0x38969b=0xce;}_0x4d6f04['status'](_0x38969b);return _0x4d6f04[_0x0d35('0x1b')](_0x0d35('0x1c'),_0x573afd+'-'+_0xed2a14+'/'+_0x42db40)[_0x0d35('0x1d')](_0x4c2314);}return null;};}function patchUpdates(_0x396a7d){return function(_0x4c806b){try{jsonpatch[_0x0d35('0x1e')](_0x4c806b,_0x396a7d,!![]);}catch(_0x3e19c6){return BPromise[_0x0d35('0x1f')](_0x3e19c6);}return _0x4c806b[_0x0d35('0x20')]();};}function saveUpdates(_0x20c260,_0x2bf031){return function(_0x5ad0e6){if(_0x5ad0e6){return _0x5ad0e6['update'](_0x20c260)['then'](function(_0x1a20db){return _0x1a20db;});}return null;};}function removeEntity(_0x2b1d37,_0xdc62b9){return function(_0x4d4468){if(_0x4d4468){return _0x4d4468['destroy']()[_0x0d35('0x21')](function(){var _0x583075=_0x4d4468[_0x0d35('0x22')]({'plain':!![]});var _0x2fd404='Metrics';return db[_0x0d35('0x23')]['destroy']({'where':{'type':_0x2fd404,'resourceId':_0x583075['id']}})['then'](function(){return _0x4d4468;});})['then'](function(){_0x2b1d37[_0x0d35('0x17')](0xcc)[_0x0d35('0x24')]();});}};}function handleEntityNotFound(_0x3b39ca,_0x2b3249){return function(_0x3a7e00){if(!_0x3a7e00){_0x3b39ca[_0x0d35('0x16')](0x194);}return _0x3a7e00;};}function handleError(_0x1180b1,_0x566e30){_0x566e30=_0x566e30||0x1f4;return function(_0x11dd5c){logger['error'](_0x11dd5c[_0x0d35('0x25')]);if(_0x11dd5c[_0x0d35('0x26')]){delete _0x11dd5c[_0x0d35('0x26')];}_0x1180b1[_0x0d35('0x17')](_0x566e30)['send'](_0x11dd5c);};}exports[_0x0d35('0x27')]=function(_0x398ba8,_0x37dc7d){var _0x1e0d06={},_0x3e2ee8={},_0x12899f={'count':0x0,'rows':[]};var _0x54582c=_[_0x0d35('0x28')](db[_0x0d35('0x29')]['rawAttributes'],function(_0x3fec86){return{'name':_0x3fec86[_0x0d35('0x2a')],'type':_0x3fec86[_0x0d35('0x2b')][_0x0d35('0x2c')]};});_0x3e2ee8[_0x0d35('0x2d')]=_['map'](_0x54582c,_0x0d35('0x26'));_0x3e2ee8[_0x0d35('0x2e')]=_[_0x0d35('0x2f')](_0x398ba8['query']);_0x3e2ee8[_0x0d35('0x30')]=_[_0x0d35('0x31')](_0x3e2ee8[_0x0d35('0x2d')],_0x3e2ee8[_0x0d35('0x2e')]);_0x1e0d06[_0x0d35('0x32')]=_['intersection'](_0x3e2ee8[_0x0d35('0x2d')],qs['fields'](_0x398ba8[_0x0d35('0x2e')]['fields']));_0x1e0d06[_0x0d35('0x32')]=_0x1e0d06['attributes'][_0x0d35('0x33')]?_0x1e0d06['attributes']:_0x3e2ee8['model'];if(!_0x398ba8[_0x0d35('0x2e')]['hasOwnProperty']('nolimit')){_0x1e0d06[_0x0d35('0x1a')]=qs['limit'](_0x398ba8['query'][_0x0d35('0x1a')]);_0x1e0d06['offset']=qs[_0x0d35('0x19')](_0x398ba8['query']['offset']);}_0x1e0d06[_0x0d35('0x34')]=qs[_0x0d35('0x35')](_0x398ba8[_0x0d35('0x2e')][_0x0d35('0x35')]);_0x1e0d06[_0x0d35('0x36')]=qs[_0x0d35('0x30')](_[_0x0d35('0x37')](_0x398ba8[_0x0d35('0x2e')],_0x3e2ee8[_0x0d35('0x30')]),_0x54582c);if(_0x398ba8[_0x0d35('0x2e')][_0x0d35('0x38')]){_0x1e0d06[_0x0d35('0x36')]=_[_0x0d35('0x39')](_0x1e0d06[_0x0d35('0x36')],{'$or':_[_0x0d35('0x28')](_0x54582c,function(_0x1f2a5d){if(_0x1f2a5d['type']!==_0x0d35('0x3a')){var _0x2548a4={};_0x2548a4[_0x1f2a5d[_0x0d35('0x26')]]={'$like':'%'+_0x398ba8[_0x0d35('0x2e')][_0x0d35('0x38')]+'%'};return _0x2548a4;}})});}_0x1e0d06=_['merge']({},_0x1e0d06,_0x398ba8[_0x0d35('0x3b')]);var _0x2f3dc8={'where':_0x1e0d06[_0x0d35('0x36')]};return db['AnalyticMetric'][_0x0d35('0x18')](_0x2f3dc8)[_0x0d35('0x21')](function(_0x2dcb7c){_0x12899f[_0x0d35('0x18')]=_0x2dcb7c;if(_0x398ba8[_0x0d35('0x2e')]['includeAll']){_0x1e0d06[_0x0d35('0x3c')]=[{'all':!![]}];}return db['AnalyticMetric'][_0x0d35('0x3d')](_0x1e0d06);})[_0x0d35('0x21')](function(_0x43beed){_0x12899f[_0x0d35('0x3e')]=_0x43beed;return _0x12899f;})[_0x0d35('0x21')](respondWithFilteredResult(_0x37dc7d,_0x1e0d06))[_0x0d35('0x3f')](handleError(_0x37dc7d,null));};exports['show']=function(_0x406175,_0x1fc1cd){var _0x9b9a36={'raw':!![],'where':{'id':_0x406175[_0x0d35('0x40')]['id']}},_0x369793={};_0x369793[_0x0d35('0x2d')]=_[_0x0d35('0x2f')](db[_0x0d35('0x29')][_0x0d35('0x41')]);_0x369793[_0x0d35('0x2e')]=_[_0x0d35('0x2f')](_0x406175['query']);_0x369793[_0x0d35('0x30')]=_['intersection'](_0x369793[_0x0d35('0x2d')],_0x369793[_0x0d35('0x2e')]);_0x9b9a36[_0x0d35('0x32')]=_['intersection'](_0x369793[_0x0d35('0x2d')],qs['fields'](_0x406175[_0x0d35('0x2e')][_0x0d35('0x42')]));_0x9b9a36['attributes']=_0x9b9a36[_0x0d35('0x32')][_0x0d35('0x33')]?_0x9b9a36['attributes']:_0x369793[_0x0d35('0x2d')];if(_0x406175[_0x0d35('0x2e')][_0x0d35('0x43')]){_0x9b9a36['include']=[{'all':!![]}];}_0x9b9a36=_[_0x0d35('0x39')]({},_0x9b9a36,_0x406175[_0x0d35('0x3b')]);return db[_0x0d35('0x29')][_0x0d35('0x44')](_0x9b9a36)[_0x0d35('0x21')](handleEntityNotFound(_0x1fc1cd,null))['then'](respondWithResult(_0x1fc1cd,null))[_0x0d35('0x3f')](handleError(_0x1fc1cd,null));};exports[_0x0d35('0x45')]=function(_0x350be3,_0x91cd5a){return db[_0x0d35('0x29')][_0x0d35('0x45')](_0x350be3[_0x0d35('0x46')],{})[_0x0d35('0x21')](function(_0x19c252){var _0x25ef2b=_0x350be3[_0x0d35('0x47')]['get']({'plain':!![]});if(!_0x25ef2b)throw new Error(_0x0d35('0x48'));if(_0x25ef2b[_0x0d35('0x49')]===_0x0d35('0x47')){var _0x39a336=_0x19c252[_0x0d35('0x22')]({'plain':!![]});var _0x1accdb=_0x0d35('0x4a');return db[_0x0d35('0x4b')][_0x0d35('0x44')]({'where':{'name':_0x1accdb,'userProfileId':_0x25ef2b[_0x0d35('0x4c')]},'raw':!![]})['then'](function(_0x275d2e){if(_0x275d2e&&_0x275d2e[_0x0d35('0x4d')]===0x0){return db[_0x0d35('0x23')][_0x0d35('0x45')]({'name':_0x39a336[_0x0d35('0x26')],'resourceId':_0x39a336['id'],'type':_0x275d2e[_0x0d35('0x26')],'sectionId':_0x275d2e['id']},{})[_0x0d35('0x21')](function(){return _0x19c252;});}else{return _0x19c252;}})[_0x0d35('0x3f')](function(_0x54f295){logger['error'](_0x0d35('0x4e'),_0x54f295);throw _0x54f295;});}return _0x19c252;})[_0x0d35('0x21')](respondWithResult(_0x91cd5a,0xc9))[_0x0d35('0x3f')](handleError(_0x91cd5a,null));};exports[_0x0d35('0x4f')]=function(_0x174d49,_0x51eb18){if(_0x174d49['body']['id']){delete _0x174d49[_0x0d35('0x46')]['id'];}return db['AnalyticMetric'][_0x0d35('0x44')]({'where':{'id':_0x174d49[_0x0d35('0x40')]['id']}})[_0x0d35('0x21')](handleEntityNotFound(_0x51eb18,null))[_0x0d35('0x21')](saveUpdates(_0x174d49[_0x0d35('0x46')],null))['then'](respondWithResult(_0x51eb18,null))['catch'](handleError(_0x51eb18,null));};exports[_0x0d35('0x50')]=function(_0x9c6c68,_0x51af04){return db[_0x0d35('0x29')][_0x0d35('0x44')]({'where':{'id':_0x9c6c68[_0x0d35('0x40')]['id']}})['then'](handleEntityNotFound(_0x51af04,null))[_0x0d35('0x21')](removeEntity(_0x51af04,null))[_0x0d35('0x3f')](handleError(_0x51af04,null));};