ce38fa7a0684874b98c959957a9c8dcab1caf074
[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 _0x1ffe=['end','stack','name','send','params','model','keys','DashboardItem','rawAttributes','filters','intersection','query','fields','attributes','length','includeAll','include','merge','options','find','catch','type','attrUrl','attrs','https://','custom','attrPath','clock','attrHourFormat','value','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','reportType','attrReport','attrRefresh','error','widgetAttributes:\x20%s','stringify','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy'];(function(_0x2dd227,_0x312bad){var _0x348d67=function(_0x457dc6){while(--_0x457dc6){_0x2dd227['push'](_0x2dd227['shift']());}};_0x348d67(++_0x312bad);}(_0x1ffe,0xa5));var _0xe1ff=function(_0x3c96e9,_0x1fa1be){_0x3c96e9=_0x3c96e9-0x0;var _0x246acc=_0x1ffe[_0x3c96e9];return _0x246acc;};'use strict';var emlformat=require(_0xe1ff('0x0'));var rimraf=require(_0xe1ff('0x1'));var zipdir=require(_0xe1ff('0x2'));var jsonpatch=require(_0xe1ff('0x3'));var rp=require(_0xe1ff('0x4'));var moment=require(_0xe1ff('0x5'));var BPromise=require(_0xe1ff('0x6'));var Mustache=require(_0xe1ff('0x7'));var util=require(_0xe1ff('0x8'));var path=require(_0xe1ff('0x9'));var sox=require(_0xe1ff('0xa'));var csv=require(_0xe1ff('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe1ff('0xc'));var squel=require(_0xe1ff('0xd'));var crypto=require(_0xe1ff('0xe'));var jsforce=require(_0xe1ff('0xf'));var deskjs=require(_0xe1ff('0x10'));var toCsv=require(_0xe1ff('0xb'));var querystring=require(_0xe1ff('0x11'));var Papa=require(_0xe1ff('0x12'));var Redis=require(_0xe1ff('0x13'));var authService=require(_0xe1ff('0x14'));var qs=require(_0xe1ff('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe1ff('0x16'));var logger=require(_0xe1ff('0x17'))(_0xe1ff('0x18'));var utils=require(_0xe1ff('0x19'));var config=require(_0xe1ff('0x1a'));var licenseUtil=require(_0xe1ff('0x1b'));var db=require(_0xe1ff('0x1c'))['db'];config[_0xe1ff('0x1d')]=_[_0xe1ff('0x1e')](config[_0xe1ff('0x1d')],{'host':_0xe1ff('0x1f'),'port':0x18eb});var socket=require(_0xe1ff('0x20'))(new Redis(config['redis']));require(_0xe1ff('0x21'))[_0xe1ff('0x22')](socket);function respondWithStatusCode(_0x26511f,_0x486942){_0x486942=_0x486942||0xcc;return function(_0x15ca4b){if(_0x15ca4b){return _0x26511f[_0xe1ff('0x23')](_0x486942);}return _0x26511f['status'](_0x486942)['end']();};}function respondWithResult(_0x5a9d67,_0x207234){_0x207234=_0x207234||0xc8;return function(_0x217f4d){if(_0x217f4d){return _0x5a9d67[_0xe1ff('0x24')](_0x207234)[_0xe1ff('0x25')](_0x217f4d);}};}function respondWithFilteredResult(_0x45c3be,_0x29de7f){return function(_0x588ec4){if(_0x588ec4){var _0x5ebfe7=typeof _0x29de7f[_0xe1ff('0x26')]===_0xe1ff('0x27')&&typeof _0x29de7f[_0xe1ff('0x28')]===_0xe1ff('0x27');var _0x5c4ffc=_0x588ec4[_0xe1ff('0x29')];var _0x223b2c=_0x5ebfe7?0x0:_0x29de7f[_0xe1ff('0x26')];var _0x354b43=_0x5ebfe7?_0x588ec4[_0xe1ff('0x29')]:_0x29de7f[_0xe1ff('0x26')]+_0x29de7f[_0xe1ff('0x28')];var _0x110a9e;if(_0x354b43>=_0x5c4ffc){_0x354b43=_0x5c4ffc;_0x110a9e=0xc8;}else{_0x110a9e=0xce;}_0x45c3be[_0xe1ff('0x24')](_0x110a9e);return _0x45c3be[_0xe1ff('0x2a')](_0xe1ff('0x2b'),_0x223b2c+'-'+_0x354b43+'/'+_0x5c4ffc)[_0xe1ff('0x25')](_0x588ec4);}return null;};}function patchUpdates(_0x186f6c){return function(_0xb8fc93){try{jsonpatch[_0xe1ff('0x2c')](_0xb8fc93,_0x186f6c,!![]);}catch(_0x1afc5d){return BPromise[_0xe1ff('0x2d')](_0x1afc5d);}return _0xb8fc93[_0xe1ff('0x2e')]();};}function saveUpdates(_0x3ee7f4,_0x2fb25e){return function(_0x1f1b3f){if(_0x1f1b3f){return _0x1f1b3f['update'](_0x3ee7f4)[_0xe1ff('0x2f')](function(_0x440c83){return _0x440c83;});}return null;};}function removeEntity(_0x3f4024,_0x1ff27e){return function(_0x58c146){if(_0x58c146){return _0x58c146[_0xe1ff('0x30')]()[_0xe1ff('0x2f')](function(){_0x3f4024['status'](0xcc)[_0xe1ff('0x31')]();});}};}function handleEntityNotFound(_0x2546c9,_0x328192){return function(_0x21f6e0){if(!_0x21f6e0){_0x2546c9[_0xe1ff('0x23')](0x194);}return _0x21f6e0;};}function handleError(_0x45babb,_0x473b4a){_0x473b4a=_0x473b4a||0x1f4;return function(_0x24eacf){logger['error'](_0x24eacf[_0xe1ff('0x32')]);if(_0x24eacf[_0xe1ff('0x33')]){delete _0x24eacf[_0xe1ff('0x33')];}_0x45babb[_0xe1ff('0x24')](_0x473b4a)[_0xe1ff('0x34')](_0x24eacf);};}exports['show']=function(_0x28cc90,_0x3acd63){var _0x315a56={'raw':![],'where':{'id':_0x28cc90[_0xe1ff('0x35')]['id']}},_0x362008={};_0x362008[_0xe1ff('0x36')]=_[_0xe1ff('0x37')](db[_0xe1ff('0x38')][_0xe1ff('0x39')]);_0x362008['query']=_[_0xe1ff('0x37')](_0x28cc90['query']);_0x362008[_0xe1ff('0x3a')]=_[_0xe1ff('0x3b')](_0x362008[_0xe1ff('0x36')],_0x362008[_0xe1ff('0x3c')]);_0x315a56['attributes']=_[_0xe1ff('0x3b')](_0x362008['model'],qs[_0xe1ff('0x3d')](_0x28cc90[_0xe1ff('0x3c')][_0xe1ff('0x3d')]));_0x315a56[_0xe1ff('0x3e')]=_0x315a56[_0xe1ff('0x3e')][_0xe1ff('0x3f')]?_0x315a56[_0xe1ff('0x3e')]:_0x362008[_0xe1ff('0x36')];if(_0x28cc90[_0xe1ff('0x3c')][_0xe1ff('0x40')]){_0x315a56[_0xe1ff('0x41')]=[{'all':!![]}];}_0x315a56=_[_0xe1ff('0x42')]({},_0x315a56,_0x28cc90[_0xe1ff('0x43')]);return db[_0xe1ff('0x38')]['find'](_0x315a56)[_0xe1ff('0x2f')](handleEntityNotFound(_0x3acd63,null))[_0xe1ff('0x2f')](respondWithResult(_0x3acd63,null))['catch'](handleError(_0x3acd63,null));};exports[_0xe1ff('0x30')]=function(_0x1366ed,_0x1c0cd8){return db[_0xe1ff('0x38')][_0xe1ff('0x44')]({'where':{'id':_0x1366ed[_0xe1ff('0x35')]['id']}})[_0xe1ff('0x2f')](handleEntityNotFound(_0x1c0cd8,null))[_0xe1ff('0x2f')](removeEntity(_0x1c0cd8,null))[_0xe1ff('0x45')](handleError(_0x1c0cd8,null));};function widgetAttributes(_0x58634c){try{switch(_0x58634c[_0xe1ff('0x46')]){case'iframe':return[{'name':'attrUrl','value':_0x58634c[_0xe1ff('0x47')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x0]?_0x58634c[_0xe1ff('0x48')][0x0]['value']:undefined)||_0xe1ff('0x49')}];case _0xe1ff('0x4a'):return[{'name':_0xe1ff('0x4b'),'value':_0x58634c[_0xe1ff('0x4b')]||(_0x58634c['attrs']&&_0x58634c[_0xe1ff('0x48')][0x0]?_0x58634c[_0xe1ff('0x48')][0x0]['value']:undefined)||''}];case _0xe1ff('0x4c'):return[{'name':_0xe1ff('0x4d'),'value':_0x58634c['attrHourFormat']||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x0]?_0x58634c['attrs'][0x0][_0xe1ff('0x4e')]:undefined)||'HH:mm:ss'},{'name':_0xe1ff('0x4f'),'value':_0x58634c[_0xe1ff('0x4f')]||(_0x58634c['attrs']&&_0x58634c['attrs'][0x1]?_0x58634c[_0xe1ff('0x48')][0x1][_0xe1ff('0x4e')]:undefined)||'0.00'},{'name':_0xe1ff('0x50'),'value':_0x58634c[_0xe1ff('0x50')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x2]?_0x58634c[_0xe1ff('0x48')][0x2]['value']:undefined)||0xc}];case _0xe1ff('0x51'):return[{'name':_0xe1ff('0x52'),'value':_0x58634c[_0xe1ff('0x52')]||(_0x58634c['attrs']&&_0x58634c[_0xe1ff('0x48')][0x0]?_0x58634c['attrs'][0x0][_0xe1ff('0x4e')]:undefined)||_0xe1ff('0x53')},{'name':'attrVoiceQueues','value':_0x58634c[_0xe1ff('0x54')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x1]?_0x58634c[_0xe1ff('0x48')][0x1][_0xe1ff('0x4e')]:undefined)||[]},{'name':_0xe1ff('0x50'),'value':_0x58634c['attrFontSize']||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x2]?_0x58634c[_0xe1ff('0x48')][0x2][_0xe1ff('0x4e')]:undefined)||0x14},{'name':_0xe1ff('0x55'),'value':_0x58634c['attrChannel']||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x3]?_0x58634c[_0xe1ff('0x48')][0x3][_0xe1ff('0x4e')]:undefined)||_0xe1ff('0x56')},{'name':_0xe1ff('0x57'),'value':_0x58634c[_0xe1ff('0x57')]||(_0x58634c['attrs']&&_0x58634c[_0xe1ff('0x48')][0x4]?_0x58634c[_0xe1ff('0x48')][0x4][_0xe1ff('0x4e')]:undefined)||''},{'name':_0xe1ff('0x58'),'value':_0x58634c[_0xe1ff('0x58')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x5]?_0x58634c[_0xe1ff('0x48')][0x5][_0xe1ff('0x4e')]:undefined)||''},{'name':_0xe1ff('0x59'),'value':_0x58634c[_0xe1ff('0x59')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x6]?_0x58634c['attrs'][0x6][_0xe1ff('0x4e')]:undefined)||''},{'name':_0xe1ff('0x5a'),'value':_0x58634c[_0xe1ff('0x5a')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x7]?_0x58634c['attrs'][0x7][_0xe1ff('0x4e')]:undefined)||''},{'name':_0xe1ff('0x5b'),'value':_0x58634c['attrWhatsappAccounts']||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c['attrs'][0x8]?_0x58634c[_0xe1ff('0x48')][0x8]['value']:undefined)||''},{'name':_0xe1ff('0x5c'),'value':_0x58634c[_0xe1ff('0x5c')]||(_0x58634c['attrs']&&_0x58634c[_0xe1ff('0x48')][0x9]?_0x58634c[_0xe1ff('0x48')][0x9][_0xe1ff('0x4e')]:undefined)||''}];case _0xe1ff('0x5d'):case _0xe1ff('0x5e'):return[{'name':_0xe1ff('0x5f'),'value':_0x58634c['attrSerie1']||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x0]?_0x58634c['attrs'][0x0][_0xe1ff('0x4e')]:undefined)||_0xe1ff('0x53')},{'name':_0xe1ff('0x60'),'value':_0x58634c[_0xe1ff('0x60')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x1]?_0x58634c['attrs'][0x1][_0xe1ff('0x4e')]:undefined)||null},{'name':'attrSerie3','value':_0x58634c[_0xe1ff('0x61')]||(_0x58634c['attrs']&&_0x58634c[_0xe1ff('0x48')][0x2]?_0x58634c[_0xe1ff('0x48')][0x2][_0xe1ff('0x4e')]:undefined)||null},{'name':_0xe1ff('0x54'),'value':_0x58634c[_0xe1ff('0x54')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x3]?_0x58634c[_0xe1ff('0x48')][0x3][_0xe1ff('0x4e')]:undefined)||[]},{'name':'attrChannel','value':_0x58634c['attrChannel']||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x4]?_0x58634c[_0xe1ff('0x48')][0x4]['value']:undefined)||_0xe1ff('0x56')},{'name':'attrEmailAccounts','value':_0x58634c[_0xe1ff('0x57')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x5]?_0x58634c[_0xe1ff('0x48')][0x5]['value']:undefined)||''},{'name':'attrFaxAccounts','value':_0x58634c[_0xe1ff('0x58')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x6]?_0x58634c[_0xe1ff('0x48')][0x6][_0xe1ff('0x4e')]:undefined)||''},{'name':_0xe1ff('0x59'),'value':_0x58634c[_0xe1ff('0x59')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c['attrs'][0x7]?_0x58634c[_0xe1ff('0x48')][0x7]['value']:undefined)||''},{'name':_0xe1ff('0x5a'),'value':_0x58634c[_0xe1ff('0x5a')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x8]?_0x58634c['attrs'][0x8][_0xe1ff('0x4e')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x58634c['attrWhatsappAccounts']||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c['attrs'][0x9]?_0x58634c[_0xe1ff('0x48')][0x9][_0xe1ff('0x4e')]:undefined)||''},{'name':_0xe1ff('0x5c'),'value':_0x58634c[_0xe1ff('0x5c')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0xa]?_0x58634c[_0xe1ff('0x48')][0xa]['value']:undefined)||''}];case _0xe1ff('0x62'):return[{'name':'attrReport','type':_0x58634c[_0xe1ff('0x63')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x0]?_0x58634c[_0xe1ff('0x48')][0x0][_0xe1ff('0x46')]:undefined)||null,'value':_0x58634c[_0xe1ff('0x64')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x0]?_0x58634c[_0xe1ff('0x48')][0x0][_0xe1ff('0x4e')]:undefined)||null},{'name':'attrRefresh','value':_0x58634c[_0xe1ff('0x65')]||(_0x58634c[_0xe1ff('0x48')]&&_0x58634c[_0xe1ff('0x48')][0x1]?_0x58634c[_0xe1ff('0x48')][0x1][_0xe1ff('0x4e')]:undefined)||0x0}];default:return[];}}catch(_0x134727){logger[_0xe1ff('0x66')](_0xe1ff('0x67'),JSON[_0xe1ff('0x68')](_0x134727));return[];}}exports[_0xe1ff('0x69')]=function(_0xbde8cc,_0x8773b6){if(_0xbde8cc[_0xe1ff('0x6a')]){_0xbde8cc[_0xe1ff('0x6a')]['attrs']=widgetAttributes(_0xbde8cc[_0xe1ff('0x6a')]);}return db[_0xe1ff('0x38')][_0xe1ff('0x69')](_0xbde8cc['body'],{})['then'](respondWithResult(_0x8773b6,0xc9))[_0xe1ff('0x45')](handleError(_0x8773b6,null));};exports['update']=function(_0x3a9e36,_0x2292dc){if(_0x3a9e36[_0xe1ff('0x6a')]['id']){delete _0x3a9e36[_0xe1ff('0x6a')]['id'];}_0x3a9e36[_0xe1ff('0x6a')][_0xe1ff('0x48')]=widgetAttributes(_0x3a9e36[_0xe1ff('0x6a')]);return db[_0xe1ff('0x38')][_0xe1ff('0x44')]({'where':{'id':_0x3a9e36[_0xe1ff('0x35')]['id']}})[_0xe1ff('0x2f')](handleEntityNotFound(_0x2292dc,null))['then'](saveUpdates(_0x3a9e36[_0xe1ff('0x6a')],null))[_0xe1ff('0x2f')](respondWithResult(_0x2292dc,null))[_0xe1ff('0x45')](handleError(_0x2292dc,null));};