Built motion from commit e6806ed6.|2.6.0
[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 _0x44ff=['then','destroy','error','stack','send','show','model','keys','DashboardItem','rawAttributes','query','filters','intersection','attributes','fields','includeAll','include','merge','options','find','catch','params','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','attrChannel','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','voice','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','rimraf','zip-dir','fast-json-patch','util','path','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','undefined','offset','limit','Content-Range','apply','reject','update'];(function(_0x4243a3,_0x447337){var _0x1b2a33=function(_0x6a8200){while(--_0x6a8200){_0x4243a3['push'](_0x4243a3['shift']());}};_0x1b2a33(++_0x447337);}(_0x44ff,0x1c3));var _0xf44f=function(_0x320bcf,_0x2051fb){_0x320bcf=_0x320bcf-0x0;var _0x4c0dde=_0x44ff[_0x320bcf];return _0x4c0dde;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf44f('0x0'));var zipdir=require(_0xf44f('0x1'));var jsonpatch=require(_0xf44f('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xf44f('0x3'));var path=require(_0xf44f('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xf44f('0x5'));var fs=require('fs');var fs_extra=require(_0xf44f('0x6'));var _=require(_0xf44f('0x7'));var squel=require('squel');var crypto=require(_0xf44f('0x8'));var jsforce=require(_0xf44f('0x9'));var deskjs=require(_0xf44f('0xa'));var toCsv=require('to-csv');var querystring=require(_0xf44f('0xb'));var Papa=require(_0xf44f('0xc'));var Redis=require(_0xf44f('0xd'));var authService=require(_0xf44f('0xe'));var qs=require(_0xf44f('0xf'));var as=require(_0xf44f('0x10'));var hardwareService=require(_0xf44f('0x11'));var logger=require(_0xf44f('0x12'))(_0xf44f('0x13'));var utils=require(_0xf44f('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xf44f('0x15'));var db=require(_0xf44f('0x16'))['db'];config[_0xf44f('0x17')]=_[_0xf44f('0x18')](config[_0xf44f('0x17')],{'host':_0xf44f('0x19'),'port':0x18eb});var socket=require(_0xf44f('0x1a'))(new Redis(config['redis']));require('./dashboardItem.socket')[_0xf44f('0x1b')](socket);function respondWithStatusCode(_0x5f20aa,_0x4a3277){_0x4a3277=_0x4a3277||0xcc;return function(_0x5afc15){if(_0x5afc15){return _0x5f20aa[_0xf44f('0x1c')](_0x4a3277);}return _0x5f20aa[_0xf44f('0x1d')](_0x4a3277)[_0xf44f('0x1e')]();};}function respondWithResult(_0x1a5ce4,_0x52171b){_0x52171b=_0x52171b||0xc8;return function(_0x36d3c1){if(_0x36d3c1){return _0x1a5ce4['status'](_0x52171b)[_0xf44f('0x1f')](_0x36d3c1);}};}function respondWithFilteredResult(_0x40e414,_0x43c57d){return function(_0x15e5b6){if(_0x15e5b6){var _0x542786=typeof _0x43c57d['offset']==='undefined'&&typeof _0x43c57d['limit']===_0xf44f('0x20');var _0x4f0292=_0x15e5b6['count'];var _0x395bfe=_0x542786?0x0:_0x43c57d[_0xf44f('0x21')];var _0xb4600b=_0x542786?_0x15e5b6['count']:_0x43c57d[_0xf44f('0x21')]+_0x43c57d[_0xf44f('0x22')];var _0x5eb768;if(_0xb4600b>=_0x4f0292){_0xb4600b=_0x4f0292;_0x5eb768=0xc8;}else{_0x5eb768=0xce;}_0x40e414[_0xf44f('0x1d')](_0x5eb768);return _0x40e414['set'](_0xf44f('0x23'),_0x395bfe+'-'+_0xb4600b+'/'+_0x4f0292)[_0xf44f('0x1f')](_0x15e5b6);}return null;};}function patchUpdates(_0x3e0b9c){return function(_0x511661){try{jsonpatch[_0xf44f('0x24')](_0x511661,_0x3e0b9c,!![]);}catch(_0x1b9dc9){return BPromise[_0xf44f('0x25')](_0x1b9dc9);}return _0x511661['save']();};}function saveUpdates(_0x1ba9c0,_0x5687d1){return function(_0x367f90){if(_0x367f90){return _0x367f90[_0xf44f('0x26')](_0x1ba9c0)[_0xf44f('0x27')](function(_0x5313f5){return _0x5313f5;});}return null;};}function removeEntity(_0x3c04fe,_0x2a17e0){return function(_0x17f1a4){if(_0x17f1a4){return _0x17f1a4[_0xf44f('0x28')]()['then'](function(){_0x3c04fe[_0xf44f('0x1d')](0xcc)[_0xf44f('0x1e')]();});}};}function handleEntityNotFound(_0x36e7a9,_0x3ea717){return function(_0xc6ed8a){if(!_0xc6ed8a){_0x36e7a9[_0xf44f('0x1c')](0x194);}return _0xc6ed8a;};}function handleError(_0x4cf521,_0x202f7c){_0x202f7c=_0x202f7c||0x1f4;return function(_0x5255eb){logger[_0xf44f('0x29')](_0x5255eb[_0xf44f('0x2a')]);if(_0x5255eb['name']){delete _0x5255eb['name'];}_0x4cf521[_0xf44f('0x1d')](_0x202f7c)[_0xf44f('0x2b')](_0x5255eb);};}exports[_0xf44f('0x2c')]=function(_0xcd3334,_0x549fdd){var _0x1ee969={'raw':![],'where':{'id':_0xcd3334['params']['id']}},_0x37a208={};_0x37a208[_0xf44f('0x2d')]=_[_0xf44f('0x2e')](db[_0xf44f('0x2f')][_0xf44f('0x30')]);_0x37a208[_0xf44f('0x31')]=_[_0xf44f('0x2e')](_0xcd3334[_0xf44f('0x31')]);_0x37a208[_0xf44f('0x32')]=_[_0xf44f('0x33')](_0x37a208[_0xf44f('0x2d')],_0x37a208['query']);_0x1ee969[_0xf44f('0x34')]=_[_0xf44f('0x33')](_0x37a208['model'],qs[_0xf44f('0x35')](_0xcd3334[_0xf44f('0x31')][_0xf44f('0x35')]));_0x1ee969[_0xf44f('0x34')]=_0x1ee969[_0xf44f('0x34')]['length']?_0x1ee969[_0xf44f('0x34')]:_0x37a208[_0xf44f('0x2d')];if(_0xcd3334[_0xf44f('0x31')][_0xf44f('0x36')]){_0x1ee969[_0xf44f('0x37')]=[{'all':!![]}];}_0x1ee969=_[_0xf44f('0x38')]({},_0x1ee969,_0xcd3334[_0xf44f('0x39')]);return db[_0xf44f('0x2f')][_0xf44f('0x3a')](_0x1ee969)['then'](handleEntityNotFound(_0x549fdd,null))[_0xf44f('0x27')](respondWithResult(_0x549fdd,null))[_0xf44f('0x3b')](handleError(_0x549fdd,null));};exports[_0xf44f('0x28')]=function(_0x3abb6e,_0x2865bf){return db[_0xf44f('0x2f')][_0xf44f('0x3a')]({'where':{'id':_0x3abb6e[_0xf44f('0x3c')]['id']}})[_0xf44f('0x27')](handleEntityNotFound(_0x2865bf,null))[_0xf44f('0x27')](removeEntity(_0x2865bf,null))[_0xf44f('0x3b')](handleError(_0x2865bf,null));};function widgetAttributes(_0x13ae55){try{switch(_0x13ae55[_0xf44f('0x3d')]){case _0xf44f('0x3e'):return[{'name':_0xf44f('0x3f'),'value':_0x13ae55[_0xf44f('0x3f')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x0]?_0x13ae55[_0xf44f('0x40')][0x0][_0xf44f('0x41')]:undefined)||_0xf44f('0x42')}];case _0xf44f('0x43'):return[{'name':_0xf44f('0x44'),'value':_0x13ae55['attrPath']||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x0]?_0x13ae55[_0xf44f('0x40')][0x0][_0xf44f('0x41')]:undefined)||''}];case'clock':return[{'name':_0xf44f('0x45'),'value':_0x13ae55['attrHourFormat']||(_0x13ae55['attrs']&&_0x13ae55[_0xf44f('0x40')][0x0]?_0x13ae55[_0xf44f('0x40')][0x0][_0xf44f('0x41')]:undefined)||_0xf44f('0x46')},{'name':_0xf44f('0x47'),'value':_0x13ae55['attrTimezone']||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x1]?_0x13ae55['attrs'][0x1][_0xf44f('0x41')]:undefined)||_0xf44f('0x48')},{'name':_0xf44f('0x49'),'value':_0x13ae55['attrFontSize']||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55['attrs'][0x2]?_0x13ae55[_0xf44f('0x40')][0x2][_0xf44f('0x41')]:undefined)||0xc}];case'counter':return[{'name':_0xf44f('0x4a'),'value':_0x13ae55[_0xf44f('0x4a')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x0]?_0x13ae55[_0xf44f('0x40')][0x0][_0xf44f('0x41')]:undefined)||_0xf44f('0x4b')},{'name':_0xf44f('0x4c'),'value':_0x13ae55['attrVoiceQueues']||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x1]?_0x13ae55[_0xf44f('0x40')][0x1][_0xf44f('0x41')]:undefined)||[]},{'name':_0xf44f('0x49'),'value':_0x13ae55[_0xf44f('0x49')]||(_0x13ae55['attrs']&&_0x13ae55[_0xf44f('0x40')][0x2]?_0x13ae55[_0xf44f('0x40')][0x2][_0xf44f('0x41')]:undefined)||0x14},{'name':'attrChannel','value':_0x13ae55[_0xf44f('0x4d')]||(_0x13ae55['attrs']&&_0x13ae55[_0xf44f('0x40')][0x3]?_0x13ae55[_0xf44f('0x40')][0x3][_0xf44f('0x41')]:undefined)||'voice'},{'name':_0xf44f('0x4e'),'value':_0x13ae55[_0xf44f('0x4e')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55['attrs'][0x4]?_0x13ae55['attrs'][0x4][_0xf44f('0x41')]:undefined)||''},{'name':_0xf44f('0x4f'),'value':_0x13ae55[_0xf44f('0x4f')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x5]?_0x13ae55[_0xf44f('0x40')][0x5][_0xf44f('0x41')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x13ae55[_0xf44f('0x50')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55['attrs'][0x6]?_0x13ae55['attrs'][0x6]['value']:undefined)||''},{'name':_0xf44f('0x51'),'value':_0x13ae55[_0xf44f('0x51')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55['attrs'][0x7]?_0x13ae55['attrs'][0x7][_0xf44f('0x41')]:undefined)||''},{'name':_0xf44f('0x52'),'value':_0x13ae55[_0xf44f('0x52')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x8]?_0x13ae55['attrs'][0x8][_0xf44f('0x41')]:undefined)||''},{'name':_0xf44f('0x53'),'value':_0x13ae55['attrChatWebsites']||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55['attrs'][0x9]?_0x13ae55[_0xf44f('0x40')][0x9][_0xf44f('0x41')]:undefined)||''}];case _0xf44f('0x54'):case _0xf44f('0x55'):return[{'name':_0xf44f('0x56'),'value':_0x13ae55[_0xf44f('0x56')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55['attrs'][0x0]?_0x13ae55[_0xf44f('0x40')][0x0][_0xf44f('0x41')]:undefined)||_0xf44f('0x4b')},{'name':_0xf44f('0x57'),'value':_0x13ae55['attrSerie2']||(_0x13ae55['attrs']&&_0x13ae55['attrs'][0x1]?_0x13ae55['attrs'][0x1][_0xf44f('0x41')]:undefined)||null},{'name':_0xf44f('0x58'),'value':_0x13ae55[_0xf44f('0x58')]||(_0x13ae55['attrs']&&_0x13ae55[_0xf44f('0x40')][0x2]?_0x13ae55[_0xf44f('0x40')][0x2]['value']:undefined)||null},{'name':_0xf44f('0x4c'),'value':_0x13ae55['attrVoiceQueues']||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x3]?_0x13ae55[_0xf44f('0x40')][0x3][_0xf44f('0x41')]:undefined)||[]},{'name':_0xf44f('0x4d'),'value':_0x13ae55[_0xf44f('0x4d')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x4]?_0x13ae55[_0xf44f('0x40')][0x4][_0xf44f('0x41')]:undefined)||_0xf44f('0x59')},{'name':_0xf44f('0x4e'),'value':_0x13ae55['attrEmailAccounts']||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55['attrs'][0x5]?_0x13ae55[_0xf44f('0x40')][0x5][_0xf44f('0x41')]:undefined)||''},{'name':_0xf44f('0x4f'),'value':_0x13ae55['attrFaxAccounts']||(_0x13ae55['attrs']&&_0x13ae55[_0xf44f('0x40')][0x6]?_0x13ae55[_0xf44f('0x40')][0x6][_0xf44f('0x41')]:undefined)||''},{'name':_0xf44f('0x50'),'value':_0x13ae55[_0xf44f('0x50')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x7]?_0x13ae55[_0xf44f('0x40')][0x7]['value']:undefined)||''},{'name':_0xf44f('0x51'),'value':_0x13ae55[_0xf44f('0x51')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55['attrs'][0x8]?_0x13ae55[_0xf44f('0x40')][0x8]['value']:undefined)||''},{'name':_0xf44f('0x52'),'value':_0x13ae55[_0xf44f('0x52')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x9]?_0x13ae55['attrs'][0x9]['value']:undefined)||''},{'name':'attrChatWebsites','value':_0x13ae55['attrChatWebsites']||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0xa]?_0x13ae55[_0xf44f('0x40')][0xa]['value']:undefined)||''}];case _0xf44f('0x5a'):return[{'name':_0xf44f('0x5b'),'type':_0x13ae55[_0xf44f('0x5c')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55[_0xf44f('0x40')][0x0]?_0x13ae55[_0xf44f('0x40')][0x0][_0xf44f('0x3d')]:undefined)||null,'value':_0x13ae55['attrReport']||(_0x13ae55['attrs']&&_0x13ae55[_0xf44f('0x40')][0x0]?_0x13ae55['attrs'][0x0][_0xf44f('0x41')]:undefined)||null},{'name':_0xf44f('0x5d'),'value':_0x13ae55[_0xf44f('0x5d')]||(_0x13ae55[_0xf44f('0x40')]&&_0x13ae55['attrs'][0x1]?_0x13ae55[_0xf44f('0x40')][0x1][_0xf44f('0x41')]:undefined)||0x0}];default:return[];}}catch(_0x49b5eb){logger['error'](_0xf44f('0x5e'),JSON[_0xf44f('0x5f')](_0x49b5eb));return[];}}exports[_0xf44f('0x60')]=function(_0x4e1404,_0x543289){if(_0x4e1404[_0xf44f('0x61')]){_0x4e1404[_0xf44f('0x61')][_0xf44f('0x40')]=widgetAttributes(_0x4e1404[_0xf44f('0x61')]);}return db['DashboardItem'][_0xf44f('0x60')](_0x4e1404[_0xf44f('0x61')],{})[_0xf44f('0x27')](respondWithResult(_0x543289,0xc9))['catch'](handleError(_0x543289,null));};exports['update']=function(_0x3bc453,_0x9dfe6){if(_0x3bc453[_0xf44f('0x61')]['id']){delete _0x3bc453[_0xf44f('0x61')]['id'];}_0x3bc453[_0xf44f('0x61')][_0xf44f('0x40')]=widgetAttributes(_0x3bc453[_0xf44f('0x61')]);return db[_0xf44f('0x2f')][_0xf44f('0x3a')]({'where':{'id':_0x3bc453[_0xf44f('0x3c')]['id']}})[_0xf44f('0x27')](handleEntityNotFound(_0x9dfe6,null))[_0xf44f('0x27')](saveUpdates(_0x3bc453[_0xf44f('0x61')],null))[_0xf44f('0x27')](respondWithResult(_0x9dfe6,null))[_0xf44f('0x3b')](handleError(_0x9dfe6,null));};