Built motion from commit (unavailable).|2.5.4
[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 _0xd290=['length','hasOwnProperty','nolimit','order','sort','where','pick','filter','AnalyticMetric','includeAll','include','findAll','rows','catch','show','params','merge','options','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','html-pdf','eml-format','zip-dir','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../mysqldb','status','end','count','offset','limit','set','Content-Range','json','apply','save','update','then','destroy','Metrics','UserProfileResource','sendStatus','stack','index','map','rawAttributes','fieldName','type','key','model','name','query','keys','filters','intersection','attributes','fields'];(function(_0x3abf1b,_0x47e9b7){var _0x30a0f8=function(_0x2685a5){while(--_0x2685a5){_0x3abf1b['push'](_0x3abf1b['shift']());}};_0x30a0f8(++_0x47e9b7);}(_0xd290,0x165));var _0x0d29=function(_0x35e854,_0x8cffa7){_0x35e854=_0x35e854-0x0;var _0x165ab9=_0xd290[_0x35e854];return _0x165ab9;};'use strict';var pdf=require(_0x0d29('0x0'));var emlformat=require(_0x0d29('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x0d29('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0d29('0x3'));var BPromise=require(_0x0d29('0x4'));var Mustache=require(_0x0d29('0x5'));var util=require(_0x0d29('0x6'));var path=require(_0x0d29('0x7'));var sox=require('sox');var csv=require(_0x0d29('0x8'));var ejs=require(_0x0d29('0x9'));var fs=require('fs');var _=require(_0x0d29('0xa'));var squel=require(_0x0d29('0xb'));var crypto=require(_0x0d29('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x0d29('0xd'));var toCsv=require(_0x0d29('0x8'));var querystring=require(_0x0d29('0xe'));var Papa=require('papaparse');var Redis=require(_0x0d29('0xf'));var authService=require(_0x0d29('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x0d29('0x11'));var hardwareService=require(_0x0d29('0x12'));var logger=require('../../config/logger')(_0x0d29('0x13'));var utils=require('../../config/utils');var config=require(_0x0d29('0x14'));var db=require(_0x0d29('0x15'))['db'];function respondWithStatusCode(_0x259768,_0x87cf36){_0x87cf36=_0x87cf36||0xcc;return function(_0x1b8787){if(_0x1b8787){return _0x259768['sendStatus'](_0x87cf36);}return _0x259768[_0x0d29('0x16')](_0x87cf36)[_0x0d29('0x17')]();};}function respondWithResult(_0x26d2b6,_0x94b2f5){_0x94b2f5=_0x94b2f5||0xc8;return function(_0x1a0f48){if(_0x1a0f48){return _0x26d2b6['status'](_0x94b2f5)['json'](_0x1a0f48);}};}function respondWithFilteredResult(_0x49f132,_0x247d1d){return function(_0x4acfd6){if(_0x4acfd6){var _0x44fe29=_0x4acfd6[_0x0d29('0x18')],_0x4c4044=_0x247d1d[_0x0d29('0x19')],_0x3131e1=_0x247d1d[_0x0d29('0x19')]+_0x247d1d[_0x0d29('0x1a')],_0x396172;if(_0x3131e1>=_0x44fe29){_0x3131e1=_0x44fe29;_0x396172=0xc8;}else{_0x396172=0xce;}_0x49f132['status'](_0x396172);return _0x49f132[_0x0d29('0x1b')](_0x0d29('0x1c'),_0x4c4044+'-'+_0x3131e1+'/'+_0x44fe29)[_0x0d29('0x1d')](_0x4acfd6);}return null;};}function patchUpdates(_0x24e774){return function(_0xd3ccf3){try{jsonpatch[_0x0d29('0x1e')](_0xd3ccf3,_0x24e774,!![]);}catch(_0x37dbc5){return BPromise['reject'](_0x37dbc5);}return _0xd3ccf3[_0x0d29('0x1f')]();};}function saveUpdates(_0x11d2ec,_0x215cd7){return function(_0x138465){if(_0x138465){return _0x138465[_0x0d29('0x20')](_0x11d2ec)[_0x0d29('0x21')](function(_0x392394){return _0x392394;});}return null;};}function removeEntity(_0x822a9a,_0x44fbce){return function(_0xed8228){if(_0xed8228){return _0xed8228[_0x0d29('0x22')]()[_0x0d29('0x21')](function(){var _0xb9fffc=_0xed8228['get']({'plain':!![]});var _0x30e109=_0x0d29('0x23');return db[_0x0d29('0x24')][_0x0d29('0x22')]({'where':{'type':_0x30e109,'resourceId':_0xb9fffc['id']}})['then'](function(){return _0xed8228;});})[_0x0d29('0x21')](function(){_0x822a9a[_0x0d29('0x16')](0xcc)[_0x0d29('0x17')]();});}};}function handleEntityNotFound(_0xceff8a,_0x887384){return function(_0x1f4451){if(!_0x1f4451){_0xceff8a[_0x0d29('0x25')](0x194);}return _0x1f4451;};}function handleError(_0x4a9d6f,_0x511281){_0x511281=_0x511281||0x1f4;return function(_0x2f1814){logger['error'](_0x2f1814[_0x0d29('0x26')]);if(_0x2f1814['name']){delete _0x2f1814['name'];}_0x4a9d6f[_0x0d29('0x16')](_0x511281)['send'](_0x2f1814);};}exports[_0x0d29('0x27')]=function(_0x5c197f,_0x230097){var _0x2f7202={},_0x4d274e={},_0x37f925={'count':0x0,'rows':[]};var _0xcda103=_[_0x0d29('0x28')](db['AnalyticMetric'][_0x0d29('0x29')],function(_0x3a22a1){return{'name':_0x3a22a1[_0x0d29('0x2a')],'type':_0x3a22a1[_0x0d29('0x2b')][_0x0d29('0x2c')]};});_0x4d274e[_0x0d29('0x2d')]=_[_0x0d29('0x28')](_0xcda103,_0x0d29('0x2e'));_0x4d274e[_0x0d29('0x2f')]=_[_0x0d29('0x30')](_0x5c197f['query']);_0x4d274e[_0x0d29('0x31')]=_[_0x0d29('0x32')](_0x4d274e[_0x0d29('0x2d')],_0x4d274e[_0x0d29('0x2f')]);_0x2f7202[_0x0d29('0x33')]=_[_0x0d29('0x32')](_0x4d274e['model'],qs[_0x0d29('0x34')](_0x5c197f[_0x0d29('0x2f')][_0x0d29('0x34')]));_0x2f7202[_0x0d29('0x33')]=_0x2f7202[_0x0d29('0x33')][_0x0d29('0x35')]?_0x2f7202[_0x0d29('0x33')]:_0x4d274e['model'];if(!_0x5c197f[_0x0d29('0x2f')][_0x0d29('0x36')](_0x0d29('0x37'))){_0x2f7202[_0x0d29('0x1a')]=qs[_0x0d29('0x1a')](_0x5c197f[_0x0d29('0x2f')]['limit']);_0x2f7202[_0x0d29('0x19')]=qs['offset'](_0x5c197f[_0x0d29('0x2f')][_0x0d29('0x19')]);}_0x2f7202[_0x0d29('0x38')]=qs[_0x0d29('0x39')](_0x5c197f[_0x0d29('0x2f')]['sort']);_0x2f7202[_0x0d29('0x3a')]=qs[_0x0d29('0x31')](_[_0x0d29('0x3b')](_0x5c197f['query'],_0x4d274e[_0x0d29('0x31')]),_0xcda103);if(_0x5c197f[_0x0d29('0x2f')][_0x0d29('0x3c')]){_0x2f7202['where']=_['merge'](_0x2f7202[_0x0d29('0x3a')],{'$or':_[_0x0d29('0x28')](_0xcda103,function(_0x24a679){if(_0x24a679[_0x0d29('0x2b')]!=='VIRTUAL'){var _0x34db8b={};_0x34db8b[_0x24a679[_0x0d29('0x2e')]]={'$like':'%'+_0x5c197f[_0x0d29('0x2f')]['filter']+'%'};return _0x34db8b;}})});}_0x2f7202=_['merge']({},_0x2f7202,_0x5c197f['options']);var _0x5a1a25={'where':_0x2f7202[_0x0d29('0x3a')]};return db[_0x0d29('0x3d')]['count'](_0x5a1a25)[_0x0d29('0x21')](function(_0x3c46e9){_0x37f925[_0x0d29('0x18')]=_0x3c46e9;if(_0x5c197f[_0x0d29('0x2f')][_0x0d29('0x3e')]){_0x2f7202[_0x0d29('0x3f')]=[{'all':!![]}];}return db[_0x0d29('0x3d')][_0x0d29('0x40')](_0x2f7202);})[_0x0d29('0x21')](function(_0x568a01){_0x37f925[_0x0d29('0x41')]=_0x568a01;return _0x37f925;})['then'](respondWithFilteredResult(_0x230097,_0x2f7202))[_0x0d29('0x42')](handleError(_0x230097,null));};exports[_0x0d29('0x43')]=function(_0x2cfbd4,_0x831055){var _0x3bf16e={'raw':!![],'where':{'id':_0x2cfbd4[_0x0d29('0x44')]['id']}},_0x433fce={};_0x433fce[_0x0d29('0x2d')]=_[_0x0d29('0x30')](db[_0x0d29('0x3d')]['rawAttributes']);_0x433fce[_0x0d29('0x2f')]=_['keys'](_0x2cfbd4['query']);_0x433fce[_0x0d29('0x31')]=_['intersection'](_0x433fce[_0x0d29('0x2d')],_0x433fce[_0x0d29('0x2f')]);_0x3bf16e[_0x0d29('0x33')]=_[_0x0d29('0x32')](_0x433fce[_0x0d29('0x2d')],qs[_0x0d29('0x34')](_0x2cfbd4[_0x0d29('0x2f')]['fields']));_0x3bf16e[_0x0d29('0x33')]=_0x3bf16e['attributes'][_0x0d29('0x35')]?_0x3bf16e['attributes']:_0x433fce['model'];if(_0x2cfbd4[_0x0d29('0x2f')][_0x0d29('0x3e')]){_0x3bf16e[_0x0d29('0x3f')]=[{'all':!![]}];}_0x3bf16e=_[_0x0d29('0x45')]({},_0x3bf16e,_0x2cfbd4[_0x0d29('0x46')]);return db[_0x0d29('0x3d')]['find'](_0x3bf16e)[_0x0d29('0x21')](handleEntityNotFound(_0x831055,null))['then'](respondWithResult(_0x831055,null))['catch'](handleError(_0x831055,null));};exports[_0x0d29('0x47')]=function(_0x324ee8,_0x5bcaec){return db['AnalyticMetric']['create'](_0x324ee8[_0x0d29('0x48')],{})[_0x0d29('0x21')](function(_0x3c014a){var _0x241ea1=_0x324ee8['user'][_0x0d29('0x49')]({'plain':!![]});if(!_0x241ea1)throw new Error(_0x0d29('0x4a'));if(_0x241ea1['role']===_0x0d29('0x4b')){var _0x33c67f=_0x3c014a[_0x0d29('0x49')]({'plain':!![]});var _0x366260='Metrics';return db[_0x0d29('0x4c')]['find']({'where':{'name':_0x366260,'userProfileId':_0x241ea1[_0x0d29('0x4d')]},'raw':!![]})[_0x0d29('0x21')](function(_0x3c6513){if(_0x3c6513&&_0x3c6513[_0x0d29('0x4e')]===0x0){return db[_0x0d29('0x24')][_0x0d29('0x47')]({'name':_0x33c67f[_0x0d29('0x2e')],'resourceId':_0x33c67f['id'],'type':_0x3c6513[_0x0d29('0x2e')],'sectionId':_0x3c6513['id']},{})[_0x0d29('0x21')](function(){return _0x3c014a;});}else{return _0x3c014a;}})[_0x0d29('0x42')](function(_0x4ba640){logger[_0x0d29('0x4f')](_0x0d29('0x50'),_0x4ba640);throw _0x4ba640;});}return _0x3c014a;})[_0x0d29('0x21')](respondWithResult(_0x5bcaec,0xc9))[_0x0d29('0x42')](handleError(_0x5bcaec,null));};exports['update']=function(_0x4ae9ff,_0x1220cf){if(_0x4ae9ff['body']['id']){delete _0x4ae9ff['body']['id'];}return db[_0x0d29('0x3d')][_0x0d29('0x51')]({'where':{'id':_0x4ae9ff['params']['id']}})[_0x0d29('0x21')](handleEntityNotFound(_0x1220cf,null))[_0x0d29('0x21')](saveUpdates(_0x4ae9ff['body'],null))[_0x0d29('0x21')](respondWithResult(_0x1220cf,null))['catch'](handleError(_0x1220cf,null));};exports[_0x0d29('0x22')]=function(_0xf41b5e,_0x4b77d8){return db[_0x0d29('0x3d')][_0x0d29('0x51')]({'where':{'id':_0xf41b5e[_0x0d29('0x44')]['id']}})['then'](handleEntityNotFound(_0x4b77d8,null))[_0x0d29('0x21')](removeEntity(_0x4b77d8,null))['catch'](handleError(_0x4b77d8,null));};