Built motion from commit 1fa89557.|2.6.10
[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 _0x90b5=['attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrFaxAccounts','attrChatWebsites','web-report','attrRefresh','widgetAttributes:\x20%s','stringify','body','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','limit','count','offset','Content-Range','apply','save','update','destroy','error','stack','name','show','params','keys','DashboardItem','rawAttributes','query','filters','intersection','model','fields','length','includeAll','include','merge','options','find','then','catch','type','iframe','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat'];(function(_0x560f00,_0x2a24bb){var _0x4b3978=function(_0x158e77){while(--_0x158e77){_0x560f00['push'](_0x560f00['shift']());}};_0x4b3978(++_0x2a24bb);}(_0x90b5,0x139));var _0x590b=function(_0x45f27c,_0xb57241){_0x45f27c=_0x45f27c-0x0;var _0x15d4ba=_0x90b5[_0x45f27c];return _0x15d4ba;};'use strict';var emlformat=require(_0x590b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x590b('0x1'));var jsonpatch=require(_0x590b('0x2'));var rp=require(_0x590b('0x3'));var moment=require(_0x590b('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x590b('0x5'));var path=require(_0x590b('0x6'));var sox=require('sox');var csv=require(_0x590b('0x7'));var ejs=require(_0x590b('0x8'));var fs=require('fs');var fs_extra=require(_0x590b('0x9'));var _=require('lodash');var squel=require(_0x590b('0xa'));var crypto=require(_0x590b('0xb'));var jsforce=require(_0x590b('0xc'));var deskjs=require(_0x590b('0xd'));var toCsv=require(_0x590b('0x7'));var querystring=require(_0x590b('0xe'));var Papa=require(_0x590b('0xf'));var Redis=require(_0x590b('0x10'));var authService=require(_0x590b('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x590b('0x12'));var hardwareService=require(_0x590b('0x13'));var logger=require('../../config/logger')(_0x590b('0x14'));var utils=require('../../config/utils');var config=require(_0x590b('0x15'));var licenseUtil=require(_0x590b('0x16'));var db=require(_0x590b('0x17'))['db'];config[_0x590b('0x18')]=_['defaults'](config[_0x590b('0x18')],{'host':_0x590b('0x19'),'port':0x18eb});var socket=require(_0x590b('0x1a'))(new Redis(config[_0x590b('0x18')]));require(_0x590b('0x1b'))[_0x590b('0x1c')](socket);function respondWithStatusCode(_0x45ac04,_0x1460e8){_0x1460e8=_0x1460e8||0xcc;return function(_0x168bde){if(_0x168bde){return _0x45ac04[_0x590b('0x1d')](_0x1460e8);}return _0x45ac04[_0x590b('0x1e')](_0x1460e8)[_0x590b('0x1f')]();};}function respondWithResult(_0x3e4723,_0x378490){_0x378490=_0x378490||0xc8;return function(_0x3b9601){if(_0x3b9601){return _0x3e4723['status'](_0x378490)[_0x590b('0x20')](_0x3b9601);}};}function respondWithFilteredResult(_0x530e24,_0x5c788){return function(_0x115309){if(_0x115309){var _0xf05b00=typeof _0x5c788['offset']==='undefined'&&typeof _0x5c788[_0x590b('0x21')]==='undefined';var _0x21e771=_0x115309[_0x590b('0x22')];var _0x3fbeb2=_0xf05b00?0x0:_0x5c788['offset'];var _0x6d0a17=_0xf05b00?_0x115309[_0x590b('0x22')]:_0x5c788[_0x590b('0x23')]+_0x5c788[_0x590b('0x21')];var _0x4990ba;if(_0x6d0a17>=_0x21e771){_0x6d0a17=_0x21e771;_0x4990ba=0xc8;}else{_0x4990ba=0xce;}_0x530e24[_0x590b('0x1e')](_0x4990ba);return _0x530e24['set'](_0x590b('0x24'),_0x3fbeb2+'-'+_0x6d0a17+'/'+_0x21e771)[_0x590b('0x20')](_0x115309);}return null;};}function patchUpdates(_0x5bdaba){return function(_0x5d47a6){try{jsonpatch[_0x590b('0x25')](_0x5d47a6,_0x5bdaba,!![]);}catch(_0x2bcfca){return BPromise['reject'](_0x2bcfca);}return _0x5d47a6[_0x590b('0x26')]();};}function saveUpdates(_0x1045d5,_0x5c79aa){return function(_0x5ec97d){if(_0x5ec97d){return _0x5ec97d[_0x590b('0x27')](_0x1045d5)['then'](function(_0x39fead){return _0x39fead;});}return null;};}function removeEntity(_0x520095,_0x4d3ff9){return function(_0x2314d0){if(_0x2314d0){return _0x2314d0[_0x590b('0x28')]()['then'](function(){_0x520095[_0x590b('0x1e')](0xcc)[_0x590b('0x1f')]();});}};}function handleEntityNotFound(_0x91e491,_0x2914dd){return function(_0x320a45){if(!_0x320a45){_0x91e491['sendStatus'](0x194);}return _0x320a45;};}function handleError(_0x32d355,_0xd96ca3){_0xd96ca3=_0xd96ca3||0x1f4;return function(_0x333af8){logger[_0x590b('0x29')](_0x333af8[_0x590b('0x2a')]);if(_0x333af8[_0x590b('0x2b')]){delete _0x333af8['name'];}_0x32d355[_0x590b('0x1e')](_0xd96ca3)['send'](_0x333af8);};}exports[_0x590b('0x2c')]=function(_0x3f9fd0,_0x448ab3){var _0x33931e={'raw':![],'where':{'id':_0x3f9fd0[_0x590b('0x2d')]['id']}},_0x53a751={};_0x53a751['model']=_[_0x590b('0x2e')](db[_0x590b('0x2f')][_0x590b('0x30')]);_0x53a751[_0x590b('0x31')]=_[_0x590b('0x2e')](_0x3f9fd0['query']);_0x53a751[_0x590b('0x32')]=_[_0x590b('0x33')](_0x53a751[_0x590b('0x34')],_0x53a751[_0x590b('0x31')]);_0x33931e['attributes']=_['intersection'](_0x53a751[_0x590b('0x34')],qs[_0x590b('0x35')](_0x3f9fd0[_0x590b('0x31')][_0x590b('0x35')]));_0x33931e['attributes']=_0x33931e['attributes'][_0x590b('0x36')]?_0x33931e['attributes']:_0x53a751[_0x590b('0x34')];if(_0x3f9fd0[_0x590b('0x31')][_0x590b('0x37')]){_0x33931e[_0x590b('0x38')]=[{'all':!![]}];}_0x33931e=_[_0x590b('0x39')]({},_0x33931e,_0x3f9fd0[_0x590b('0x3a')]);return db[_0x590b('0x2f')][_0x590b('0x3b')](_0x33931e)[_0x590b('0x3c')](handleEntityNotFound(_0x448ab3,null))[_0x590b('0x3c')](respondWithResult(_0x448ab3,null))['catch'](handleError(_0x448ab3,null));};exports['destroy']=function(_0x322940,_0x446db1){return db[_0x590b('0x2f')][_0x590b('0x3b')]({'where':{'id':_0x322940[_0x590b('0x2d')]['id']}})['then'](handleEntityNotFound(_0x446db1,null))[_0x590b('0x3c')](removeEntity(_0x446db1,null))[_0x590b('0x3d')](handleError(_0x446db1,null));};function widgetAttributes(_0x3e5ca5){try{switch(_0x3e5ca5[_0x590b('0x3e')]){case _0x590b('0x3f'):return[{'name':'attrUrl','value':_0x3e5ca5[_0x590b('0x40')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5['attrs'][0x0]?_0x3e5ca5['attrs'][0x0][_0x590b('0x42')]:undefined)||'https://'}];case _0x590b('0x43'):return[{'name':_0x590b('0x44'),'value':_0x3e5ca5[_0x590b('0x44')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x0]?_0x3e5ca5[_0x590b('0x41')][0x0][_0x590b('0x42')]:undefined)||''}];case _0x590b('0x45'):return[{'name':_0x590b('0x46'),'value':_0x3e5ca5[_0x590b('0x46')]||(_0x3e5ca5['attrs']&&_0x3e5ca5[_0x590b('0x41')][0x0]?_0x3e5ca5[_0x590b('0x41')][0x0][_0x590b('0x42')]:undefined)||'HH:mm:ss'},{'name':_0x590b('0x47'),'value':_0x3e5ca5[_0x590b('0x47')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x1]?_0x3e5ca5[_0x590b('0x41')][0x1][_0x590b('0x42')]:undefined)||_0x590b('0x48')},{'name':_0x590b('0x49'),'value':_0x3e5ca5['attrFontSize']||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5['attrs'][0x2]?_0x3e5ca5[_0x590b('0x41')][0x2][_0x590b('0x42')]:undefined)||0xc}];case _0x590b('0x4a'):return[{'name':'attrMetric','value':_0x3e5ca5[_0x590b('0x4b')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x0]?_0x3e5ca5[_0x590b('0x41')][0x0]['value']:undefined)||_0x590b('0x4c')},{'name':_0x590b('0x4d'),'value':_0x3e5ca5['attrVoiceQueues']||(_0x3e5ca5['attrs']&&_0x3e5ca5['attrs'][0x1]?_0x3e5ca5[_0x590b('0x41')][0x1][_0x590b('0x42')]:undefined)||[]},{'name':_0x590b('0x49'),'value':_0x3e5ca5['attrFontSize']||(_0x3e5ca5['attrs']&&_0x3e5ca5[_0x590b('0x41')][0x2]?_0x3e5ca5[_0x590b('0x41')][0x2]['value']:undefined)||0x14},{'name':_0x590b('0x4e'),'value':_0x3e5ca5[_0x590b('0x4e')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x3]?_0x3e5ca5[_0x590b('0x41')][0x3][_0x590b('0x42')]:undefined)||_0x590b('0x4f')},{'name':_0x590b('0x50'),'value':_0x3e5ca5[_0x590b('0x50')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x4]?_0x3e5ca5[_0x590b('0x41')][0x4][_0x590b('0x42')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x3e5ca5['attrFaxAccounts']||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x5]?_0x3e5ca5[_0x590b('0x41')][0x5][_0x590b('0x42')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x3e5ca5[_0x590b('0x51')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x6]?_0x3e5ca5['attrs'][0x6][_0x590b('0x42')]:undefined)||''},{'name':_0x590b('0x52'),'value':_0x3e5ca5['attrOpenchannelAccounts']||(_0x3e5ca5['attrs']&&_0x3e5ca5[_0x590b('0x41')][0x7]?_0x3e5ca5[_0x590b('0x41')][0x7]['value']:undefined)||''},{'name':_0x590b('0x53'),'value':_0x3e5ca5[_0x590b('0x53')]||(_0x3e5ca5['attrs']&&_0x3e5ca5[_0x590b('0x41')][0x8]?_0x3e5ca5[_0x590b('0x41')][0x8][_0x590b('0x42')]:undefined)||''},{'name':'attrChatWebsites','value':_0x3e5ca5['attrChatWebsites']||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x9]?_0x3e5ca5['attrs'][0x9][_0x590b('0x42')]:undefined)||''}];case _0x590b('0x54'):case _0x590b('0x55'):return[{'name':_0x590b('0x56'),'value':_0x3e5ca5[_0x590b('0x56')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x0]?_0x3e5ca5['attrs'][0x0][_0x590b('0x42')]:undefined)||'total'},{'name':_0x590b('0x57'),'value':_0x3e5ca5[_0x590b('0x57')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5['attrs'][0x1]?_0x3e5ca5['attrs'][0x1][_0x590b('0x42')]:undefined)||null},{'name':_0x590b('0x58'),'value':_0x3e5ca5[_0x590b('0x58')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5['attrs'][0x2]?_0x3e5ca5[_0x590b('0x41')][0x2]['value']:undefined)||null},{'name':'attrVoiceQueues','value':_0x3e5ca5[_0x590b('0x4d')]||(_0x3e5ca5['attrs']&&_0x3e5ca5[_0x590b('0x41')][0x3]?_0x3e5ca5['attrs'][0x3][_0x590b('0x42')]:undefined)||[]},{'name':'attrChannel','value':_0x3e5ca5[_0x590b('0x4e')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x4]?_0x3e5ca5[_0x590b('0x41')][0x4][_0x590b('0x42')]:undefined)||_0x590b('0x4f')},{'name':_0x590b('0x50'),'value':_0x3e5ca5[_0x590b('0x50')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5['attrs'][0x5]?_0x3e5ca5[_0x590b('0x41')][0x5][_0x590b('0x42')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x3e5ca5[_0x590b('0x59')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x6]?_0x3e5ca5[_0x590b('0x41')][0x6]['value']:undefined)||''},{'name':_0x590b('0x51'),'value':_0x3e5ca5[_0x590b('0x51')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x7]?_0x3e5ca5['attrs'][0x7][_0x590b('0x42')]:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x3e5ca5[_0x590b('0x52')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x8]?_0x3e5ca5[_0x590b('0x41')][0x8]['value']:undefined)||''},{'name':_0x590b('0x53'),'value':_0x3e5ca5['attrWhatsappAccounts']||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x9]?_0x3e5ca5[_0x590b('0x41')][0x9]['value']:undefined)||''},{'name':_0x590b('0x5a'),'value':_0x3e5ca5['attrChatWebsites']||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5['attrs'][0xa]?_0x3e5ca5[_0x590b('0x41')][0xa][_0x590b('0x42')]:undefined)||''}];case _0x590b('0x5b'):return[{'name':'attrReport','type':_0x3e5ca5['reportType']||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5[_0x590b('0x41')][0x0]?_0x3e5ca5[_0x590b('0x41')][0x0][_0x590b('0x3e')]:undefined)||null,'value':_0x3e5ca5['attrReport']||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5['attrs'][0x0]?_0x3e5ca5[_0x590b('0x41')][0x0][_0x590b('0x42')]:undefined)||null},{'name':_0x590b('0x5c'),'value':_0x3e5ca5[_0x590b('0x5c')]||(_0x3e5ca5[_0x590b('0x41')]&&_0x3e5ca5['attrs'][0x1]?_0x3e5ca5['attrs'][0x1][_0x590b('0x42')]:undefined)||0x0}];default:return[];}}catch(_0x4c904d){logger['error'](_0x590b('0x5d'),JSON[_0x590b('0x5e')](_0x4c904d));return[];}}exports['create']=function(_0x19ad11,_0x455b34){if(_0x19ad11['body']){_0x19ad11[_0x590b('0x5f')][_0x590b('0x41')]=widgetAttributes(_0x19ad11['body']);}return db[_0x590b('0x2f')]['create'](_0x19ad11[_0x590b('0x5f')],{})[_0x590b('0x3c')](respondWithResult(_0x455b34,0xc9))[_0x590b('0x3d')](handleError(_0x455b34,null));};exports['update']=function(_0x28d25d,_0x279240){if(_0x28d25d[_0x590b('0x5f')]['id']){delete _0x28d25d[_0x590b('0x5f')]['id'];}_0x28d25d['body'][_0x590b('0x41')]=widgetAttributes(_0x28d25d[_0x590b('0x5f')]);return db['DashboardItem'][_0x590b('0x3b')]({'where':{'id':_0x28d25d['params']['id']}})[_0x590b('0x3c')](handleEntityNotFound(_0x279240,null))[_0x590b('0x3c')](saveUpdates(_0x28d25d[_0x590b('0x5f')],null))[_0x590b('0x3c')](respondWithResult(_0x279240,null))[_0x590b('0x3d')](handleError(_0x279240,null));};