d207bd99420f8e0466b8c891ea43d5b3137e1b20
[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 _0x7775=['destroy','get','Metrics','end','stack','name','send','index','map','AnalyticMetric','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','length','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','params','eml-format','rimraf','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','limit','apply','save','update','then'];(function(_0xa6441c,_0x2e791e){var _0x4cf10d=function(_0x3bd39c){while(--_0x3bd39c){_0xa6441c['push'](_0xa6441c['shift']());}};_0x4cf10d(++_0x2e791e);}(_0x7775,0x17c));var _0x5777=function(_0x161174,_0x324acc){_0x161174=_0x161174-0x0;var _0x48ed31=_0x7775[_0x161174];return _0x48ed31;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x5777('0x0'));var rimraf=require(_0x5777('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5777('0x2'));var rp=require(_0x5777('0x3'));var moment=require('moment');var BPromise=require(_0x5777('0x4'));var Mustache=require('mustache');var util=require(_0x5777('0x5'));var path=require(_0x5777('0x6'));var sox=require('sox');var csv=require(_0x5777('0x7'));var ejs=require(_0x5777('0x8'));var fs=require('fs');var _=require(_0x5777('0x9'));var squel=require(_0x5777('0xa'));var crypto=require(_0x5777('0xb'));var jsforce=require(_0x5777('0xc'));var deskjs=require(_0x5777('0xd'));var toCsv=require(_0x5777('0x7'));var querystring=require(_0x5777('0xe'));var Papa=require(_0x5777('0xf'));var Redis=require(_0x5777('0x10'));var authService=require(_0x5777('0x11'));var qs=require(_0x5777('0x12'));var as=require(_0x5777('0x13'));var hardwareService=require(_0x5777('0x14'));var logger=require(_0x5777('0x15'))(_0x5777('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x5777('0x17'));var db=require(_0x5777('0x18'))['db'];function respondWithStatusCode(_0x27695e,_0x3fb173){_0x3fb173=_0x3fb173||0xcc;return function(_0x30c793){if(_0x30c793){return _0x27695e[_0x5777('0x19')](_0x3fb173);}return _0x27695e[_0x5777('0x1a')](_0x3fb173)['end']();};}function respondWithResult(_0x3bfaee,_0x3d02c8){_0x3d02c8=_0x3d02c8||0xc8;return function(_0x1e92f8){if(_0x1e92f8){return _0x3bfaee['status'](_0x3d02c8)[_0x5777('0x1b')](_0x1e92f8);}};}function respondWithFilteredResult(_0x6edbfd,_0x2ab05d){return function(_0x31eea5){if(_0x31eea5){var _0x1b92c5=_0x31eea5[_0x5777('0x1c')],_0x2bcd4f=_0x2ab05d[_0x5777('0x1d')],_0x8ea7ee=_0x2ab05d[_0x5777('0x1d')]+_0x2ab05d[_0x5777('0x1e')],_0x3fa274;if(_0x8ea7ee>=_0x1b92c5){_0x8ea7ee=_0x1b92c5;_0x3fa274=0xc8;}else{_0x3fa274=0xce;}_0x6edbfd['status'](_0x3fa274);return _0x6edbfd['set']('Content-Range',_0x2bcd4f+'-'+_0x8ea7ee+'/'+_0x1b92c5)[_0x5777('0x1b')](_0x31eea5);}return null;};}function patchUpdates(_0xcedcb2){return function(_0x15ae6c){try{jsonpatch[_0x5777('0x1f')](_0x15ae6c,_0xcedcb2,!![]);}catch(_0x223236){return BPromise['reject'](_0x223236);}return _0x15ae6c[_0x5777('0x20')]();};}function saveUpdates(_0x2bde51,_0x4f9701){return function(_0x3f26d7){if(_0x3f26d7){return _0x3f26d7[_0x5777('0x21')](_0x2bde51)[_0x5777('0x22')](function(_0x303f3d){return _0x303f3d;});}return null;};}function removeEntity(_0x3e75ad,_0x5f18d8){return function(_0x5d8056){if(_0x5d8056){return _0x5d8056[_0x5777('0x23')]()[_0x5777('0x22')](function(){var _0x8f232c=_0x5d8056[_0x5777('0x24')]({'plain':!![]});var _0x1c30c7=_0x5777('0x25');return db['UserProfileResource'][_0x5777('0x23')]({'where':{'type':_0x1c30c7,'resourceId':_0x8f232c['id']}})[_0x5777('0x22')](function(){return _0x5d8056;});})[_0x5777('0x22')](function(){_0x3e75ad[_0x5777('0x1a')](0xcc)[_0x5777('0x26')]();});}};}function handleEntityNotFound(_0xd32214,_0x4713a3){return function(_0x5e3156){if(!_0x5e3156){_0xd32214['sendStatus'](0x194);}return _0x5e3156;};}function handleError(_0x9cdd7f,_0x47b25d){_0x47b25d=_0x47b25d||0x1f4;return function(_0xa5220c){logger['error'](_0xa5220c[_0x5777('0x27')]);if(_0xa5220c[_0x5777('0x28')]){delete _0xa5220c[_0x5777('0x28')];}_0x9cdd7f[_0x5777('0x1a')](_0x47b25d)[_0x5777('0x29')](_0xa5220c);};}exports[_0x5777('0x2a')]=function(_0x2e50ba,_0xe2b58a){var _0x354d05={},_0x56d955={},_0x19a628={'count':0x0,'rows':[]};var _0x3eaffa=_[_0x5777('0x2b')](db[_0x5777('0x2c')][_0x5777('0x2d')],function(_0x3d4fe4){return{'name':_0x3d4fe4[_0x5777('0x2e')],'type':_0x3d4fe4[_0x5777('0x2f')][_0x5777('0x30')]};});_0x56d955[_0x5777('0x31')]=_[_0x5777('0x2b')](_0x3eaffa,_0x5777('0x28'));_0x56d955[_0x5777('0x32')]=_[_0x5777('0x33')](_0x2e50ba['query']);_0x56d955['filters']=_[_0x5777('0x34')](_0x56d955[_0x5777('0x31')],_0x56d955[_0x5777('0x32')]);_0x354d05[_0x5777('0x35')]=_[_0x5777('0x34')](_0x56d955[_0x5777('0x31')],qs['fields'](_0x2e50ba[_0x5777('0x32')][_0x5777('0x36')]));_0x354d05['attributes']=_0x354d05[_0x5777('0x35')]['length']?_0x354d05[_0x5777('0x35')]:_0x56d955['model'];if(!_0x2e50ba[_0x5777('0x32')][_0x5777('0x37')](_0x5777('0x38'))){_0x354d05[_0x5777('0x1e')]=qs[_0x5777('0x1e')](_0x2e50ba['query'][_0x5777('0x1e')]);_0x354d05[_0x5777('0x1d')]=qs[_0x5777('0x1d')](_0x2e50ba[_0x5777('0x32')][_0x5777('0x1d')]);}_0x354d05[_0x5777('0x39')]=qs[_0x5777('0x3a')](_0x2e50ba[_0x5777('0x32')][_0x5777('0x3a')]);_0x354d05['where']=qs[_0x5777('0x3b')](_[_0x5777('0x3c')](_0x2e50ba['query'],_0x56d955[_0x5777('0x3b')]),_0x3eaffa);if(_0x2e50ba[_0x5777('0x32')][_0x5777('0x3d')]){_0x354d05[_0x5777('0x3e')]=_[_0x5777('0x3f')](_0x354d05[_0x5777('0x3e')],{'$or':_[_0x5777('0x2b')](_0x3eaffa,function(_0x26c271){if(_0x26c271[_0x5777('0x2f')]!==_0x5777('0x40')){var _0x7cc113={};_0x7cc113[_0x26c271[_0x5777('0x28')]]={'$like':'%'+_0x2e50ba[_0x5777('0x32')]['filter']+'%'};return _0x7cc113;}})});}_0x354d05=_[_0x5777('0x3f')]({},_0x354d05,_0x2e50ba[_0x5777('0x41')]);var _0x50dd5f={'where':_0x354d05[_0x5777('0x3e')]};return db['AnalyticMetric']['count'](_0x50dd5f)['then'](function(_0x423898){_0x19a628[_0x5777('0x1c')]=_0x423898;if(_0x2e50ba['query'][_0x5777('0x42')]){_0x354d05[_0x5777('0x43')]=[{'all':!![]}];}return db['AnalyticMetric'][_0x5777('0x44')](_0x354d05);})[_0x5777('0x22')](function(_0x4dc5bb){_0x19a628[_0x5777('0x45')]=_0x4dc5bb;return _0x19a628;})[_0x5777('0x22')](respondWithFilteredResult(_0xe2b58a,_0x354d05))[_0x5777('0x46')](handleError(_0xe2b58a,null));};exports[_0x5777('0x47')]=function(_0x339ad9,_0x2a3f1c){var _0x2daaf6={'raw':!![],'where':{'id':_0x339ad9['params']['id']}},_0x5b0218={};_0x5b0218[_0x5777('0x31')]=_['keys'](db[_0x5777('0x2c')]['rawAttributes']);_0x5b0218[_0x5777('0x32')]=_['keys'](_0x339ad9['query']);_0x5b0218[_0x5777('0x3b')]=_[_0x5777('0x34')](_0x5b0218[_0x5777('0x31')],_0x5b0218['query']);_0x2daaf6[_0x5777('0x35')]=_[_0x5777('0x34')](_0x5b0218[_0x5777('0x31')],qs[_0x5777('0x36')](_0x339ad9[_0x5777('0x32')]['fields']));_0x2daaf6[_0x5777('0x35')]=_0x2daaf6[_0x5777('0x35')][_0x5777('0x48')]?_0x2daaf6[_0x5777('0x35')]:_0x5b0218['model'];if(_0x339ad9['query'][_0x5777('0x42')]){_0x2daaf6[_0x5777('0x43')]=[{'all':!![]}];}_0x2daaf6=_[_0x5777('0x3f')]({},_0x2daaf6,_0x339ad9[_0x5777('0x41')]);return db[_0x5777('0x2c')][_0x5777('0x49')](_0x2daaf6)[_0x5777('0x22')](handleEntityNotFound(_0x2a3f1c,null))[_0x5777('0x22')](respondWithResult(_0x2a3f1c,null))[_0x5777('0x46')](handleError(_0x2a3f1c,null));};exports[_0x5777('0x4a')]=function(_0x553a54,_0x492598){return db[_0x5777('0x2c')][_0x5777('0x4a')](_0x553a54[_0x5777('0x4b')],{})[_0x5777('0x22')](function(_0x374cdb){var _0x49a041=_0x553a54[_0x5777('0x4c')]['get']({'plain':!![]});if(!_0x49a041)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x49a041[_0x5777('0x4d')]===_0x5777('0x4c')){var _0x4c37ba=_0x374cdb[_0x5777('0x24')]({'plain':!![]});var _0x4113ae=_0x5777('0x25');return db[_0x5777('0x4e')][_0x5777('0x49')]({'where':{'name':_0x4113ae,'userProfileId':_0x49a041[_0x5777('0x4f')]},'raw':!![]})['then'](function(_0x277a06){if(_0x277a06&&_0x277a06[_0x5777('0x50')]===0x0){return db[_0x5777('0x51')]['create']({'name':_0x4c37ba[_0x5777('0x28')],'resourceId':_0x4c37ba['id'],'type':_0x277a06['name'],'sectionId':_0x277a06['id']},{})[_0x5777('0x22')](function(){return _0x374cdb;});}else{return _0x374cdb;}})[_0x5777('0x46')](function(_0x354c42){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x354c42);throw _0x354c42;});}return _0x374cdb;})[_0x5777('0x22')](respondWithResult(_0x492598,0xc9))[_0x5777('0x46')](handleError(_0x492598,null));};exports[_0x5777('0x21')]=function(_0x24cbac,_0x1b914c){if(_0x24cbac[_0x5777('0x4b')]['id']){delete _0x24cbac['body']['id'];}return db[_0x5777('0x2c')]['find']({'where':{'id':_0x24cbac[_0x5777('0x52')]['id']}})['then'](handleEntityNotFound(_0x1b914c,null))[_0x5777('0x22')](saveUpdates(_0x24cbac[_0x5777('0x4b')],null))[_0x5777('0x22')](respondWithResult(_0x1b914c,null))[_0x5777('0x46')](handleError(_0x1b914c,null));};exports[_0x5777('0x23')]=function(_0x1650c6,_0x86a416){return db['AnalyticMetric'][_0x5777('0x49')]({'where':{'id':_0x1650c6[_0x5777('0x52')]['id']}})[_0x5777('0x22')](handleEntityNotFound(_0x86a416,null))[_0x5777('0x22')](removeEntity(_0x86a416,null))[_0x5777('0x46')](handleError(_0x86a416,null));};