Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / dashboardItem / dashboardItem.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 _0x30c4=['attrFontSize','counter','attrMetric','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','attrReport','reportType','attrRefresh','stringify','create','body','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../mysqldb','defaults','redis','localhost','register','sendStatus','status','end','count','set','Content-Range','json','reject','update','destroy','then','error','stack','name','send','params','model','keys','DashboardItem','rawAttributes','query','filters','attributes','intersection','fields','length','includeAll','include','merge','options','find','catch','type','attrUrl','attrs','https://','custom','attrPath','attrHourFormat','value','HH:mm:ss','attrTimezone','0.00'];(function(_0x31285d,_0x28f6b7){var _0x308a9b=function(_0x251c75){while(--_0x251c75){_0x31285d['push'](_0x31285d['shift']());}};_0x308a9b(++_0x28f6b7);}(_0x30c4,0xbc));var _0x430c=function(_0x4cd1aa,_0x387813){_0x4cd1aa=_0x4cd1aa-0x0;var _0x26e4e3=_0x30c4[_0x4cd1aa];return _0x26e4e3;};'use strict';var pdf=require(_0x430c('0x0'));var emlformat=require(_0x430c('0x1'));var rimraf=require(_0x430c('0x2'));var zipdir=require(_0x430c('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x430c('0x4'));var moment=require(_0x430c('0x5'));var BPromise=require(_0x430c('0x6'));var Mustache=require(_0x430c('0x7'));var util=require(_0x430c('0x8'));var path=require(_0x430c('0x9'));var sox=require(_0x430c('0xa'));var csv=require(_0x430c('0xb'));var ejs=require(_0x430c('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x430c('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x430c('0xe'));var toCsv=require(_0x430c('0xb'));var querystring=require(_0x430c('0xf'));var Papa=require(_0x430c('0x10'));var Redis=require('ioredis');var authService=require(_0x430c('0x11'));var qs=require(_0x430c('0x12'));var as=require(_0x430c('0x13'));var hardwareService=require(_0x430c('0x14'));var logger=require(_0x430c('0x15'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x430c('0x16'))['db'];config['redis']=_[_0x430c('0x17')](config[_0x430c('0x18')],{'host':_0x430c('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./dashboardItem.socket')[_0x430c('0x1a')](socket);function respondWithStatusCode(_0x549451,_0x4cf201){_0x4cf201=_0x4cf201||0xcc;return function(_0x27a3fb){if(_0x27a3fb){return _0x549451[_0x430c('0x1b')](_0x4cf201);}return _0x549451[_0x430c('0x1c')](_0x4cf201)[_0x430c('0x1d')]();};}function respondWithResult(_0x34f22c,_0x10f1e2){_0x10f1e2=_0x10f1e2||0xc8;return function(_0x59a4ab){if(_0x59a4ab){return _0x34f22c[_0x430c('0x1c')](_0x10f1e2)['json'](_0x59a4ab);}};}function respondWithFilteredResult(_0x263b61,_0x2c003d){return function(_0x41f8e9){if(_0x41f8e9){var _0x292412=_0x41f8e9[_0x430c('0x1e')],_0x53bdc7=_0x2c003d['offset'],_0x3c2ede=_0x2c003d['offset']+_0x2c003d['limit'],_0x1775e8;if(_0x3c2ede>=_0x292412){_0x3c2ede=_0x292412;_0x1775e8=0xc8;}else{_0x1775e8=0xce;}_0x263b61[_0x430c('0x1c')](_0x1775e8);return _0x263b61[_0x430c('0x1f')](_0x430c('0x20'),_0x53bdc7+'-'+_0x3c2ede+'/'+_0x292412)[_0x430c('0x21')](_0x41f8e9);}return null;};}function patchUpdates(_0x293424){return function(_0x4b8334){try{jsonpatch['apply'](_0x4b8334,_0x293424,!![]);}catch(_0x1e9cd1){return BPromise[_0x430c('0x22')](_0x1e9cd1);}return _0x4b8334['save']();};}function saveUpdates(_0x3dc6fe,_0x17399a){return function(_0x44adac){if(_0x44adac){return _0x44adac[_0x430c('0x23')](_0x3dc6fe)['then'](function(_0x32c427){return _0x32c427;});}return null;};}function removeEntity(_0xb3134d,_0x6fe59b){return function(_0x593ea8){if(_0x593ea8){return _0x593ea8[_0x430c('0x24')]()[_0x430c('0x25')](function(){_0xb3134d[_0x430c('0x1c')](0xcc)[_0x430c('0x1d')]();});}};}function handleEntityNotFound(_0x1b2779,_0x107ca9){return function(_0x364765){if(!_0x364765){_0x1b2779['sendStatus'](0x194);}return _0x364765;};}function handleError(_0x59d2f1,_0x506c3b){_0x506c3b=_0x506c3b||0x1f4;return function(_0x4ed5b1){logger[_0x430c('0x26')](_0x4ed5b1[_0x430c('0x27')]);if(_0x4ed5b1['name']){delete _0x4ed5b1[_0x430c('0x28')];}_0x59d2f1[_0x430c('0x1c')](_0x506c3b)[_0x430c('0x29')](_0x4ed5b1);};}exports['show']=function(_0x556a01,_0x5bbc6b){var _0x1e7360={'raw':![],'where':{'id':_0x556a01[_0x430c('0x2a')]['id']}},_0x5d2f0e={};_0x5d2f0e[_0x430c('0x2b')]=_[_0x430c('0x2c')](db[_0x430c('0x2d')][_0x430c('0x2e')]);_0x5d2f0e[_0x430c('0x2f')]=_[_0x430c('0x2c')](_0x556a01['query']);_0x5d2f0e[_0x430c('0x30')]=_['intersection'](_0x5d2f0e['model'],_0x5d2f0e[_0x430c('0x2f')]);_0x1e7360[_0x430c('0x31')]=_[_0x430c('0x32')](_0x5d2f0e[_0x430c('0x2b')],qs['fields'](_0x556a01[_0x430c('0x2f')][_0x430c('0x33')]));_0x1e7360[_0x430c('0x31')]=_0x1e7360[_0x430c('0x31')][_0x430c('0x34')]?_0x1e7360[_0x430c('0x31')]:_0x5d2f0e[_0x430c('0x2b')];if(_0x556a01[_0x430c('0x2f')][_0x430c('0x35')]){_0x1e7360[_0x430c('0x36')]=[{'all':!![]}];}_0x1e7360=_[_0x430c('0x37')]({},_0x1e7360,_0x556a01[_0x430c('0x38')]);return db['DashboardItem'][_0x430c('0x39')](_0x1e7360)['then'](handleEntityNotFound(_0x5bbc6b,null))['then'](respondWithResult(_0x5bbc6b,null))[_0x430c('0x3a')](handleError(_0x5bbc6b,null));};exports[_0x430c('0x24')]=function(_0x427336,_0x9aa709){return db[_0x430c('0x2d')][_0x430c('0x39')]({'where':{'id':_0x427336[_0x430c('0x2a')]['id']}})[_0x430c('0x25')](handleEntityNotFound(_0x9aa709,null))[_0x430c('0x25')](removeEntity(_0x9aa709,null))[_0x430c('0x3a')](handleError(_0x9aa709,null));};function widgetAttributes(_0x27167b){try{switch(_0x27167b[_0x430c('0x3b')]){case'iframe':return[{'name':_0x430c('0x3c'),'value':_0x27167b[_0x430c('0x3c')]||(_0x27167b['attrs']&&_0x27167b[_0x430c('0x3d')][0x0]?_0x27167b[_0x430c('0x3d')][0x0]['value']:undefined)||_0x430c('0x3e')}];case _0x430c('0x3f'):return[{'name':_0x430c('0x40'),'value':_0x27167b['attrPath']||(_0x27167b['attrs']&&_0x27167b['attrs'][0x0]?_0x27167b['attrs'][0x0]['value']:undefined)||''}];case'clock':return[{'name':_0x430c('0x41'),'value':_0x27167b['attrHourFormat']||(_0x27167b['attrs']&&_0x27167b['attrs'][0x0]?_0x27167b[_0x430c('0x3d')][0x0][_0x430c('0x42')]:undefined)||_0x430c('0x43')},{'name':_0x430c('0x44'),'value':_0x27167b[_0x430c('0x44')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x1]?_0x27167b[_0x430c('0x3d')][0x1][_0x430c('0x42')]:undefined)||_0x430c('0x45')},{'name':_0x430c('0x46'),'value':_0x27167b[_0x430c('0x46')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x2]?_0x27167b[_0x430c('0x3d')][0x2][_0x430c('0x42')]:undefined)||0xc}];case _0x430c('0x47'):return[{'name':_0x430c('0x48'),'value':_0x27167b[_0x430c('0x48')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b['attrs'][0x0]?_0x27167b['attrs'][0x0][_0x430c('0x42')]:undefined)||'total'},{'name':_0x430c('0x49'),'value':_0x27167b[_0x430c('0x49')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x1]?_0x27167b[_0x430c('0x3d')][0x1][_0x430c('0x42')]:undefined)||[]},{'name':'attrFontSize','value':_0x27167b[_0x430c('0x46')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x2]?_0x27167b[_0x430c('0x3d')][0x2][_0x430c('0x42')]:undefined)||0x14}];case _0x430c('0x4a'):case _0x430c('0x4b'):return[{'name':_0x430c('0x4c'),'value':_0x27167b[_0x430c('0x4c')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b['attrs'][0x0]?_0x27167b['attrs'][0x0][_0x430c('0x42')]:undefined)||_0x430c('0x4d')},{'name':_0x430c('0x4e'),'value':_0x27167b[_0x430c('0x4e')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x1]?_0x27167b['attrs'][0x1][_0x430c('0x42')]:undefined)||null},{'name':_0x430c('0x4f'),'value':_0x27167b[_0x430c('0x4f')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x2]?_0x27167b[_0x430c('0x3d')][0x2][_0x430c('0x42')]:undefined)||null},{'name':_0x430c('0x49'),'value':_0x27167b['attrVoiceQueues']||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x3]?_0x27167b[_0x430c('0x3d')][0x3][_0x430c('0x42')]:undefined)||[]}];case'web-report':return[{'name':_0x430c('0x50'),'type':_0x27167b[_0x430c('0x51')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x0]?_0x27167b[_0x430c('0x3d')][0x0]['type']:undefined)||null,'value':_0x27167b[_0x430c('0x50')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x0]?_0x27167b[_0x430c('0x3d')][0x0][_0x430c('0x42')]:undefined)||null},{'name':'attrRefresh','value':_0x27167b[_0x430c('0x52')]||(_0x27167b[_0x430c('0x3d')]&&_0x27167b[_0x430c('0x3d')][0x1]?_0x27167b[_0x430c('0x3d')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x587517){logger['error']('widgetAttributes:\x20%s',JSON[_0x430c('0x53')](_0x587517));return[];}}exports[_0x430c('0x54')]=function(_0x22959c,_0x359092){if(_0x22959c[_0x430c('0x55')]){_0x22959c[_0x430c('0x55')][_0x430c('0x3d')]=widgetAttributes(_0x22959c[_0x430c('0x55')]);}return db[_0x430c('0x2d')]['create'](_0x22959c['body'],{})[_0x430c('0x25')](respondWithResult(_0x359092,0xc9))[_0x430c('0x3a')](handleError(_0x359092,null));};exports[_0x430c('0x23')]=function(_0xf7b3c2,_0xdf5acb){if(_0xf7b3c2[_0x430c('0x55')]['id']){delete _0xf7b3c2[_0x430c('0x55')]['id'];}_0xf7b3c2[_0x430c('0x55')]['attrs']=widgetAttributes(_0xf7b3c2[_0x430c('0x55')]);return db['DashboardItem'][_0x430c('0x39')]({'where':{'id':_0xf7b3c2[_0x430c('0x2a')]['id']}})[_0x430c('0x25')](handleEntityNotFound(_0xdf5acb,null))[_0x430c('0x25')](saveUpdates(_0xf7b3c2['body'],null))[_0x430c('0x25')](respondWithResult(_0xdf5acb,null))[_0x430c('0x3a')](handleError(_0xdf5acb,null));};