Built motion from commit (unavailable).|2.2.5
[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 _0x57ca=['reject','save','then','destroy','get','Metrics','UserProfileResource','error','stack','name','send','index','rawAttributes','model','keys','filters','attributes','fields','query','length','hasOwnProperty','nolimit','limit','order','sort','filter','where','merge','type','key','AnalyticMetric','includeAll','include','catch','show','params','intersection','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','papaparse','ioredis','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','count','offset','Content-Range','apply'];(function(_0x565c49,_0x54acd0){var _0x20ca34=function(_0x42f7e1){while(--_0x42f7e1){_0x565c49['push'](_0x565c49['shift']());}};_0x20ca34(++_0x54acd0);}(_0x57ca,0x108));var _0xa57c=function(_0xbc78a8,_0x2a1c20){_0xbc78a8=_0xbc78a8-0x0;var _0x17f1e0=_0x57ca[_0xbc78a8];return _0x17f1e0;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xa57c('0x0'));var rimraf=require(_0xa57c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa57c('0x2'));var rp=require(_0xa57c('0x3'));var moment=require(_0xa57c('0x4'));var BPromise=require(_0xa57c('0x5'));var Mustache=require(_0xa57c('0x6'));var util=require('util');var path=require(_0xa57c('0x7'));var sox=require(_0xa57c('0x8'));var csv=require(_0xa57c('0x9'));var ejs=require(_0xa57c('0xa'));var fs=require('fs');var _=require(_0xa57c('0xb'));var squel=require(_0xa57c('0xc'));var crypto=require(_0xa57c('0xd'));var jsforce=require(_0xa57c('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xa57c('0x9'));var querystring=require('querystring');var Papa=require(_0xa57c('0xf'));var Redis=require(_0xa57c('0x10'));var qs=require('../../components/parsers/qs');var logger=require(_0xa57c('0x11'))('api');var utils=require(_0xa57c('0x12'));var config=require(_0xa57c('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2ed4c6,_0x5a8952){_0x5a8952=_0x5a8952||0xcc;return function(_0x4200c1){if(_0x4200c1){return _0x2ed4c6[_0xa57c('0x14')](_0x5a8952);}return _0x2ed4c6[_0xa57c('0x15')](_0x5a8952)[_0xa57c('0x16')]();};}function respondWithResult(_0x205e72,_0x57a546){_0x57a546=_0x57a546||0xc8;return function(_0x2644a1){if(_0x2644a1){return _0x205e72['status'](_0x57a546)[_0xa57c('0x17')](_0x2644a1);}};}function respondWithFilteredResult(_0x3d5995,_0x30940d){return function(_0x3821d2){if(_0x3821d2){var _0x3238ff=_0x3821d2[_0xa57c('0x18')],_0x37a323=_0x30940d[_0xa57c('0x19')],_0x3f900a=_0x30940d[_0xa57c('0x19')]+_0x30940d['limit'],_0x4b4bdb;if(_0x3f900a>=_0x3238ff){_0x3f900a=_0x3238ff;_0x4b4bdb=0xc8;}else{_0x4b4bdb=0xce;}_0x3d5995[_0xa57c('0x15')](_0x4b4bdb);return _0x3d5995['set'](_0xa57c('0x1a'),_0x37a323+'-'+_0x3f900a+'/'+_0x3238ff)[_0xa57c('0x17')](_0x3821d2);}return null;};}function patchUpdates(_0x93462c){return function(_0xe3d505){try{jsonpatch[_0xa57c('0x1b')](_0xe3d505,_0x93462c,!![]);}catch(_0x4728f9){return BPromise[_0xa57c('0x1c')](_0x4728f9);}return _0xe3d505[_0xa57c('0x1d')]();};}function saveUpdates(_0x4e4399,_0x8a8856){return function(_0x4a53ab){if(_0x4a53ab){return _0x4a53ab['update'](_0x4e4399)[_0xa57c('0x1e')](function(_0xa5b314){return _0xa5b314;});}return null;};}function removeEntity(_0x3eee75,_0x23bec0){return function(_0x49242c){if(_0x49242c){return _0x49242c[_0xa57c('0x1f')]()[_0xa57c('0x1e')](function(){var _0x34d1bc=_0x49242c[_0xa57c('0x20')]({'plain':!![]});var _0x3bb969=_0xa57c('0x21');return db[_0xa57c('0x22')][_0xa57c('0x1f')]({'where':{'type':_0x3bb969,'resourceId':_0x34d1bc['id']}})[_0xa57c('0x1e')](function(){return _0x49242c;});})[_0xa57c('0x1e')](function(){_0x3eee75[_0xa57c('0x15')](0xcc)[_0xa57c('0x16')]();});}};}function handleEntityNotFound(_0x241dcc,_0x10a33d){return function(_0x431bec){if(!_0x431bec){_0x241dcc['sendStatus'](0x194);}return _0x431bec;};}function handleError(_0x2db443,_0x5226d0){_0x5226d0=_0x5226d0||0x1f4;return function(_0x27884d){logger[_0xa57c('0x23')](_0x27884d[_0xa57c('0x24')]);if(_0x27884d[_0xa57c('0x25')]){delete _0x27884d[_0xa57c('0x25')];}_0x2db443[_0xa57c('0x15')](_0x5226d0)[_0xa57c('0x26')](_0x27884d);};}exports[_0xa57c('0x27')]=function(_0x57ebe0,_0x3b7364){var _0x4c1478={},_0x54a18b={},_0x257661={'count':0x0,'rows':[]};var _0x7d10ec=db['AnalyticMetric'][_0xa57c('0x28')];_0x54a18b[_0xa57c('0x29')]=_[_0xa57c('0x2a')](_0x7d10ec);_0x54a18b['query']=_[_0xa57c('0x2a')](_0x57ebe0['query']);_0x54a18b[_0xa57c('0x2b')]=_['intersection'](_0x54a18b[_0xa57c('0x29')],_0x54a18b['query']);_0x4c1478[_0xa57c('0x2c')]=_['intersection'](_0x54a18b[_0xa57c('0x29')],qs[_0xa57c('0x2d')](_0x57ebe0[_0xa57c('0x2e')][_0xa57c('0x2d')]));_0x4c1478[_0xa57c('0x2c')]=_0x4c1478[_0xa57c('0x2c')][_0xa57c('0x2f')]?_0x4c1478['attributes']:_0x54a18b[_0xa57c('0x29')];if(!_0x57ebe0['query'][_0xa57c('0x30')](_0xa57c('0x31'))){_0x4c1478[_0xa57c('0x32')]=qs['limit'](_0x57ebe0[_0xa57c('0x2e')]['limit']);_0x4c1478[_0xa57c('0x19')]=qs['offset'](_0x57ebe0[_0xa57c('0x2e')]['offset']);}_0x4c1478[_0xa57c('0x33')]=qs[_0xa57c('0x34')](_0x57ebe0['query'][_0xa57c('0x34')]);_0x4c1478['where']=qs[_0xa57c('0x2b')](_['pick'](_0x57ebe0[_0xa57c('0x2e')],_0x54a18b[_0xa57c('0x2b')]));if(_0x57ebe0[_0xa57c('0x2e')][_0xa57c('0x35')]){_0x4c1478[_0xa57c('0x36')]=_[_0xa57c('0x37')](_0x4c1478['where'],{'$or':_['map'](_0x7d10ec,function(_0x3f6d86){if(_0x3f6d86[_0xa57c('0x38')][_0xa57c('0x39')]!=='VIRTUAL'){var _0x12b644={};_0x12b644[_0x3f6d86['field']]={'$like':'%'+_0x57ebe0[_0xa57c('0x2e')][_0xa57c('0x35')]+'%'};return _0x12b644;}})});}_0x4c1478=_['merge']({},_0x4c1478,_0x57ebe0['options']);var _0x5104c4={'where':_0x4c1478[_0xa57c('0x36')]};return db[_0xa57c('0x3a')][_0xa57c('0x18')](_0x5104c4)[_0xa57c('0x1e')](function(_0x10c7ab){_0x257661[_0xa57c('0x18')]=_0x10c7ab;if(_0x57ebe0['query'][_0xa57c('0x3b')]){_0x4c1478[_0xa57c('0x3c')]=[{'all':!![]}];}return db['AnalyticMetric']['findAll'](_0x4c1478);})[_0xa57c('0x1e')](function(_0x203375){_0x257661['rows']=_0x203375;return _0x257661;})[_0xa57c('0x1e')](respondWithFilteredResult(_0x3b7364,_0x4c1478))[_0xa57c('0x3d')](handleError(_0x3b7364,null));};exports[_0xa57c('0x3e')]=function(_0x2206a3,_0x103ecd){var _0x43c1d7={'raw':!![],'where':{'id':_0x2206a3[_0xa57c('0x3f')]['id']}},_0x5d210b={};_0x5d210b['model']=_['keys'](db['AnalyticMetric']['rawAttributes']);_0x5d210b['query']=_[_0xa57c('0x2a')](_0x2206a3[_0xa57c('0x2e')]);_0x5d210b[_0xa57c('0x2b')]=_['intersection'](_0x5d210b['model'],_0x5d210b['query']);_0x43c1d7[_0xa57c('0x2c')]=_[_0xa57c('0x40')](_0x5d210b[_0xa57c('0x29')],qs[_0xa57c('0x2d')](_0x2206a3[_0xa57c('0x2e')][_0xa57c('0x2d')]));_0x43c1d7['attributes']=_0x43c1d7[_0xa57c('0x2c')][_0xa57c('0x2f')]?_0x43c1d7[_0xa57c('0x2c')]:_0x5d210b[_0xa57c('0x29')];if(_0x2206a3[_0xa57c('0x2e')][_0xa57c('0x3b')]){_0x43c1d7['include']=[{'all':!![]}];}_0x43c1d7=_[_0xa57c('0x37')]({},_0x43c1d7,_0x2206a3[_0xa57c('0x41')]);return db[_0xa57c('0x3a')][_0xa57c('0x42')](_0x43c1d7)[_0xa57c('0x1e')](handleEntityNotFound(_0x103ecd,null))['then'](respondWithResult(_0x103ecd,null))[_0xa57c('0x3d')](handleError(_0x103ecd,null));};exports[_0xa57c('0x43')]=function(_0xa18f64,_0x17aae4){return db[_0xa57c('0x3a')][_0xa57c('0x43')](_0xa18f64['body'],{})[_0xa57c('0x1e')](function(_0x3bafba){var _0x247906=_0xa18f64[_0xa57c('0x44')][_0xa57c('0x20')]({'plain':!![]});if(!_0x247906)throw new Error(_0xa57c('0x45'));if(_0x247906['role']==='user'){var _0x578436=_0x3bafba['get']({'plain':!![]});var _0x232675='Metrics';return db[_0xa57c('0x46')][_0xa57c('0x42')]({'where':{'name':_0x232675,'userProfileId':_0x247906['userProfileId']},'raw':!![]})[_0xa57c('0x1e')](function(_0x320a5c){if(_0x320a5c&&_0x320a5c[_0xa57c('0x47')]===0x0){return db[_0xa57c('0x22')][_0xa57c('0x43')]({'name':_0x578436['name'],'resourceId':_0x578436['id'],'type':_0x320a5c[_0xa57c('0x25')],'sectionId':_0x320a5c['id']},{})[_0xa57c('0x1e')](function(){return _0x3bafba;});}else{return _0x3bafba;}})[_0xa57c('0x3d')](function(_0xd57bac){logger[_0xa57c('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xd57bac);throw _0xd57bac;});}return _0x3bafba;})[_0xa57c('0x1e')](respondWithResult(_0x17aae4,0xc9))['catch'](handleError(_0x17aae4,null));};exports['update']=function(_0x464233,_0x2c706f){if(_0x464233[_0xa57c('0x48')]['id']){delete _0x464233['body']['id'];}return db['AnalyticMetric'][_0xa57c('0x42')]({'where':{'id':_0x464233[_0xa57c('0x3f')]['id']}})[_0xa57c('0x1e')](handleEntityNotFound(_0x2c706f,null))[_0xa57c('0x1e')](saveUpdates(_0x464233['body'],null))[_0xa57c('0x1e')](respondWithResult(_0x2c706f,null))[_0xa57c('0x3d')](handleError(_0x2c706f,null));};exports[_0xa57c('0x1f')]=function(_0x59eadc,_0x5d0655){return db[_0xa57c('0x3a')][_0xa57c('0x42')]({'where':{'id':_0x59eadc['params']['id']}})[_0xa57c('0x1e')](handleEntityNotFound(_0x5d0655,null))[_0xa57c('0x1e')](removeEntity(_0x5d0655,null))[_0xa57c('0x3d')](handleError(_0x5d0655,null));};