4e731451e468069a826feff86174a46f38080f00
[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 _0x3ca4=['lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./dashboardItem.socket','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','save','update','destroy','then','sendStatus','error','stack','name','send','params','model','DashboardItem','query','filters','attributes','intersection','fields','length','merge','options','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','pie-chart','attrSerie1','attrSerie2','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','create','body','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra'];(function(_0x281ebd,_0x467426){var _0x47e0cc=function(_0x35fc4d){while(--_0x35fc4d){_0x281ebd['push'](_0x281ebd['shift']());}};_0x47e0cc(++_0x467426);}(_0x3ca4,0x17d));var _0x43ca=function(_0xb33188,_0x3df3de){_0xb33188=_0xb33188-0x0;var _0x405555=_0x3ca4[_0xb33188];return _0x405555;};'use strict';var emlformat=require(_0x43ca('0x0'));var rimraf=require(_0x43ca('0x1'));var zipdir=require(_0x43ca('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x43ca('0x3'));var BPromise=require(_0x43ca('0x4'));var Mustache=require(_0x43ca('0x5'));var util=require(_0x43ca('0x6'));var path=require(_0x43ca('0x7'));var sox=require(_0x43ca('0x8'));var csv=require(_0x43ca('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x43ca('0xa'));var _=require(_0x43ca('0xb'));var squel=require(_0x43ca('0xc'));var crypto=require(_0x43ca('0xd'));var jsforce=require(_0x43ca('0xe'));var deskjs=require(_0x43ca('0xf'));var toCsv=require(_0x43ca('0x9'));var querystring=require(_0x43ca('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x43ca('0x11'));var qs=require(_0x43ca('0x12'));var as=require(_0x43ca('0x13'));var hardwareService=require(_0x43ca('0x14'));var logger=require('../../config/logger')(_0x43ca('0x15'));var utils=require(_0x43ca('0x16'));var config=require(_0x43ca('0x17'));var licenseUtil=require(_0x43ca('0x18'));var db=require(_0x43ca('0x19'))['db'];config[_0x43ca('0x1a')]=_[_0x43ca('0x1b')](config[_0x43ca('0x1a')],{'host':_0x43ca('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x43ca('0x1a')]));require(_0x43ca('0x1d'))['register'](socket);function respondWithStatusCode(_0x309176,_0x5c9a24){_0x5c9a24=_0x5c9a24||0xcc;return function(_0x316c74){if(_0x316c74){return _0x309176['sendStatus'](_0x5c9a24);}return _0x309176[_0x43ca('0x1e')](_0x5c9a24)[_0x43ca('0x1f')]();};}function respondWithResult(_0x51a517,_0xd306dc){_0xd306dc=_0xd306dc||0xc8;return function(_0x366180){if(_0x366180){return _0x51a517[_0x43ca('0x1e')](_0xd306dc)['json'](_0x366180);}};}function respondWithFilteredResult(_0x4fb5e4,_0x48a75c){return function(_0x5e50c9){if(_0x5e50c9){var _0x2cb3e5=typeof _0x48a75c[_0x43ca('0x20')]===_0x43ca('0x21')&&typeof _0x48a75c['limit']===_0x43ca('0x21');var _0x806f68=_0x5e50c9[_0x43ca('0x22')];var _0x4a07cd=_0x2cb3e5?0x0:_0x48a75c[_0x43ca('0x20')];var _0x51cb85=_0x2cb3e5?_0x5e50c9[_0x43ca('0x22')]:_0x48a75c[_0x43ca('0x20')]+_0x48a75c[_0x43ca('0x23')];var _0x5ae497;if(_0x51cb85>=_0x806f68){_0x51cb85=_0x806f68;_0x5ae497=0xc8;}else{_0x5ae497=0xce;}_0x4fb5e4[_0x43ca('0x1e')](_0x5ae497);return _0x4fb5e4[_0x43ca('0x24')](_0x43ca('0x25'),_0x4a07cd+'-'+_0x51cb85+'/'+_0x806f68)[_0x43ca('0x26')](_0x5e50c9);}return null;};}function patchUpdates(_0x35d34c){return function(_0x4c27d8){try{jsonpatch[_0x43ca('0x27')](_0x4c27d8,_0x35d34c,!![]);}catch(_0x34767e){return BPromise['reject'](_0x34767e);}return _0x4c27d8[_0x43ca('0x28')]();};}function saveUpdates(_0x22d6ac,_0x694b5a){return function(_0x3bc9ae){if(_0x3bc9ae){return _0x3bc9ae[_0x43ca('0x29')](_0x22d6ac)['then'](function(_0x2da1ec){return _0x2da1ec;});}return null;};}function removeEntity(_0xc07cde,_0x29f2ee){return function(_0x24abdb){if(_0x24abdb){return _0x24abdb[_0x43ca('0x2a')]()[_0x43ca('0x2b')](function(){_0xc07cde[_0x43ca('0x1e')](0xcc)[_0x43ca('0x1f')]();});}};}function handleEntityNotFound(_0x5aa57c,_0x4c6b44){return function(_0x4a75af){if(!_0x4a75af){_0x5aa57c[_0x43ca('0x2c')](0x194);}return _0x4a75af;};}function handleError(_0x3a2e47,_0x270393){_0x270393=_0x270393||0x1f4;return function(_0x9d09b9){logger[_0x43ca('0x2d')](_0x9d09b9[_0x43ca('0x2e')]);if(_0x9d09b9[_0x43ca('0x2f')]){delete _0x9d09b9[_0x43ca('0x2f')];}_0x3a2e47['status'](_0x270393)[_0x43ca('0x30')](_0x9d09b9);};}exports['show']=function(_0x5c7c80,_0x12b2a2){var _0x1f2814={'raw':![],'where':{'id':_0x5c7c80[_0x43ca('0x31')]['id']}},_0x313518={};_0x313518[_0x43ca('0x32')]=_['keys'](db[_0x43ca('0x33')]['rawAttributes']);_0x313518[_0x43ca('0x34')]=_['keys'](_0x5c7c80[_0x43ca('0x34')]);_0x313518[_0x43ca('0x35')]=_['intersection'](_0x313518[_0x43ca('0x32')],_0x313518[_0x43ca('0x34')]);_0x1f2814[_0x43ca('0x36')]=_[_0x43ca('0x37')](_0x313518[_0x43ca('0x32')],qs[_0x43ca('0x38')](_0x5c7c80[_0x43ca('0x34')]['fields']));_0x1f2814[_0x43ca('0x36')]=_0x1f2814['attributes'][_0x43ca('0x39')]?_0x1f2814[_0x43ca('0x36')]:_0x313518['model'];if(_0x5c7c80[_0x43ca('0x34')]['includeAll']){_0x1f2814['include']=[{'all':!![]}];}_0x1f2814=_[_0x43ca('0x3a')]({},_0x1f2814,_0x5c7c80[_0x43ca('0x3b')]);return db[_0x43ca('0x33')][_0x43ca('0x3c')](_0x1f2814)[_0x43ca('0x2b')](handleEntityNotFound(_0x12b2a2,null))[_0x43ca('0x2b')](respondWithResult(_0x12b2a2,null))[_0x43ca('0x3d')](handleError(_0x12b2a2,null));};exports['destroy']=function(_0x43b29b,_0x67b8b0){return db['DashboardItem'][_0x43ca('0x3c')]({'where':{'id':_0x43b29b[_0x43ca('0x31')]['id']}})['then'](handleEntityNotFound(_0x67b8b0,null))[_0x43ca('0x2b')](removeEntity(_0x67b8b0,null))['catch'](handleError(_0x67b8b0,null));};function widgetAttributes(_0x5a4224){try{switch(_0x5a4224[_0x43ca('0x3e')]){case _0x43ca('0x3f'):return[{'name':_0x43ca('0x40'),'value':_0x5a4224[_0x43ca('0x40')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x0]?_0x5a4224[_0x43ca('0x41')][0x0][_0x43ca('0x42')]:undefined)||_0x43ca('0x43')}];case _0x43ca('0x44'):return[{'name':_0x43ca('0x45'),'value':_0x5a4224[_0x43ca('0x45')]||(_0x5a4224['attrs']&&_0x5a4224['attrs'][0x0]?_0x5a4224[_0x43ca('0x41')][0x0][_0x43ca('0x42')]:undefined)||''}];case _0x43ca('0x46'):return[{'name':'attrHourFormat','value':_0x5a4224[_0x43ca('0x47')]||(_0x5a4224['attrs']&&_0x5a4224[_0x43ca('0x41')][0x0]?_0x5a4224['attrs'][0x0][_0x43ca('0x42')]:undefined)||_0x43ca('0x48')},{'name':_0x43ca('0x49'),'value':_0x5a4224[_0x43ca('0x49')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x1]?_0x5a4224['attrs'][0x1]['value']:undefined)||_0x43ca('0x4a')},{'name':_0x43ca('0x4b'),'value':_0x5a4224[_0x43ca('0x4b')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x2]?_0x5a4224[_0x43ca('0x41')][0x2][_0x43ca('0x42')]:undefined)||0xc}];case _0x43ca('0x4c'):return[{'name':_0x43ca('0x4d'),'value':_0x5a4224[_0x43ca('0x4d')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x0]?_0x5a4224[_0x43ca('0x41')][0x0][_0x43ca('0x42')]:undefined)||_0x43ca('0x4e')},{'name':_0x43ca('0x4f'),'value':_0x5a4224[_0x43ca('0x4f')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x1]?_0x5a4224[_0x43ca('0x41')][0x1][_0x43ca('0x42')]:undefined)||[]},{'name':'attrFontSize','value':_0x5a4224[_0x43ca('0x4b')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x2]?_0x5a4224['attrs'][0x2][_0x43ca('0x42')]:undefined)||0x14},{'name':_0x43ca('0x50'),'value':_0x5a4224[_0x43ca('0x50')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x3]?_0x5a4224[_0x43ca('0x41')][0x3][_0x43ca('0x42')]:undefined)||_0x43ca('0x51')},{'name':_0x43ca('0x52'),'value':_0x5a4224[_0x43ca('0x52')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224['attrs'][0x4]?_0x5a4224[_0x43ca('0x41')][0x4][_0x43ca('0x42')]:undefined)||''},{'name':_0x43ca('0x53'),'value':_0x5a4224['attrFaxAccounts']||(_0x5a4224['attrs']&&_0x5a4224[_0x43ca('0x41')][0x5]?_0x5a4224['attrs'][0x5][_0x43ca('0x42')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x5a4224[_0x43ca('0x54')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x6]?_0x5a4224['attrs'][0x6][_0x43ca('0x42')]:undefined)||''},{'name':_0x43ca('0x55'),'value':_0x5a4224['attrOpenchannelAccounts']||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224['attrs'][0x7]?_0x5a4224['attrs'][0x7][_0x43ca('0x42')]:undefined)||''},{'name':_0x43ca('0x56'),'value':_0x5a4224[_0x43ca('0x56')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x8]?_0x5a4224[_0x43ca('0x41')][0x8]['value']:undefined)||''},{'name':'attrChatWebsites','value':_0x5a4224[_0x43ca('0x57')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224['attrs'][0x9]?_0x5a4224['attrs'][0x9][_0x43ca('0x42')]:undefined)||''}];case'multibar-chart':case _0x43ca('0x58'):return[{'name':_0x43ca('0x59'),'value':_0x5a4224[_0x43ca('0x59')]||(_0x5a4224['attrs']&&_0x5a4224[_0x43ca('0x41')][0x0]?_0x5a4224[_0x43ca('0x41')][0x0]['value']:undefined)||'total'},{'name':_0x43ca('0x5a'),'value':_0x5a4224[_0x43ca('0x5a')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x1]?_0x5a4224[_0x43ca('0x41')][0x1][_0x43ca('0x42')]:undefined)||null},{'name':'attrSerie3','value':_0x5a4224['attrSerie3']||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x2]?_0x5a4224[_0x43ca('0x41')][0x2][_0x43ca('0x42')]:undefined)||null},{'name':_0x43ca('0x4f'),'value':_0x5a4224[_0x43ca('0x4f')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x3]?_0x5a4224[_0x43ca('0x41')][0x3][_0x43ca('0x42')]:undefined)||[]},{'name':_0x43ca('0x50'),'value':_0x5a4224[_0x43ca('0x50')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x4]?_0x5a4224['attrs'][0x4][_0x43ca('0x42')]:undefined)||_0x43ca('0x51')},{'name':_0x43ca('0x52'),'value':_0x5a4224[_0x43ca('0x52')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224['attrs'][0x5]?_0x5a4224[_0x43ca('0x41')][0x5][_0x43ca('0x42')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x5a4224[_0x43ca('0x53')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224['attrs'][0x6]?_0x5a4224['attrs'][0x6][_0x43ca('0x42')]:undefined)||''},{'name':_0x43ca('0x54'),'value':_0x5a4224[_0x43ca('0x54')]||(_0x5a4224['attrs']&&_0x5a4224[_0x43ca('0x41')][0x7]?_0x5a4224[_0x43ca('0x41')][0x7][_0x43ca('0x42')]:undefined)||''},{'name':_0x43ca('0x55'),'value':_0x5a4224[_0x43ca('0x55')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x8]?_0x5a4224[_0x43ca('0x41')][0x8][_0x43ca('0x42')]:undefined)||''},{'name':_0x43ca('0x56'),'value':_0x5a4224['attrWhatsappAccounts']||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x9]?_0x5a4224[_0x43ca('0x41')][0x9][_0x43ca('0x42')]:undefined)||''},{'name':_0x43ca('0x57'),'value':_0x5a4224[_0x43ca('0x57')]||(_0x5a4224['attrs']&&_0x5a4224[_0x43ca('0x41')][0xa]?_0x5a4224[_0x43ca('0x41')][0xa][_0x43ca('0x42')]:undefined)||''}];case _0x43ca('0x5b'):return[{'name':_0x43ca('0x5c'),'type':_0x5a4224[_0x43ca('0x5d')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224[_0x43ca('0x41')][0x0]?_0x5a4224['attrs'][0x0][_0x43ca('0x3e')]:undefined)||null,'value':_0x5a4224[_0x43ca('0x5c')]||(_0x5a4224[_0x43ca('0x41')]&&_0x5a4224['attrs'][0x0]?_0x5a4224[_0x43ca('0x41')][0x0][_0x43ca('0x42')]:undefined)||null},{'name':'attrRefresh','value':_0x5a4224[_0x43ca('0x5e')]||(_0x5a4224['attrs']&&_0x5a4224['attrs'][0x1]?_0x5a4224[_0x43ca('0x41')][0x1][_0x43ca('0x42')]:undefined)||0x0}];default:return[];}}catch(_0x12639d){logger[_0x43ca('0x2d')](_0x43ca('0x5f'),JSON['stringify'](_0x12639d));return[];}}exports[_0x43ca('0x60')]=function(_0x586fe9,_0x10db02){if(_0x586fe9[_0x43ca('0x61')]){_0x586fe9[_0x43ca('0x61')][_0x43ca('0x41')]=widgetAttributes(_0x586fe9[_0x43ca('0x61')]);}return db[_0x43ca('0x33')][_0x43ca('0x60')](_0x586fe9['body'],{})[_0x43ca('0x2b')](respondWithResult(_0x10db02,0xc9))[_0x43ca('0x3d')](handleError(_0x10db02,null));};exports[_0x43ca('0x29')]=function(_0x248e4e,_0xd63961){if(_0x248e4e['body']['id']){delete _0x248e4e[_0x43ca('0x61')]['id'];}_0x248e4e[_0x43ca('0x61')]['attrs']=widgetAttributes(_0x248e4e[_0x43ca('0x61')]);return db[_0x43ca('0x33')][_0x43ca('0x3c')]({'where':{'id':_0x248e4e[_0x43ca('0x31')]['id']}})[_0x43ca('0x2b')](handleEntityNotFound(_0xd63961,null))[_0x43ca('0x2b')](saveUpdates(_0x248e4e[_0x43ca('0x61')],null))[_0x43ca('0x2b')](respondWithResult(_0xd63961,null))[_0x43ca('0x3d')](handleError(_0xd63961,null));};