Built motion from commit (unavailable).|2.5.10
[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 _0xff57=['UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../mysqldb','status','end','count','offset','Content-Range','json','apply','reject','update','destroy','then','get','Metrics','sendStatus','error','stack','name','send','index','map','AnalyticMetric','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','limit','order','sort','where','filters','pick','merge','VIRTUAL','filter','include','catch','show','params','rawAttributes','includeAll','options','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0xf2662b,_0x4d8f41){var _0x257dc7=function(_0x46b1d1){while(--_0x46b1d1){_0xf2662b['push'](_0xf2662b['shift']());}};_0x257dc7(++_0x4d8f41);}(_0xff57,0x1f2));var _0x7ff5=function(_0x5dda69,_0x3fb3a8){_0x5dda69=_0x5dda69-0x0;var _0x1f2f50=_0xff57[_0x5dda69];return _0x1f2f50;};'use strict';var pdf=require(_0x7ff5('0x0'));var emlformat=require(_0x7ff5('0x1'));var rimraf=require(_0x7ff5('0x2'));var zipdir=require(_0x7ff5('0x3'));var jsonpatch=require(_0x7ff5('0x4'));var rp=require(_0x7ff5('0x5'));var moment=require(_0x7ff5('0x6'));var BPromise=require(_0x7ff5('0x7'));var Mustache=require('mustache');var util=require(_0x7ff5('0x8'));var path=require(_0x7ff5('0x9'));var sox=require(_0x7ff5('0xa'));var csv=require(_0x7ff5('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x7ff5('0xc'));var squel=require('squel');var crypto=require(_0x7ff5('0xd'));var jsforce=require(_0x7ff5('0xe'));var deskjs=require(_0x7ff5('0xf'));var toCsv=require(_0x7ff5('0xb'));var querystring=require(_0x7ff5('0x10'));var Papa=require(_0x7ff5('0x11'));var Redis=require(_0x7ff5('0x12'));var authService=require(_0x7ff5('0x13'));var qs=require(_0x7ff5('0x14'));var as=require(_0x7ff5('0x15'));var hardwareService=require(_0x7ff5('0x16'));var logger=require('../../config/logger')(_0x7ff5('0x17'));var utils=require('../../config/utils');var config=require(_0x7ff5('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x7ff5('0x19'))['db'];function respondWithStatusCode(_0x42324f,_0xd8a465){_0xd8a465=_0xd8a465||0xcc;return function(_0x4b5fca){if(_0x4b5fca){return _0x42324f['sendStatus'](_0xd8a465);}return _0x42324f[_0x7ff5('0x1a')](_0xd8a465)[_0x7ff5('0x1b')]();};}function respondWithResult(_0x3ab62c,_0x2b9d55){_0x2b9d55=_0x2b9d55||0xc8;return function(_0x5ed281){if(_0x5ed281){return _0x3ab62c[_0x7ff5('0x1a')](_0x2b9d55)['json'](_0x5ed281);}};}function respondWithFilteredResult(_0x229499,_0x25040c){return function(_0x3c5e63){if(_0x3c5e63){var _0x3b8257=_0x3c5e63[_0x7ff5('0x1c')],_0x254511=_0x25040c[_0x7ff5('0x1d')],_0x144179=_0x25040c['offset']+_0x25040c['limit'],_0x8287f3;if(_0x144179>=_0x3b8257){_0x144179=_0x3b8257;_0x8287f3=0xc8;}else{_0x8287f3=0xce;}_0x229499[_0x7ff5('0x1a')](_0x8287f3);return _0x229499['set'](_0x7ff5('0x1e'),_0x254511+'-'+_0x144179+'/'+_0x3b8257)[_0x7ff5('0x1f')](_0x3c5e63);}return null;};}function patchUpdates(_0x28cffa){return function(_0x41ad2d){try{jsonpatch[_0x7ff5('0x20')](_0x41ad2d,_0x28cffa,!![]);}catch(_0x2d2eb6){return BPromise[_0x7ff5('0x21')](_0x2d2eb6);}return _0x41ad2d['save']();};}function saveUpdates(_0x34cf9e,_0x5a7eb5){return function(_0x35590e){if(_0x35590e){return _0x35590e[_0x7ff5('0x22')](_0x34cf9e)['then'](function(_0x515505){return _0x515505;});}return null;};}function removeEntity(_0xfdbf2d,_0x5d2785){return function(_0x49df9d){if(_0x49df9d){return _0x49df9d[_0x7ff5('0x23')]()[_0x7ff5('0x24')](function(){var _0x354ced=_0x49df9d[_0x7ff5('0x25')]({'plain':!![]});var _0x48b094=_0x7ff5('0x26');return db['UserProfileResource'][_0x7ff5('0x23')]({'where':{'type':_0x48b094,'resourceId':_0x354ced['id']}})['then'](function(){return _0x49df9d;});})[_0x7ff5('0x24')](function(){_0xfdbf2d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x23070b,_0x301d12){return function(_0x134c01){if(!_0x134c01){_0x23070b[_0x7ff5('0x27')](0x194);}return _0x134c01;};}function handleError(_0x5d8692,_0x58bb18){_0x58bb18=_0x58bb18||0x1f4;return function(_0x29370d){logger[_0x7ff5('0x28')](_0x29370d[_0x7ff5('0x29')]);if(_0x29370d[_0x7ff5('0x2a')]){delete _0x29370d[_0x7ff5('0x2a')];}_0x5d8692['status'](_0x58bb18)[_0x7ff5('0x2b')](_0x29370d);};}exports[_0x7ff5('0x2c')]=function(_0x5af4cd,_0x5e3f07){var _0x552392={},_0x16afc9={},_0x52673d={'count':0x0,'rows':[]};var _0x1d78fb=_[_0x7ff5('0x2d')](db[_0x7ff5('0x2e')]['rawAttributes'],function(_0x1a9025){return{'name':_0x1a9025['fieldName'],'type':_0x1a9025[_0x7ff5('0x2f')][_0x7ff5('0x30')]};});_0x16afc9[_0x7ff5('0x31')]=_[_0x7ff5('0x2d')](_0x1d78fb,_0x7ff5('0x2a'));_0x16afc9[_0x7ff5('0x32')]=_[_0x7ff5('0x33')](_0x5af4cd[_0x7ff5('0x32')]);_0x16afc9['filters']=_[_0x7ff5('0x34')](_0x16afc9[_0x7ff5('0x31')],_0x16afc9[_0x7ff5('0x32')]);_0x552392[_0x7ff5('0x35')]=_[_0x7ff5('0x34')](_0x16afc9['model'],qs['fields'](_0x5af4cd['query'][_0x7ff5('0x36')]));_0x552392['attributes']=_0x552392[_0x7ff5('0x35')][_0x7ff5('0x37')]?_0x552392[_0x7ff5('0x35')]:_0x16afc9[_0x7ff5('0x31')];if(!_0x5af4cd[_0x7ff5('0x32')]['hasOwnProperty'](_0x7ff5('0x38'))){_0x552392[_0x7ff5('0x39')]=qs['limit'](_0x5af4cd[_0x7ff5('0x32')]['limit']);_0x552392[_0x7ff5('0x1d')]=qs[_0x7ff5('0x1d')](_0x5af4cd[_0x7ff5('0x32')][_0x7ff5('0x1d')]);}_0x552392[_0x7ff5('0x3a')]=qs[_0x7ff5('0x3b')](_0x5af4cd[_0x7ff5('0x32')][_0x7ff5('0x3b')]);_0x552392[_0x7ff5('0x3c')]=qs[_0x7ff5('0x3d')](_[_0x7ff5('0x3e')](_0x5af4cd[_0x7ff5('0x32')],_0x16afc9[_0x7ff5('0x3d')]),_0x1d78fb);if(_0x5af4cd['query']['filter']){_0x552392[_0x7ff5('0x3c')]=_[_0x7ff5('0x3f')](_0x552392[_0x7ff5('0x3c')],{'$or':_[_0x7ff5('0x2d')](_0x1d78fb,function(_0x1ec0b9){if(_0x1ec0b9[_0x7ff5('0x2f')]!==_0x7ff5('0x40')){var _0x2e6ef8={};_0x2e6ef8[_0x1ec0b9[_0x7ff5('0x2a')]]={'$like':'%'+_0x5af4cd[_0x7ff5('0x32')][_0x7ff5('0x41')]+'%'};return _0x2e6ef8;}})});}_0x552392=_[_0x7ff5('0x3f')]({},_0x552392,_0x5af4cd['options']);var _0x16a279={'where':_0x552392[_0x7ff5('0x3c')]};return db['AnalyticMetric']['count'](_0x16a279)[_0x7ff5('0x24')](function(_0x51d6e8){_0x52673d[_0x7ff5('0x1c')]=_0x51d6e8;if(_0x5af4cd[_0x7ff5('0x32')]['includeAll']){_0x552392[_0x7ff5('0x42')]=[{'all':!![]}];}return db[_0x7ff5('0x2e')]['findAll'](_0x552392);})[_0x7ff5('0x24')](function(_0x3bece){_0x52673d['rows']=_0x3bece;return _0x52673d;})['then'](respondWithFilteredResult(_0x5e3f07,_0x552392))[_0x7ff5('0x43')](handleError(_0x5e3f07,null));};exports[_0x7ff5('0x44')]=function(_0x364012,_0x4f6f20){var _0x1972ba={'raw':!![],'where':{'id':_0x364012[_0x7ff5('0x45')]['id']}},_0x22acf0={};_0x22acf0[_0x7ff5('0x31')]=_[_0x7ff5('0x33')](db[_0x7ff5('0x2e')][_0x7ff5('0x46')]);_0x22acf0[_0x7ff5('0x32')]=_[_0x7ff5('0x33')](_0x364012[_0x7ff5('0x32')]);_0x22acf0[_0x7ff5('0x3d')]=_[_0x7ff5('0x34')](_0x22acf0[_0x7ff5('0x31')],_0x22acf0[_0x7ff5('0x32')]);_0x1972ba[_0x7ff5('0x35')]=_[_0x7ff5('0x34')](_0x22acf0['model'],qs['fields'](_0x364012[_0x7ff5('0x32')]['fields']));_0x1972ba['attributes']=_0x1972ba[_0x7ff5('0x35')]['length']?_0x1972ba[_0x7ff5('0x35')]:_0x22acf0[_0x7ff5('0x31')];if(_0x364012[_0x7ff5('0x32')][_0x7ff5('0x47')]){_0x1972ba[_0x7ff5('0x42')]=[{'all':!![]}];}_0x1972ba=_[_0x7ff5('0x3f')]({},_0x1972ba,_0x364012[_0x7ff5('0x48')]);return db['AnalyticMetric'][_0x7ff5('0x49')](_0x1972ba)[_0x7ff5('0x24')](handleEntityNotFound(_0x4f6f20,null))['then'](respondWithResult(_0x4f6f20,null))[_0x7ff5('0x43')](handleError(_0x4f6f20,null));};exports[_0x7ff5('0x4a')]=function(_0x429ff2,_0x56fa5d){return db[_0x7ff5('0x2e')][_0x7ff5('0x4a')](_0x429ff2['body'],{})[_0x7ff5('0x24')](function(_0x398283){var _0x214ce2=_0x429ff2['user'][_0x7ff5('0x25')]({'plain':!![]});if(!_0x214ce2)throw new Error(_0x7ff5('0x4b'));if(_0x214ce2['role']==='user'){var _0x5a3ef5=_0x398283['get']({'plain':!![]});var _0x56debc='Metrics';return db[_0x7ff5('0x4c')][_0x7ff5('0x49')]({'where':{'name':_0x56debc,'userProfileId':_0x214ce2[_0x7ff5('0x4d')]},'raw':!![]})[_0x7ff5('0x24')](function(_0x168a76){if(_0x168a76&&_0x168a76[_0x7ff5('0x4e')]===0x0){return db[_0x7ff5('0x4f')][_0x7ff5('0x4a')]({'name':_0x5a3ef5[_0x7ff5('0x2a')],'resourceId':_0x5a3ef5['id'],'type':_0x168a76[_0x7ff5('0x2a')],'sectionId':_0x168a76['id']},{})[_0x7ff5('0x24')](function(){return _0x398283;});}else{return _0x398283;}})[_0x7ff5('0x43')](function(_0x52bc4f){logger['error'](_0x7ff5('0x50'),_0x52bc4f);throw _0x52bc4f;});}return _0x398283;})['then'](respondWithResult(_0x56fa5d,0xc9))['catch'](handleError(_0x56fa5d,null));};exports[_0x7ff5('0x22')]=function(_0x210f6b,_0xea9817){if(_0x210f6b['body']['id']){delete _0x210f6b['body']['id'];}return db['AnalyticMetric'][_0x7ff5('0x49')]({'where':{'id':_0x210f6b['params']['id']}})[_0x7ff5('0x24')](handleEntityNotFound(_0xea9817,null))[_0x7ff5('0x24')](saveUpdates(_0x210f6b[_0x7ff5('0x51')],null))[_0x7ff5('0x24')](respondWithResult(_0xea9817,null))[_0x7ff5('0x43')](handleError(_0xea9817,null));};exports[_0x7ff5('0x23')]=function(_0x50b714,_0x471ee5){return db['AnalyticMetric'][_0x7ff5('0x49')]({'where':{'id':_0x50b714[_0x7ff5('0x45')]['id']}})['then'](handleEntityNotFound(_0x471ee5,null))[_0x7ff5('0x24')](removeEntity(_0x471ee5,null))['catch'](handleError(_0x471ee5,null));};