2c0999af1eb718babed55c41f76ed505fb0a2f10
[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 _0xefdf=['lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','json','offset','undefined','count','set','reject','save','update','destroy','end','error','stack','name','send','show','params','model','DashboardItem','rawAttributes','query','keys','intersection','attributes','includeAll','include','merge','find','then','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','reportType','attrReport','attrRefresh','widgetAttributes:\x20%s','create','body','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra'];(function(_0x4ac62c,_0x23cd30){var _0x1820fe=function(_0x2f7a7f){while(--_0x2f7a7f){_0x4ac62c['push'](_0x4ac62c['shift']());}};_0x1820fe(++_0x23cd30);}(_0xefdf,0x15c));var _0xfefd=function(_0x38987f,_0xc79720){_0x38987f=_0x38987f-0x0;var _0x4cb697=_0xefdf[_0x38987f];return _0x4cb697;};'use strict';var emlformat=require(_0xfefd('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfefd('0x1'));var jsonpatch=require(_0xfefd('0x2'));var rp=require('request-promise');var moment=require(_0xfefd('0x3'));var BPromise=require(_0xfefd('0x4'));var Mustache=require(_0xfefd('0x5'));var util=require(_0xfefd('0x6'));var path=require(_0xfefd('0x7'));var sox=require(_0xfefd('0x8'));var csv=require(_0xfefd('0x9'));var ejs=require(_0xfefd('0xa'));var fs=require('fs');var fs_extra=require(_0xfefd('0xb'));var _=require(_0xfefd('0xc'));var squel=require(_0xfefd('0xd'));var crypto=require(_0xfefd('0xe'));var jsforce=require(_0xfefd('0xf'));var deskjs=require(_0xfefd('0x10'));var toCsv=require(_0xfefd('0x9'));var querystring=require(_0xfefd('0x11'));var Papa=require('papaparse');var Redis=require(_0xfefd('0x12'));var authService=require(_0xfefd('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xfefd('0x14'));var hardwareService=require(_0xfefd('0x15'));var logger=require(_0xfefd('0x16'))(_0xfefd('0x17'));var utils=require(_0xfefd('0x18'));var config=require(_0xfefd('0x19'));var licenseUtil=require(_0xfefd('0x1a'));var db=require(_0xfefd('0x1b'))['db'];config[_0xfefd('0x1c')]=_[_0xfefd('0x1d')](config[_0xfefd('0x1c')],{'host':_0xfefd('0x1e'),'port':0x18eb});var socket=require(_0xfefd('0x1f'))(new Redis(config[_0xfefd('0x1c')]));require('./dashboardItem.socket')['register'](socket);function respondWithStatusCode(_0x2c867f,_0x514b60){_0x514b60=_0x514b60||0xcc;return function(_0x5b3294){if(_0x5b3294){return _0x2c867f[_0xfefd('0x20')](_0x514b60);}return _0x2c867f[_0xfefd('0x21')](_0x514b60)['end']();};}function respondWithResult(_0x8eab2e,_0xff164){_0xff164=_0xff164||0xc8;return function(_0x2cb50e){if(_0x2cb50e){return _0x8eab2e[_0xfefd('0x21')](_0xff164)[_0xfefd('0x22')](_0x2cb50e);}};}function respondWithFilteredResult(_0x4b10c1,_0x3d414c){return function(_0x3db5a2){if(_0x3db5a2){var _0x41da31=typeof _0x3d414c[_0xfefd('0x23')]===_0xfefd('0x24')&&typeof _0x3d414c['limit']===_0xfefd('0x24');var _0x5ee45d=_0x3db5a2['count'];var _0x3a7f1f=_0x41da31?0x0:_0x3d414c[_0xfefd('0x23')];var _0xc269ee=_0x41da31?_0x3db5a2[_0xfefd('0x25')]:_0x3d414c[_0xfefd('0x23')]+_0x3d414c['limit'];var _0x45207e;if(_0xc269ee>=_0x5ee45d){_0xc269ee=_0x5ee45d;_0x45207e=0xc8;}else{_0x45207e=0xce;}_0x4b10c1[_0xfefd('0x21')](_0x45207e);return _0x4b10c1[_0xfefd('0x26')]('Content-Range',_0x3a7f1f+'-'+_0xc269ee+'/'+_0x5ee45d)[_0xfefd('0x22')](_0x3db5a2);}return null;};}function patchUpdates(_0xc8e19d){return function(_0x1ba528){try{jsonpatch['apply'](_0x1ba528,_0xc8e19d,!![]);}catch(_0x505bac){return BPromise[_0xfefd('0x27')](_0x505bac);}return _0x1ba528[_0xfefd('0x28')]();};}function saveUpdates(_0x2be5ed,_0x1c5123){return function(_0x205c66){if(_0x205c66){return _0x205c66[_0xfefd('0x29')](_0x2be5ed)['then'](function(_0x1e76a2){return _0x1e76a2;});}return null;};}function removeEntity(_0x5b4eda,_0x20620b){return function(_0x1c1f35){if(_0x1c1f35){return _0x1c1f35[_0xfefd('0x2a')]()['then'](function(){_0x5b4eda[_0xfefd('0x21')](0xcc)[_0xfefd('0x2b')]();});}};}function handleEntityNotFound(_0x2aaf48,_0x5064e7){return function(_0x5017d7){if(!_0x5017d7){_0x2aaf48['sendStatus'](0x194);}return _0x5017d7;};}function handleError(_0x4123e4,_0xe7911d){_0xe7911d=_0xe7911d||0x1f4;return function(_0x51d8ed){logger[_0xfefd('0x2c')](_0x51d8ed[_0xfefd('0x2d')]);if(_0x51d8ed[_0xfefd('0x2e')]){delete _0x51d8ed[_0xfefd('0x2e')];}_0x4123e4[_0xfefd('0x21')](_0xe7911d)[_0xfefd('0x2f')](_0x51d8ed);};}exports[_0xfefd('0x30')]=function(_0x46d4bf,_0x496f1e){var _0x54e779={'raw':![],'where':{'id':_0x46d4bf[_0xfefd('0x31')]['id']}},_0x39ed49={};_0x39ed49[_0xfefd('0x32')]=_['keys'](db[_0xfefd('0x33')][_0xfefd('0x34')]);_0x39ed49[_0xfefd('0x35')]=_[_0xfefd('0x36')](_0x46d4bf['query']);_0x39ed49['filters']=_[_0xfefd('0x37')](_0x39ed49[_0xfefd('0x32')],_0x39ed49['query']);_0x54e779[_0xfefd('0x38')]=_[_0xfefd('0x37')](_0x39ed49[_0xfefd('0x32')],qs['fields'](_0x46d4bf[_0xfefd('0x35')]['fields']));_0x54e779[_0xfefd('0x38')]=_0x54e779[_0xfefd('0x38')]['length']?_0x54e779[_0xfefd('0x38')]:_0x39ed49[_0xfefd('0x32')];if(_0x46d4bf[_0xfefd('0x35')][_0xfefd('0x39')]){_0x54e779[_0xfefd('0x3a')]=[{'all':!![]}];}_0x54e779=_[_0xfefd('0x3b')]({},_0x54e779,_0x46d4bf['options']);return db['DashboardItem'][_0xfefd('0x3c')](_0x54e779)['then'](handleEntityNotFound(_0x496f1e,null))[_0xfefd('0x3d')](respondWithResult(_0x496f1e,null))[_0xfefd('0x3e')](handleError(_0x496f1e,null));};exports[_0xfefd('0x2a')]=function(_0x25a2a8,_0x56f577){return db[_0xfefd('0x33')]['find']({'where':{'id':_0x25a2a8[_0xfefd('0x31')]['id']}})[_0xfefd('0x3d')](handleEntityNotFound(_0x56f577,null))[_0xfefd('0x3d')](removeEntity(_0x56f577,null))[_0xfefd('0x3e')](handleError(_0x56f577,null));};function widgetAttributes(_0x22b332){try{switch(_0x22b332[_0xfefd('0x3f')]){case _0xfefd('0x40'):return[{'name':_0xfefd('0x41'),'value':_0x22b332[_0xfefd('0x41')]||(_0x22b332[_0xfefd('0x42')]&&_0x22b332[_0xfefd('0x42')][0x0]?_0x22b332[_0xfefd('0x42')][0x0][_0xfefd('0x43')]:undefined)||_0xfefd('0x44')}];case _0xfefd('0x45'):return[{'name':_0xfefd('0x46'),'value':_0x22b332['attrPath']||(_0x22b332['attrs']&&_0x22b332[_0xfefd('0x42')][0x0]?_0x22b332['attrs'][0x0][_0xfefd('0x43')]:undefined)||''}];case _0xfefd('0x47'):return[{'name':'attrHourFormat','value':_0x22b332[_0xfefd('0x48')]||(_0x22b332[_0xfefd('0x42')]&&_0x22b332[_0xfefd('0x42')][0x0]?_0x22b332[_0xfefd('0x42')][0x0][_0xfefd('0x43')]:undefined)||_0xfefd('0x49')},{'name':'attrTimezone','value':_0x22b332[_0xfefd('0x4a')]||(_0x22b332['attrs']&&_0x22b332[_0xfefd('0x42')][0x1]?_0x22b332[_0xfefd('0x42')][0x1][_0xfefd('0x43')]:undefined)||'0.00'},{'name':_0xfefd('0x4b'),'value':_0x22b332[_0xfefd('0x4b')]||(_0x22b332['attrs']&&_0x22b332[_0xfefd('0x42')][0x2]?_0x22b332[_0xfefd('0x42')][0x2][_0xfefd('0x43')]:undefined)||0xc}];case'counter':return[{'name':_0xfefd('0x4c'),'value':_0x22b332['attrMetric']||(_0x22b332[_0xfefd('0x42')]&&_0x22b332[_0xfefd('0x42')][0x0]?_0x22b332[_0xfefd('0x42')][0x0][_0xfefd('0x43')]:undefined)||_0xfefd('0x4d')},{'name':_0xfefd('0x4e'),'value':_0x22b332[_0xfefd('0x4e')]||(_0x22b332['attrs']&&_0x22b332[_0xfefd('0x42')][0x1]?_0x22b332[_0xfefd('0x42')][0x1][_0xfefd('0x43')]:undefined)||[]},{'name':_0xfefd('0x4b'),'value':_0x22b332[_0xfefd('0x4b')]||(_0x22b332['attrs']&&_0x22b332['attrs'][0x2]?_0x22b332[_0xfefd('0x42')][0x2]['value']:undefined)||0x14}];case _0xfefd('0x4f'):case _0xfefd('0x50'):return[{'name':_0xfefd('0x51'),'value':_0x22b332['attrSerie1']||(_0x22b332[_0xfefd('0x42')]&&_0x22b332[_0xfefd('0x42')][0x0]?_0x22b332['attrs'][0x0][_0xfefd('0x43')]:undefined)||_0xfefd('0x4d')},{'name':'attrSerie2','value':_0x22b332[_0xfefd('0x52')]||(_0x22b332['attrs']&&_0x22b332['attrs'][0x1]?_0x22b332[_0xfefd('0x42')][0x1][_0xfefd('0x43')]:undefined)||null},{'name':_0xfefd('0x53'),'value':_0x22b332[_0xfefd('0x53')]||(_0x22b332[_0xfefd('0x42')]&&_0x22b332[_0xfefd('0x42')][0x2]?_0x22b332['attrs'][0x2][_0xfefd('0x43')]:undefined)||null},{'name':_0xfefd('0x4e'),'value':_0x22b332['attrVoiceQueues']||(_0x22b332[_0xfefd('0x42')]&&_0x22b332[_0xfefd('0x42')][0x3]?_0x22b332[_0xfefd('0x42')][0x3][_0xfefd('0x43')]:undefined)||[]}];case'web-report':return[{'name':'attrReport','type':_0x22b332[_0xfefd('0x54')]||(_0x22b332[_0xfefd('0x42')]&&_0x22b332['attrs'][0x0]?_0x22b332[_0xfefd('0x42')][0x0][_0xfefd('0x3f')]:undefined)||null,'value':_0x22b332[_0xfefd('0x55')]||(_0x22b332[_0xfefd('0x42')]&&_0x22b332[_0xfefd('0x42')][0x0]?_0x22b332[_0xfefd('0x42')][0x0]['value']:undefined)||null},{'name':_0xfefd('0x56'),'value':_0x22b332['attrRefresh']||(_0x22b332['attrs']&&_0x22b332[_0xfefd('0x42')][0x1]?_0x22b332[_0xfefd('0x42')][0x1][_0xfefd('0x43')]:undefined)||0x0}];default:return[];}}catch(_0x2f37a3){logger['error'](_0xfefd('0x57'),JSON['stringify'](_0x2f37a3));return[];}}exports[_0xfefd('0x58')]=function(_0x15ee98,_0x5d9ff7){if(_0x15ee98['body']){_0x15ee98[_0xfefd('0x59')][_0xfefd('0x42')]=widgetAttributes(_0x15ee98['body']);}return db[_0xfefd('0x33')]['create'](_0x15ee98[_0xfefd('0x59')],{})[_0xfefd('0x3d')](respondWithResult(_0x5d9ff7,0xc9))[_0xfefd('0x3e')](handleError(_0x5d9ff7,null));};exports[_0xfefd('0x29')]=function(_0x3c6686,_0x4a9dbf){if(_0x3c6686[_0xfefd('0x59')]['id']){delete _0x3c6686[_0xfefd('0x59')]['id'];}_0x3c6686[_0xfefd('0x59')][_0xfefd('0x42')]=widgetAttributes(_0x3c6686[_0xfefd('0x59')]);return db[_0xfefd('0x33')]['find']({'where':{'id':_0x3c6686[_0xfefd('0x31')]['id']}})[_0xfefd('0x3d')](handleEntityNotFound(_0x4a9dbf,null))[_0xfefd('0x3d')](saveUpdates(_0x3c6686[_0xfefd('0x59')],null))[_0xfefd('0x3d')](respondWithResult(_0x4a9dbf,null))['catch'](handleError(_0x4a9dbf,null));};