Built motion from commit (unavailable).|2.5.26
[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 _0x96c9=['moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','./dashboardItem.socket','register','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','then','destroy','error','stack','name','send','show','keys','DashboardItem','rawAttributes','intersection','query','attributes','fields','model','includeAll','merge','find','catch','iframe','attrUrl','attrs','value','https://','custom','attrPath','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','type','attrRefresh','widgetAttributes:\x20%s','body','create','params','eml-format','rimraf','zip-dir','request-promise'];(function(_0x45783c,_0x49c56d){var _0x1161da=function(_0x3c5d41){while(--_0x3c5d41){_0x45783c['push'](_0x45783c['shift']());}};_0x1161da(++_0x49c56d);}(_0x96c9,0x104));var _0x996c=function(_0x132d8b,_0x268e1c){_0x132d8b=_0x132d8b-0x0;var _0x6c5b91=_0x96c9[_0x132d8b];return _0x6c5b91;};'use strict';var emlformat=require(_0x996c('0x0'));var rimraf=require(_0x996c('0x1'));var zipdir=require(_0x996c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x996c('0x3'));var moment=require(_0x996c('0x4'));var BPromise=require(_0x996c('0x5'));var Mustache=require(_0x996c('0x6'));var util=require(_0x996c('0x7'));var path=require(_0x996c('0x8'));var sox=require('sox');var csv=require(_0x996c('0x9'));var ejs=require(_0x996c('0xa'));var fs=require('fs');var fs_extra=require(_0x996c('0xb'));var _=require('lodash');var squel=require(_0x996c('0xc'));var crypto=require(_0x996c('0xd'));var jsforce=require(_0x996c('0xe'));var deskjs=require(_0x996c('0xf'));var toCsv=require(_0x996c('0x9'));var querystring=require(_0x996c('0x10'));var Papa=require(_0x996c('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x996c('0x12'));var as=require(_0x996c('0x13'));var hardwareService=require(_0x996c('0x14'));var logger=require(_0x996c('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x996c('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x996c('0x17'))['db'];config[_0x996c('0x18')]=_[_0x996c('0x19')](config[_0x996c('0x18')],{'host':_0x996c('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x996c('0x1b'))[_0x996c('0x1c')](socket);function respondWithStatusCode(_0xcff3ae,_0x434193){_0x434193=_0x434193||0xcc;return function(_0x5489d5){if(_0x5489d5){return _0xcff3ae[_0x996c('0x1d')](_0x434193);}return _0xcff3ae[_0x996c('0x1e')](_0x434193)[_0x996c('0x1f')]();};}function respondWithResult(_0x2479f7,_0x3127c0){_0x3127c0=_0x3127c0||0xc8;return function(_0x58231e){if(_0x58231e){return _0x2479f7[_0x996c('0x1e')](_0x3127c0)[_0x996c('0x20')](_0x58231e);}};}function respondWithFilteredResult(_0x585b83,_0x39ad74){return function(_0x2eeaae){if(_0x2eeaae){var _0x10e3b7=_0x2eeaae[_0x996c('0x21')],_0x2b0904=_0x39ad74[_0x996c('0x22')],_0x4322cd=_0x39ad74['offset']+_0x39ad74[_0x996c('0x23')],_0x186739;if(_0x4322cd>=_0x10e3b7){_0x4322cd=_0x10e3b7;_0x186739=0xc8;}else{_0x186739=0xce;}_0x585b83[_0x996c('0x1e')](_0x186739);return _0x585b83[_0x996c('0x24')]('Content-Range',_0x2b0904+'-'+_0x4322cd+'/'+_0x10e3b7)[_0x996c('0x20')](_0x2eeaae);}return null;};}function patchUpdates(_0x2924dd){return function(_0x371995){try{jsonpatch[_0x996c('0x25')](_0x371995,_0x2924dd,!![]);}catch(_0x437661){return BPromise[_0x996c('0x26')](_0x437661);}return _0x371995[_0x996c('0x27')]();};}function saveUpdates(_0x43f4f6,_0x36c7ec){return function(_0x37a721){if(_0x37a721){return _0x37a721[_0x996c('0x28')](_0x43f4f6)[_0x996c('0x29')](function(_0x1df131){return _0x1df131;});}return null;};}function removeEntity(_0x454add,_0x32ada1){return function(_0x1da5db){if(_0x1da5db){return _0x1da5db[_0x996c('0x2a')]()[_0x996c('0x29')](function(){_0x454add[_0x996c('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x139204,_0x2ed47f){return function(_0x220faa){if(!_0x220faa){_0x139204[_0x996c('0x1d')](0x194);}return _0x220faa;};}function handleError(_0x50eff1,_0x2234e0){_0x2234e0=_0x2234e0||0x1f4;return function(_0x2eb8ae){logger[_0x996c('0x2b')](_0x2eb8ae[_0x996c('0x2c')]);if(_0x2eb8ae[_0x996c('0x2d')]){delete _0x2eb8ae[_0x996c('0x2d')];}_0x50eff1[_0x996c('0x1e')](_0x2234e0)[_0x996c('0x2e')](_0x2eb8ae);};}exports[_0x996c('0x2f')]=function(_0x5c25e6,_0x3bfb4f){var _0x1e663d={'raw':![],'where':{'id':_0x5c25e6['params']['id']}},_0x2f9f69={};_0x2f9f69['model']=_[_0x996c('0x30')](db[_0x996c('0x31')][_0x996c('0x32')]);_0x2f9f69['query']=_[_0x996c('0x30')](_0x5c25e6['query']);_0x2f9f69['filters']=_[_0x996c('0x33')](_0x2f9f69['model'],_0x2f9f69[_0x996c('0x34')]);_0x1e663d[_0x996c('0x35')]=_[_0x996c('0x33')](_0x2f9f69['model'],qs['fields'](_0x5c25e6[_0x996c('0x34')][_0x996c('0x36')]));_0x1e663d['attributes']=_0x1e663d[_0x996c('0x35')]['length']?_0x1e663d[_0x996c('0x35')]:_0x2f9f69[_0x996c('0x37')];if(_0x5c25e6[_0x996c('0x34')][_0x996c('0x38')]){_0x1e663d['include']=[{'all':!![]}];}_0x1e663d=_[_0x996c('0x39')]({},_0x1e663d,_0x5c25e6['options']);return db[_0x996c('0x31')][_0x996c('0x3a')](_0x1e663d)[_0x996c('0x29')](handleEntityNotFound(_0x3bfb4f,null))[_0x996c('0x29')](respondWithResult(_0x3bfb4f,null))['catch'](handleError(_0x3bfb4f,null));};exports[_0x996c('0x2a')]=function(_0xfa356b,_0x2c8c04){return db[_0x996c('0x31')][_0x996c('0x3a')]({'where':{'id':_0xfa356b['params']['id']}})[_0x996c('0x29')](handleEntityNotFound(_0x2c8c04,null))[_0x996c('0x29')](removeEntity(_0x2c8c04,null))[_0x996c('0x3b')](handleError(_0x2c8c04,null));};function widgetAttributes(_0x1749f6){try{switch(_0x1749f6['type']){case _0x996c('0x3c'):return[{'name':_0x996c('0x3d'),'value':_0x1749f6['attrUrl']||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6[_0x996c('0x3e')][0x0]?_0x1749f6['attrs'][0x0][_0x996c('0x3f')]:undefined)||_0x996c('0x40')}];case _0x996c('0x41'):return[{'name':'attrPath','value':_0x1749f6[_0x996c('0x42')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6['attrs'][0x0]?_0x1749f6['attrs'][0x0][_0x996c('0x3f')]:undefined)||''}];case'clock':return[{'name':_0x996c('0x43'),'value':_0x1749f6[_0x996c('0x43')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6[_0x996c('0x3e')][0x0]?_0x1749f6[_0x996c('0x3e')][0x0][_0x996c('0x3f')]:undefined)||'HH:mm:ss'},{'name':_0x996c('0x44'),'value':_0x1749f6['attrTimezone']||(_0x1749f6['attrs']&&_0x1749f6[_0x996c('0x3e')][0x1]?_0x1749f6[_0x996c('0x3e')][0x1][_0x996c('0x3f')]:undefined)||_0x996c('0x45')},{'name':_0x996c('0x46'),'value':_0x1749f6[_0x996c('0x46')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6[_0x996c('0x3e')][0x2]?_0x1749f6['attrs'][0x2]['value']:undefined)||0xc}];case _0x996c('0x47'):return[{'name':'attrMetric','value':_0x1749f6[_0x996c('0x48')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6['attrs'][0x0]?_0x1749f6[_0x996c('0x3e')][0x0][_0x996c('0x3f')]:undefined)||_0x996c('0x49')},{'name':_0x996c('0x4a'),'value':_0x1749f6[_0x996c('0x4a')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6[_0x996c('0x3e')][0x1]?_0x1749f6[_0x996c('0x3e')][0x1][_0x996c('0x3f')]:undefined)||[]},{'name':_0x996c('0x46'),'value':_0x1749f6[_0x996c('0x46')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6[_0x996c('0x3e')][0x2]?_0x1749f6[_0x996c('0x3e')][0x2][_0x996c('0x3f')]:undefined)||0x14}];case'multibar-chart':case _0x996c('0x4b'):return[{'name':_0x996c('0x4c'),'value':_0x1749f6['attrSerie1']||(_0x1749f6['attrs']&&_0x1749f6[_0x996c('0x3e')][0x0]?_0x1749f6[_0x996c('0x3e')][0x0][_0x996c('0x3f')]:undefined)||_0x996c('0x49')},{'name':_0x996c('0x4d'),'value':_0x1749f6[_0x996c('0x4d')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6[_0x996c('0x3e')][0x1]?_0x1749f6['attrs'][0x1][_0x996c('0x3f')]:undefined)||null},{'name':_0x996c('0x4e'),'value':_0x1749f6[_0x996c('0x4e')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6[_0x996c('0x3e')][0x2]?_0x1749f6[_0x996c('0x3e')][0x2]['value']:undefined)||null},{'name':_0x996c('0x4a'),'value':_0x1749f6['attrVoiceQueues']||(_0x1749f6['attrs']&&_0x1749f6[_0x996c('0x3e')][0x3]?_0x1749f6[_0x996c('0x3e')][0x3]['value']:undefined)||[]}];case _0x996c('0x4f'):return[{'name':_0x996c('0x50'),'type':_0x1749f6[_0x996c('0x51')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6[_0x996c('0x3e')][0x0]?_0x1749f6[_0x996c('0x3e')][0x0][_0x996c('0x52')]:undefined)||null,'value':_0x1749f6[_0x996c('0x50')]||(_0x1749f6['attrs']&&_0x1749f6[_0x996c('0x3e')][0x0]?_0x1749f6[_0x996c('0x3e')][0x0][_0x996c('0x3f')]:undefined)||null},{'name':_0x996c('0x53'),'value':_0x1749f6[_0x996c('0x53')]||(_0x1749f6[_0x996c('0x3e')]&&_0x1749f6[_0x996c('0x3e')][0x1]?_0x1749f6[_0x996c('0x3e')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x496f82){logger[_0x996c('0x2b')](_0x996c('0x54'),JSON['stringify'](_0x496f82));return[];}}exports['create']=function(_0x2990ea,_0x146947){if(_0x2990ea['body']){_0x2990ea[_0x996c('0x55')][_0x996c('0x3e')]=widgetAttributes(_0x2990ea[_0x996c('0x55')]);}return db['DashboardItem'][_0x996c('0x56')](_0x2990ea[_0x996c('0x55')],{})[_0x996c('0x29')](respondWithResult(_0x146947,0xc9))[_0x996c('0x3b')](handleError(_0x146947,null));};exports['update']=function(_0x33a530,_0x252908){if(_0x33a530['body']['id']){delete _0x33a530[_0x996c('0x55')]['id'];}_0x33a530[_0x996c('0x55')]['attrs']=widgetAttributes(_0x33a530[_0x996c('0x55')]);return db[_0x996c('0x31')]['find']({'where':{'id':_0x33a530[_0x996c('0x57')]['id']}})[_0x996c('0x29')](handleEntityNotFound(_0x252908,null))['then'](saveUpdates(_0x33a530[_0x996c('0x55')],null))[_0x996c('0x29')](respondWithResult(_0x252908,null))[_0x996c('0x3b')](handleError(_0x252908,null));};