c59be4e5538f7201817f9f12094aaa5cb10d31ba
[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 _0x541c=['attrSerie3','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','status','offset','set','json','apply','reject','save','update','then','end','sendStatus','error','name','show','params','model','keys','DashboardItem','rawAttributes','filters','intersection','query','attributes','fields','length','includeAll','merge','options','find','catch','destroy','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','pie-chart','attrSerie1','attrSerie2'];(function(_0x57d811,_0x1f86d5){var _0x516b4c=function(_0x257005){while(--_0x257005){_0x57d811['push'](_0x57d811['shift']());}};_0x516b4c(++_0x1f86d5);}(_0x541c,0xaf));var _0xc541=function(_0x5b1fe6,_0x5678f8){_0x5b1fe6=_0x5b1fe6-0x0;var _0x37db41=_0x541c[_0x5b1fe6];return _0x37db41;};'use strict';var emlformat=require(_0xc541('0x0'));var rimraf=require(_0xc541('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc541('0x2'));var rp=require(_0xc541('0x3'));var moment=require(_0xc541('0x4'));var BPromise=require(_0xc541('0x5'));var Mustache=require(_0xc541('0x6'));var util=require(_0xc541('0x7'));var path=require(_0xc541('0x8'));var sox=require('sox');var csv=require(_0xc541('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc541('0xa'));var _=require(_0xc541('0xb'));var squel=require('squel');var crypto=require(_0xc541('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xc541('0xd'));var toCsv=require(_0xc541('0x9'));var querystring=require('querystring');var Papa=require(_0xc541('0xe'));var Redis=require(_0xc541('0xf'));var authService=require(_0xc541('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc541('0x11'));var logger=require(_0xc541('0x12'))('api');var utils=require(_0xc541('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xc541('0x14'));var db=require(_0xc541('0x15'))['db'];config[_0xc541('0x16')]=_[_0xc541('0x17')](config[_0xc541('0x16')],{'host':_0xc541('0x18'),'port':0x18eb});var socket=require(_0xc541('0x19'))(new Redis(config[_0xc541('0x16')]));require('./dashboardItem.socket')[_0xc541('0x1a')](socket);function respondWithStatusCode(_0x3bb5d5,_0x3cc156){_0x3cc156=_0x3cc156||0xcc;return function(_0x4c096b){if(_0x4c096b){return _0x3bb5d5['sendStatus'](_0x3cc156);}return _0x3bb5d5[_0xc541('0x1b')](_0x3cc156)['end']();};}function respondWithResult(_0x2f465c,_0x276899){_0x276899=_0x276899||0xc8;return function(_0xa75b97){if(_0xa75b97){return _0x2f465c[_0xc541('0x1b')](_0x276899)['json'](_0xa75b97);}};}function respondWithFilteredResult(_0x3666d9,_0x354fd7){return function(_0x52fb55){if(_0x52fb55){var _0x4bdc9a=_0x52fb55['count'],_0xf6be92=_0x354fd7['offset'],_0x3af2d7=_0x354fd7[_0xc541('0x1c')]+_0x354fd7['limit'],_0x2ffcf3;if(_0x3af2d7>=_0x4bdc9a){_0x3af2d7=_0x4bdc9a;_0x2ffcf3=0xc8;}else{_0x2ffcf3=0xce;}_0x3666d9['status'](_0x2ffcf3);return _0x3666d9[_0xc541('0x1d')]('Content-Range',_0xf6be92+'-'+_0x3af2d7+'/'+_0x4bdc9a)[_0xc541('0x1e')](_0x52fb55);}return null;};}function patchUpdates(_0x3c1935){return function(_0x1e6ca1){try{jsonpatch[_0xc541('0x1f')](_0x1e6ca1,_0x3c1935,!![]);}catch(_0x2a56d6){return BPromise[_0xc541('0x20')](_0x2a56d6);}return _0x1e6ca1[_0xc541('0x21')]();};}function saveUpdates(_0x4ba127,_0x50f65a){return function(_0x8afb7d){if(_0x8afb7d){return _0x8afb7d[_0xc541('0x22')](_0x4ba127)[_0xc541('0x23')](function(_0x55064f){return _0x55064f;});}return null;};}function removeEntity(_0x423b8a,_0x5848d3){return function(_0x160757){if(_0x160757){return _0x160757['destroy']()[_0xc541('0x23')](function(){_0x423b8a[_0xc541('0x1b')](0xcc)[_0xc541('0x24')]();});}};}function handleEntityNotFound(_0x44a16d,_0x5f5a11){return function(_0x3b9d15){if(!_0x3b9d15){_0x44a16d[_0xc541('0x25')](0x194);}return _0x3b9d15;};}function handleError(_0x40c0cb,_0x1bc0fb){_0x1bc0fb=_0x1bc0fb||0x1f4;return function(_0x1b8712){logger[_0xc541('0x26')](_0x1b8712['stack']);if(_0x1b8712[_0xc541('0x27')]){delete _0x1b8712[_0xc541('0x27')];}_0x40c0cb[_0xc541('0x1b')](_0x1bc0fb)['send'](_0x1b8712);};}exports[_0xc541('0x28')]=function(_0x19e6c3,_0x3e33c8){var _0xeecf41={'raw':![],'where':{'id':_0x19e6c3[_0xc541('0x29')]['id']}},_0x3ef796={};_0x3ef796[_0xc541('0x2a')]=_[_0xc541('0x2b')](db[_0xc541('0x2c')][_0xc541('0x2d')]);_0x3ef796['query']=_[_0xc541('0x2b')](_0x19e6c3['query']);_0x3ef796[_0xc541('0x2e')]=_[_0xc541('0x2f')](_0x3ef796[_0xc541('0x2a')],_0x3ef796[_0xc541('0x30')]);_0xeecf41[_0xc541('0x31')]=_[_0xc541('0x2f')](_0x3ef796[_0xc541('0x2a')],qs[_0xc541('0x32')](_0x19e6c3[_0xc541('0x30')][_0xc541('0x32')]));_0xeecf41['attributes']=_0xeecf41[_0xc541('0x31')][_0xc541('0x33')]?_0xeecf41[_0xc541('0x31')]:_0x3ef796[_0xc541('0x2a')];if(_0x19e6c3[_0xc541('0x30')][_0xc541('0x34')]){_0xeecf41['include']=[{'all':!![]}];}_0xeecf41=_[_0xc541('0x35')]({},_0xeecf41,_0x19e6c3[_0xc541('0x36')]);return db[_0xc541('0x2c')][_0xc541('0x37')](_0xeecf41)[_0xc541('0x23')](handleEntityNotFound(_0x3e33c8,null))['then'](respondWithResult(_0x3e33c8,null))[_0xc541('0x38')](handleError(_0x3e33c8,null));};exports[_0xc541('0x39')]=function(_0x10ffbe,_0x1c3412){return db[_0xc541('0x2c')][_0xc541('0x37')]({'where':{'id':_0x10ffbe[_0xc541('0x29')]['id']}})['then'](handleEntityNotFound(_0x1c3412,null))[_0xc541('0x23')](removeEntity(_0x1c3412,null))[_0xc541('0x38')](handleError(_0x1c3412,null));};function widgetAttributes(_0x306478){try{switch(_0x306478[_0xc541('0x3a')]){case _0xc541('0x3b'):return[{'name':_0xc541('0x3c'),'value':_0x306478[_0xc541('0x3c')]||(_0x306478[_0xc541('0x3d')]&&_0x306478[_0xc541('0x3d')][0x0]?_0x306478[_0xc541('0x3d')][0x0][_0xc541('0x3e')]:undefined)||_0xc541('0x3f')}];case _0xc541('0x40'):return[{'name':'attrPath','value':_0x306478[_0xc541('0x41')]||(_0x306478[_0xc541('0x3d')]&&_0x306478[_0xc541('0x3d')][0x0]?_0x306478[_0xc541('0x3d')][0x0][_0xc541('0x3e')]:undefined)||''}];case _0xc541('0x42'):return[{'name':'attrHourFormat','value':_0x306478['attrHourFormat']||(_0x306478['attrs']&&_0x306478[_0xc541('0x3d')][0x0]?_0x306478[_0xc541('0x3d')][0x0][_0xc541('0x3e')]:undefined)||'HH:mm:ss'},{'name':'attrTimezone','value':_0x306478[_0xc541('0x43')]||(_0x306478[_0xc541('0x3d')]&&_0x306478['attrs'][0x1]?_0x306478[_0xc541('0x3d')][0x1][_0xc541('0x3e')]:undefined)||_0xc541('0x44')},{'name':'attrFontSize','value':_0x306478[_0xc541('0x45')]||(_0x306478[_0xc541('0x3d')]&&_0x306478[_0xc541('0x3d')][0x2]?_0x306478[_0xc541('0x3d')][0x2]['value']:undefined)||0xc}];case _0xc541('0x46'):return[{'name':_0xc541('0x47'),'value':_0x306478['attrMetric']||(_0x306478[_0xc541('0x3d')]&&_0x306478[_0xc541('0x3d')][0x0]?_0x306478['attrs'][0x0][_0xc541('0x3e')]:undefined)||_0xc541('0x48')},{'name':_0xc541('0x49'),'value':_0x306478[_0xc541('0x49')]||(_0x306478[_0xc541('0x3d')]&&_0x306478['attrs'][0x1]?_0x306478['attrs'][0x1][_0xc541('0x3e')]:undefined)||[]},{'name':_0xc541('0x45'),'value':_0x306478[_0xc541('0x45')]||(_0x306478[_0xc541('0x3d')]&&_0x306478[_0xc541('0x3d')][0x2]?_0x306478[_0xc541('0x3d')][0x2][_0xc541('0x3e')]:undefined)||0x14}];case'multibar-chart':case _0xc541('0x4a'):return[{'name':_0xc541('0x4b'),'value':_0x306478[_0xc541('0x4b')]||(_0x306478[_0xc541('0x3d')]&&_0x306478[_0xc541('0x3d')][0x0]?_0x306478[_0xc541('0x3d')][0x0][_0xc541('0x3e')]:undefined)||_0xc541('0x48')},{'name':_0xc541('0x4c'),'value':_0x306478['attrSerie2']||(_0x306478[_0xc541('0x3d')]&&_0x306478['attrs'][0x1]?_0x306478[_0xc541('0x3d')][0x1][_0xc541('0x3e')]:undefined)||null},{'name':_0xc541('0x4d'),'value':_0x306478['attrSerie3']||(_0x306478['attrs']&&_0x306478[_0xc541('0x3d')][0x2]?_0x306478[_0xc541('0x3d')][0x2]['value']:undefined)||null},{'name':_0xc541('0x49'),'value':_0x306478[_0xc541('0x49')]||(_0x306478[_0xc541('0x3d')]&&_0x306478[_0xc541('0x3d')][0x3]?_0x306478[_0xc541('0x3d')][0x3][_0xc541('0x3e')]:undefined)||[]}];case'web-report':return[{'name':'attrReport','type':_0x306478['reportType']||(_0x306478['attrs']&&_0x306478['attrs'][0x0]?_0x306478[_0xc541('0x3d')][0x0]['type']:undefined)||null,'value':_0x306478[_0xc541('0x4e')]||(_0x306478['attrs']&&_0x306478[_0xc541('0x3d')][0x0]?_0x306478[_0xc541('0x3d')][0x0][_0xc541('0x3e')]:undefined)||null},{'name':'attrRefresh','value':_0x306478[_0xc541('0x4f')]||(_0x306478[_0xc541('0x3d')]&&_0x306478[_0xc541('0x3d')][0x1]?_0x306478[_0xc541('0x3d')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0xacff1f){logger[_0xc541('0x26')](_0xc541('0x50'),JSON[_0xc541('0x51')](_0xacff1f));return[];}}exports[_0xc541('0x52')]=function(_0x4d0cb6,_0x17eef0){if(_0x4d0cb6[_0xc541('0x53')]){_0x4d0cb6[_0xc541('0x53')][_0xc541('0x3d')]=widgetAttributes(_0x4d0cb6[_0xc541('0x53')]);}return db[_0xc541('0x2c')][_0xc541('0x52')](_0x4d0cb6[_0xc541('0x53')],{})[_0xc541('0x23')](respondWithResult(_0x17eef0,0xc9))[_0xc541('0x38')](handleError(_0x17eef0,null));};exports[_0xc541('0x22')]=function(_0x5cdcfa,_0x13d3a6){if(_0x5cdcfa[_0xc541('0x53')]['id']){delete _0x5cdcfa['body']['id'];}_0x5cdcfa[_0xc541('0x53')]['attrs']=widgetAttributes(_0x5cdcfa['body']);return db[_0xc541('0x2c')]['find']({'where':{'id':_0x5cdcfa['params']['id']}})[_0xc541('0x23')](handleEntityNotFound(_0x13d3a6,null))['then'](saveUpdates(_0x5cdcfa[_0xc541('0x53')],null))[_0xc541('0x23')](respondWithResult(_0x13d3a6,null))[_0xc541('0x38')](handleError(_0x13d3a6,null));};