b924609c8b1182ba4eb29a5bf261197c7716b171
[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 _0xfcbe=['then','destroy','end','sendStatus','error','stack','name','send','params','model','keys','query','filters','intersection','attributes','length','includeAll','include','merge','options','DashboardItem','find','catch','type','iframe','attrUrl','attrs','value','custom','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','fs-extra','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update'];(function(_0xabec92,_0x4e077a){var _0x376c76=function(_0xc60252){while(--_0xc60252){_0xabec92['push'](_0xabec92['shift']());}};_0x376c76(++_0x4e077a);}(_0xfcbe,0x1b1));var _0xefcb=function(_0x335520,_0x2f2d5d){_0x335520=_0x335520-0x0;var _0x38b057=_0xfcbe[_0x335520];return _0x38b057;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xefcb('0x0'));var zipdir=require(_0xefcb('0x1'));var jsonpatch=require(_0xefcb('0x2'));var rp=require(_0xefcb('0x3'));var moment=require(_0xefcb('0x4'));var BPromise=require(_0xefcb('0x5'));var Mustache=require('mustache');var util=require(_0xefcb('0x6'));var path=require(_0xefcb('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xefcb('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xefcb('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xefcb('0xa'));var toCsv=require(_0xefcb('0xb'));var querystring=require(_0xefcb('0xc'));var Papa=require('papaparse');var Redis=require(_0xefcb('0xd'));var authService=require(_0xefcb('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xefcb('0xf'));var logger=require(_0xefcb('0x10'))(_0xefcb('0x11'));var utils=require(_0xefcb('0x12'));var config=require(_0xefcb('0x13'));var licenseUtil=require(_0xefcb('0x14'));var db=require('../../mysqldb')['db'];config[_0xefcb('0x15')]=_[_0xefcb('0x16')](config[_0xefcb('0x15')],{'host':_0xefcb('0x17'),'port':0x18eb});var socket=require(_0xefcb('0x18'))(new Redis(config['redis']));require('./dashboardItem.socket')[_0xefcb('0x19')](socket);function respondWithStatusCode(_0xd13e37,_0x586dce){_0x586dce=_0x586dce||0xcc;return function(_0x26f660){if(_0x26f660){return _0xd13e37['sendStatus'](_0x586dce);}return _0xd13e37[_0xefcb('0x1a')](_0x586dce)['end']();};}function respondWithResult(_0x172816,_0x46a22a){_0x46a22a=_0x46a22a||0xc8;return function(_0x440e20){if(_0x440e20){return _0x172816[_0xefcb('0x1a')](_0x46a22a)[_0xefcb('0x1b')](_0x440e20);}};}function respondWithFilteredResult(_0x13d883,_0x5e5c6c){return function(_0x15fbec){if(_0x15fbec){var _0x8de41a=typeof _0x5e5c6c[_0xefcb('0x1c')]===_0xefcb('0x1d')&&typeof _0x5e5c6c[_0xefcb('0x1e')]===_0xefcb('0x1d');var _0x3a3ffe=_0x15fbec['count'];var _0x39ab04=_0x8de41a?0x0:_0x5e5c6c[_0xefcb('0x1c')];var _0x5695b4=_0x8de41a?_0x15fbec[_0xefcb('0x1f')]:_0x5e5c6c[_0xefcb('0x1c')]+_0x5e5c6c[_0xefcb('0x1e')];var _0x2b0be0;if(_0x5695b4>=_0x3a3ffe){_0x5695b4=_0x3a3ffe;_0x2b0be0=0xc8;}else{_0x2b0be0=0xce;}_0x13d883[_0xefcb('0x1a')](_0x2b0be0);return _0x13d883['set'](_0xefcb('0x20'),_0x39ab04+'-'+_0x5695b4+'/'+_0x3a3ffe)[_0xefcb('0x1b')](_0x15fbec);}return null;};}function patchUpdates(_0x2ab79d){return function(_0x2444cf){try{jsonpatch[_0xefcb('0x21')](_0x2444cf,_0x2ab79d,!![]);}catch(_0x345629){return BPromise[_0xefcb('0x22')](_0x345629);}return _0x2444cf[_0xefcb('0x23')]();};}function saveUpdates(_0x52e7dd,_0x5844e2){return function(_0x5991c6){if(_0x5991c6){return _0x5991c6[_0xefcb('0x24')](_0x52e7dd)[_0xefcb('0x25')](function(_0x457ff6){return _0x457ff6;});}return null;};}function removeEntity(_0x1717b7,_0x20f51f){return function(_0x2285a3){if(_0x2285a3){return _0x2285a3[_0xefcb('0x26')]()['then'](function(){_0x1717b7[_0xefcb('0x1a')](0xcc)[_0xefcb('0x27')]();});}};}function handleEntityNotFound(_0xa42610,_0x11286f){return function(_0x18f4ef){if(!_0x18f4ef){_0xa42610[_0xefcb('0x28')](0x194);}return _0x18f4ef;};}function handleError(_0x16757b,_0x36521c){_0x36521c=_0x36521c||0x1f4;return function(_0x1c7ee1){logger[_0xefcb('0x29')](_0x1c7ee1[_0xefcb('0x2a')]);if(_0x1c7ee1[_0xefcb('0x2b')]){delete _0x1c7ee1[_0xefcb('0x2b')];}_0x16757b[_0xefcb('0x1a')](_0x36521c)[_0xefcb('0x2c')](_0x1c7ee1);};}exports['show']=function(_0x221f55,_0x3995cc){var _0x296427={'raw':![],'where':{'id':_0x221f55[_0xefcb('0x2d')]['id']}},_0x232d45={};_0x232d45[_0xefcb('0x2e')]=_[_0xefcb('0x2f')](db['DashboardItem']['rawAttributes']);_0x232d45[_0xefcb('0x30')]=_[_0xefcb('0x2f')](_0x221f55['query']);_0x232d45[_0xefcb('0x31')]=_[_0xefcb('0x32')](_0x232d45[_0xefcb('0x2e')],_0x232d45['query']);_0x296427[_0xefcb('0x33')]=_[_0xefcb('0x32')](_0x232d45[_0xefcb('0x2e')],qs['fields'](_0x221f55['query']['fields']));_0x296427['attributes']=_0x296427[_0xefcb('0x33')][_0xefcb('0x34')]?_0x296427[_0xefcb('0x33')]:_0x232d45[_0xefcb('0x2e')];if(_0x221f55[_0xefcb('0x30')][_0xefcb('0x35')]){_0x296427[_0xefcb('0x36')]=[{'all':!![]}];}_0x296427=_[_0xefcb('0x37')]({},_0x296427,_0x221f55[_0xefcb('0x38')]);return db[_0xefcb('0x39')][_0xefcb('0x3a')](_0x296427)[_0xefcb('0x25')](handleEntityNotFound(_0x3995cc,null))[_0xefcb('0x25')](respondWithResult(_0x3995cc,null))[_0xefcb('0x3b')](handleError(_0x3995cc,null));};exports[_0xefcb('0x26')]=function(_0x102933,_0x4b2a43){return db[_0xefcb('0x39')][_0xefcb('0x3a')]({'where':{'id':_0x102933[_0xefcb('0x2d')]['id']}})[_0xefcb('0x25')](handleEntityNotFound(_0x4b2a43,null))['then'](removeEntity(_0x4b2a43,null))[_0xefcb('0x3b')](handleError(_0x4b2a43,null));};function widgetAttributes(_0x5e5b5a){try{switch(_0x5e5b5a[_0xefcb('0x3c')]){case _0xefcb('0x3d'):return[{'name':_0xefcb('0x3e'),'value':_0x5e5b5a[_0xefcb('0x3e')]||(_0x5e5b5a['attrs']&&_0x5e5b5a[_0xefcb('0x3f')][0x0]?_0x5e5b5a[_0xefcb('0x3f')][0x0][_0xefcb('0x40')]:undefined)||'https://'}];case _0xefcb('0x41'):return[{'name':_0xefcb('0x42'),'value':_0x5e5b5a[_0xefcb('0x42')]||(_0x5e5b5a['attrs']&&_0x5e5b5a['attrs'][0x0]?_0x5e5b5a[_0xefcb('0x3f')][0x0]['value']:undefined)||''}];case'clock':return[{'name':_0xefcb('0x43'),'value':_0x5e5b5a[_0xefcb('0x43')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a['attrs'][0x0]?_0x5e5b5a['attrs'][0x0]['value']:undefined)||_0xefcb('0x44')},{'name':_0xefcb('0x45'),'value':_0x5e5b5a['attrTimezone']||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a['attrs'][0x1]?_0x5e5b5a[_0xefcb('0x3f')][0x1][_0xefcb('0x40')]:undefined)||_0xefcb('0x46')},{'name':_0xefcb('0x47'),'value':_0x5e5b5a[_0xefcb('0x47')]||(_0x5e5b5a['attrs']&&_0x5e5b5a['attrs'][0x2]?_0x5e5b5a[_0xefcb('0x3f')][0x2][_0xefcb('0x40')]:undefined)||0xc}];case'counter':return[{'name':'attrMetric','value':_0x5e5b5a['attrMetric']||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x0]?_0x5e5b5a['attrs'][0x0][_0xefcb('0x40')]:undefined)||'total'},{'name':_0xefcb('0x48'),'value':_0x5e5b5a[_0xefcb('0x48')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x1]?_0x5e5b5a[_0xefcb('0x3f')][0x1]['value']:undefined)||[]},{'name':_0xefcb('0x47'),'value':_0x5e5b5a['attrFontSize']||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a['attrs'][0x2]?_0x5e5b5a[_0xefcb('0x3f')][0x2]['value']:undefined)||0x14},{'name':_0xefcb('0x49'),'value':_0x5e5b5a['attrChannel']||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x3]?_0x5e5b5a[_0xefcb('0x3f')][0x3][_0xefcb('0x40')]:undefined)||_0xefcb('0x4a')},{'name':_0xefcb('0x4b'),'value':_0x5e5b5a['attrEmailAccounts']||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a['attrs'][0x4]?_0x5e5b5a[_0xefcb('0x3f')][0x4][_0xefcb('0x40')]:undefined)||''},{'name':_0xefcb('0x4c'),'value':_0x5e5b5a[_0xefcb('0x4c')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x5]?_0x5e5b5a['attrs'][0x5][_0xefcb('0x40')]:undefined)||''},{'name':_0xefcb('0x4d'),'value':_0x5e5b5a[_0xefcb('0x4d')]||(_0x5e5b5a['attrs']&&_0x5e5b5a['attrs'][0x6]?_0x5e5b5a[_0xefcb('0x3f')][0x6][_0xefcb('0x40')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x5e5b5a[_0xefcb('0x4e')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x7]?_0x5e5b5a[_0xefcb('0x3f')][0x7][_0xefcb('0x40')]:undefined)||''},{'name':_0xefcb('0x4f'),'value':_0x5e5b5a['attrWhatsappAccounts']||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x8]?_0x5e5b5a[_0xefcb('0x3f')][0x8][_0xefcb('0x40')]:undefined)||''},{'name':_0xefcb('0x50'),'value':_0x5e5b5a[_0xefcb('0x50')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a['attrs'][0x9]?_0x5e5b5a[_0xefcb('0x3f')][0x9][_0xefcb('0x40')]:undefined)||''}];case _0xefcb('0x51'):case _0xefcb('0x52'):return[{'name':_0xefcb('0x53'),'value':_0x5e5b5a[_0xefcb('0x53')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x0]?_0x5e5b5a[_0xefcb('0x3f')][0x0][_0xefcb('0x40')]:undefined)||_0xefcb('0x54')},{'name':_0xefcb('0x55'),'value':_0x5e5b5a[_0xefcb('0x55')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x1]?_0x5e5b5a[_0xefcb('0x3f')][0x1]['value']:undefined)||null},{'name':_0xefcb('0x56'),'value':_0x5e5b5a[_0xefcb('0x56')]||(_0x5e5b5a['attrs']&&_0x5e5b5a[_0xefcb('0x3f')][0x2]?_0x5e5b5a[_0xefcb('0x3f')][0x2][_0xefcb('0x40')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x5e5b5a['attrVoiceQueues']||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x3]?_0x5e5b5a[_0xefcb('0x3f')][0x3][_0xefcb('0x40')]:undefined)||[]},{'name':'attrChannel','value':_0x5e5b5a[_0xefcb('0x49')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x4]?_0x5e5b5a[_0xefcb('0x3f')][0x4][_0xefcb('0x40')]:undefined)||_0xefcb('0x4a')},{'name':_0xefcb('0x4b'),'value':_0x5e5b5a['attrEmailAccounts']||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x5]?_0x5e5b5a[_0xefcb('0x3f')][0x5][_0xefcb('0x40')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x5e5b5a[_0xefcb('0x4c')]||(_0x5e5b5a['attrs']&&_0x5e5b5a[_0xefcb('0x3f')][0x6]?_0x5e5b5a[_0xefcb('0x3f')][0x6][_0xefcb('0x40')]:undefined)||''},{'name':_0xefcb('0x4d'),'value':_0x5e5b5a[_0xefcb('0x4d')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a['attrs'][0x7]?_0x5e5b5a[_0xefcb('0x3f')][0x7][_0xefcb('0x40')]:undefined)||''},{'name':_0xefcb('0x4e'),'value':_0x5e5b5a[_0xefcb('0x4e')]||(_0x5e5b5a['attrs']&&_0x5e5b5a[_0xefcb('0x3f')][0x8]?_0x5e5b5a[_0xefcb('0x3f')][0x8][_0xefcb('0x40')]:undefined)||''},{'name':_0xefcb('0x4f'),'value':_0x5e5b5a['attrWhatsappAccounts']||(_0x5e5b5a['attrs']&&_0x5e5b5a[_0xefcb('0x3f')][0x9]?_0x5e5b5a[_0xefcb('0x3f')][0x9][_0xefcb('0x40')]:undefined)||''},{'name':_0xefcb('0x50'),'value':_0x5e5b5a[_0xefcb('0x50')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a['attrs'][0xa]?_0x5e5b5a[_0xefcb('0x3f')][0xa]['value']:undefined)||''}];case _0xefcb('0x57'):return[{'name':_0xefcb('0x58'),'type':_0x5e5b5a['reportType']||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x0]?_0x5e5b5a[_0xefcb('0x3f')][0x0]['type']:undefined)||null,'value':_0x5e5b5a[_0xefcb('0x58')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x0]?_0x5e5b5a[_0xefcb('0x3f')][0x0][_0xefcb('0x40')]:undefined)||null},{'name':_0xefcb('0x59'),'value':_0x5e5b5a[_0xefcb('0x59')]||(_0x5e5b5a[_0xefcb('0x3f')]&&_0x5e5b5a[_0xefcb('0x3f')][0x1]?_0x5e5b5a[_0xefcb('0x3f')][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x18e5a3){logger[_0xefcb('0x29')](_0xefcb('0x5a'),JSON[_0xefcb('0x5b')](_0x18e5a3));return[];}}exports[_0xefcb('0x5c')]=function(_0x16a9f0,_0x10d516){if(_0x16a9f0[_0xefcb('0x5d')]){_0x16a9f0[_0xefcb('0x5d')]['attrs']=widgetAttributes(_0x16a9f0[_0xefcb('0x5d')]);}return db[_0xefcb('0x39')][_0xefcb('0x5c')](_0x16a9f0[_0xefcb('0x5d')],{})[_0xefcb('0x25')](respondWithResult(_0x10d516,0xc9))[_0xefcb('0x3b')](handleError(_0x10d516,null));};exports[_0xefcb('0x24')]=function(_0x49a2e6,_0x537e0d){if(_0x49a2e6[_0xefcb('0x5d')]['id']){delete _0x49a2e6[_0xefcb('0x5d')]['id'];}_0x49a2e6['body'][_0xefcb('0x3f')]=widgetAttributes(_0x49a2e6[_0xefcb('0x5d')]);return db[_0xefcb('0x39')][_0xefcb('0x3a')]({'where':{'id':_0x49a2e6['params']['id']}})[_0xefcb('0x25')](handleEntityNotFound(_0x537e0d,null))[_0xefcb('0x25')](saveUpdates(_0x49a2e6[_0xefcb('0x5d')],null))[_0xefcb('0x25')](respondWithResult(_0x537e0d,null))[_0xefcb('0x3b')](handleError(_0x537e0d,null));};