Built motion from commit (unavailable).|2.4.18
[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 _0x6495=['value','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','pie-chart','attrSerie1','attrSerie2','web-report','attrReport','reportType','attrRefresh','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','redis','socket.io-emitter','./dashboardItem.socket','register','status','count','offset','set','json','apply','reject','save','update','then','destroy','end','sendStatus','error','stack','name','send','show','model','keys','DashboardItem','rawAttributes','query','filters','intersection','fields','attributes','length','includeAll','include','merge','options','find','catch','params','type','iframe','attrUrl','attrs','https://','custom','attrPath'];(function(_0x170084,_0x20843b){var _0x4735d6=function(_0x5b0b1e){while(--_0x5b0b1e){_0x170084['push'](_0x170084['shift']());}};_0x4735d6(++_0x20843b);}(_0x6495,0x68));var _0x5649=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x6495[_0x19950b];return _0x3c6b41;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x5649('0x0'));var rimraf=require(_0x5649('0x1'));var zipdir=require(_0x5649('0x2'));var jsonpatch=require(_0x5649('0x3'));var rp=require(_0x5649('0x4'));var moment=require('moment');var BPromise=require(_0x5649('0x5'));var Mustache=require(_0x5649('0x6'));var util=require('util');var path=require(_0x5649('0x7'));var sox=require(_0x5649('0x8'));var csv=require(_0x5649('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x5649('0xa'));var crypto=require(_0x5649('0xb'));var jsforce=require(_0x5649('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5649('0xd'));var Papa=require(_0x5649('0xe'));var Redis=require(_0x5649('0xf'));var authService=require(_0x5649('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5649('0x11'));var logger=require(_0x5649('0x12'))(_0x5649('0x13'));var utils=require(_0x5649('0x14'));var config=require('../../config/environment');var db=require(_0x5649('0x15'))['db'];config[_0x5649('0x16')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x5649('0x17'))(new Redis(config[_0x5649('0x16')]));require(_0x5649('0x18'))[_0x5649('0x19')](socket);function respondWithStatusCode(_0x3781ac,_0x4dd4cd){_0x4dd4cd=_0x4dd4cd||0xcc;return function(_0x1b28ff){if(_0x1b28ff){return _0x3781ac['sendStatus'](_0x4dd4cd);}return _0x3781ac[_0x5649('0x1a')](_0x4dd4cd)['end']();};}function respondWithResult(_0x3eec42,_0x2da2f8){_0x2da2f8=_0x2da2f8||0xc8;return function(_0x138cc4){if(_0x138cc4){return _0x3eec42[_0x5649('0x1a')](_0x2da2f8)['json'](_0x138cc4);}};}function respondWithFilteredResult(_0x3a1813,_0x32c085){return function(_0x5b8118){if(_0x5b8118){var _0x488c9f=_0x5b8118[_0x5649('0x1b')],_0x5b0d80=_0x32c085[_0x5649('0x1c')],_0x35d049=_0x32c085[_0x5649('0x1c')]+_0x32c085['limit'],_0x428428;if(_0x35d049>=_0x488c9f){_0x35d049=_0x488c9f;_0x428428=0xc8;}else{_0x428428=0xce;}_0x3a1813['status'](_0x428428);return _0x3a1813[_0x5649('0x1d')]('Content-Range',_0x5b0d80+'-'+_0x35d049+'/'+_0x488c9f)[_0x5649('0x1e')](_0x5b8118);}return null;};}function patchUpdates(_0x33eaba){return function(_0x52c3d8){try{jsonpatch[_0x5649('0x1f')](_0x52c3d8,_0x33eaba,!![]);}catch(_0x20c1c1){return BPromise[_0x5649('0x20')](_0x20c1c1);}return _0x52c3d8[_0x5649('0x21')]();};}function saveUpdates(_0x5890e2,_0xe7d07){return function(_0x2cea74){if(_0x2cea74){return _0x2cea74[_0x5649('0x22')](_0x5890e2)[_0x5649('0x23')](function(_0x38955a){return _0x38955a;});}return null;};}function removeEntity(_0x29b278,_0x17ded7){return function(_0x38fcd7){if(_0x38fcd7){return _0x38fcd7[_0x5649('0x24')]()['then'](function(){_0x29b278[_0x5649('0x1a')](0xcc)[_0x5649('0x25')]();});}};}function handleEntityNotFound(_0x48c581,_0x30a721){return function(_0x5e6773){if(!_0x5e6773){_0x48c581[_0x5649('0x26')](0x194);}return _0x5e6773;};}function handleError(_0x2b679f,_0x116c39){_0x116c39=_0x116c39||0x1f4;return function(_0x4e6037){logger[_0x5649('0x27')](_0x4e6037[_0x5649('0x28')]);if(_0x4e6037[_0x5649('0x29')]){delete _0x4e6037[_0x5649('0x29')];}_0x2b679f[_0x5649('0x1a')](_0x116c39)[_0x5649('0x2a')](_0x4e6037);};}exports[_0x5649('0x2b')]=function(_0x9c47b8,_0x1ffe00){var _0x310fbc={'raw':![],'where':{'id':_0x9c47b8['params']['id']}},_0xeb1720={};_0xeb1720[_0x5649('0x2c')]=_[_0x5649('0x2d')](db[_0x5649('0x2e')][_0x5649('0x2f')]);_0xeb1720[_0x5649('0x30')]=_[_0x5649('0x2d')](_0x9c47b8[_0x5649('0x30')]);_0xeb1720[_0x5649('0x31')]=_['intersection'](_0xeb1720[_0x5649('0x2c')],_0xeb1720[_0x5649('0x30')]);_0x310fbc['attributes']=_[_0x5649('0x32')](_0xeb1720['model'],qs['fields'](_0x9c47b8[_0x5649('0x30')][_0x5649('0x33')]));_0x310fbc[_0x5649('0x34')]=_0x310fbc['attributes'][_0x5649('0x35')]?_0x310fbc[_0x5649('0x34')]:_0xeb1720[_0x5649('0x2c')];if(_0x9c47b8[_0x5649('0x30')][_0x5649('0x36')]){_0x310fbc[_0x5649('0x37')]=[{'all':!![]}];}_0x310fbc=_[_0x5649('0x38')]({},_0x310fbc,_0x9c47b8[_0x5649('0x39')]);return db['DashboardItem'][_0x5649('0x3a')](_0x310fbc)['then'](handleEntityNotFound(_0x1ffe00,null))[_0x5649('0x23')](respondWithResult(_0x1ffe00,null))[_0x5649('0x3b')](handleError(_0x1ffe00,null));};exports[_0x5649('0x24')]=function(_0x2eac4a,_0x155d9e){return db['DashboardItem'][_0x5649('0x3a')]({'where':{'id':_0x2eac4a[_0x5649('0x3c')]['id']}})[_0x5649('0x23')](handleEntityNotFound(_0x155d9e,null))[_0x5649('0x23')](removeEntity(_0x155d9e,null))['catch'](handleError(_0x155d9e,null));};function widgetAttributes(_0x40af67){try{switch(_0x40af67[_0x5649('0x3d')]){case _0x5649('0x3e'):return[{'name':'attrUrl','value':_0x40af67[_0x5649('0x3f')]||(_0x40af67[_0x5649('0x40')]&&_0x40af67['attrs'][0x0]?_0x40af67[_0x5649('0x40')][0x0]['value']:undefined)||_0x5649('0x41')}];case _0x5649('0x42'):return[{'name':_0x5649('0x43'),'value':_0x40af67[_0x5649('0x43')]||(_0x40af67['attrs']&&_0x40af67[_0x5649('0x40')][0x0]?_0x40af67['attrs'][0x0][_0x5649('0x44')]:undefined)||''}];case _0x5649('0x45'):return[{'name':_0x5649('0x46'),'value':_0x40af67[_0x5649('0x46')]||(_0x40af67[_0x5649('0x40')]&&_0x40af67['attrs'][0x0]?_0x40af67[_0x5649('0x40')][0x0]['value']:undefined)||_0x5649('0x47')},{'name':_0x5649('0x48'),'value':_0x40af67['attrTimezone']||(_0x40af67[_0x5649('0x40')]&&_0x40af67[_0x5649('0x40')][0x1]?_0x40af67[_0x5649('0x40')][0x1][_0x5649('0x44')]:undefined)||_0x5649('0x49')},{'name':_0x5649('0x4a'),'value':_0x40af67['attrFontSize']||(_0x40af67['attrs']&&_0x40af67[_0x5649('0x40')][0x2]?_0x40af67['attrs'][0x2][_0x5649('0x44')]:undefined)||0xc}];case'counter':return[{'name':_0x5649('0x4b'),'value':_0x40af67[_0x5649('0x4b')]||(_0x40af67[_0x5649('0x40')]&&_0x40af67[_0x5649('0x40')][0x0]?_0x40af67['attrs'][0x0][_0x5649('0x44')]:undefined)||_0x5649('0x4c')},{'name':_0x5649('0x4d'),'value':_0x40af67['attrVoiceQueues']||(_0x40af67[_0x5649('0x40')]&&_0x40af67[_0x5649('0x40')][0x1]?_0x40af67[_0x5649('0x40')][0x1]['value']:undefined)||[]},{'name':_0x5649('0x4a'),'value':_0x40af67[_0x5649('0x4a')]||(_0x40af67[_0x5649('0x40')]&&_0x40af67['attrs'][0x2]?_0x40af67[_0x5649('0x40')][0x2][_0x5649('0x44')]:undefined)||0x14}];case'multibar-chart':case _0x5649('0x4e'):return[{'name':_0x5649('0x4f'),'value':_0x40af67['attrSerie1']||(_0x40af67['attrs']&&_0x40af67[_0x5649('0x40')][0x0]?_0x40af67[_0x5649('0x40')][0x0][_0x5649('0x44')]:undefined)||_0x5649('0x4c')},{'name':_0x5649('0x50'),'value':_0x40af67[_0x5649('0x50')]||(_0x40af67[_0x5649('0x40')]&&_0x40af67['attrs'][0x1]?_0x40af67[_0x5649('0x40')][0x1][_0x5649('0x44')]:undefined)||null},{'name':'attrSerie3','value':_0x40af67['attrSerie3']||(_0x40af67[_0x5649('0x40')]&&_0x40af67['attrs'][0x2]?_0x40af67['attrs'][0x2][_0x5649('0x44')]:undefined)||null},{'name':_0x5649('0x4d'),'value':_0x40af67[_0x5649('0x4d')]||(_0x40af67['attrs']&&_0x40af67['attrs'][0x3]?_0x40af67[_0x5649('0x40')][0x3][_0x5649('0x44')]:undefined)||[]}];case _0x5649('0x51'):return[{'name':_0x5649('0x52'),'type':_0x40af67[_0x5649('0x53')]||(_0x40af67[_0x5649('0x40')]&&_0x40af67[_0x5649('0x40')][0x0]?_0x40af67[_0x5649('0x40')][0x0][_0x5649('0x3d')]:undefined)||null,'value':_0x40af67[_0x5649('0x52')]||(_0x40af67['attrs']&&_0x40af67[_0x5649('0x40')][0x0]?_0x40af67[_0x5649('0x40')][0x0]['value']:undefined)||null},{'name':_0x5649('0x54'),'value':_0x40af67[_0x5649('0x54')]||(_0x40af67[_0x5649('0x40')]&&_0x40af67[_0x5649('0x40')][0x1]?_0x40af67[_0x5649('0x40')][0x1][_0x5649('0x44')]:undefined)||0x0}];default:return[];}}catch(_0x3b7cba){logger[_0x5649('0x27')]('widgetAttributes:\x20%s',JSON['stringify'](_0x3b7cba));return[];}}exports['create']=function(_0x49e89c,_0x51323d){if(_0x49e89c['body']){_0x49e89c[_0x5649('0x55')]['attrs']=widgetAttributes(_0x49e89c['body']);}return db['DashboardItem']['create'](_0x49e89c['body'],{})['then'](respondWithResult(_0x51323d,0xc9))[_0x5649('0x3b')](handleError(_0x51323d,null));};exports[_0x5649('0x22')]=function(_0x15f4ed,_0x7c76ae){if(_0x15f4ed[_0x5649('0x55')]['id']){delete _0x15f4ed['body']['id'];}_0x15f4ed[_0x5649('0x55')][_0x5649('0x40')]=widgetAttributes(_0x15f4ed['body']);return db[_0x5649('0x2e')]['find']({'where':{'id':_0x15f4ed[_0x5649('0x3c')]['id']}})[_0x5649('0x23')](handleEntityNotFound(_0x7c76ae,null))[_0x5649('0x23')](saveUpdates(_0x15f4ed[_0x5649('0x55')],null))[_0x5649('0x23')](respondWithResult(_0x7c76ae,null))[_0x5649('0x3b')](handleError(_0x7c76ae,null));};