8947929f0c4b30c1402efb9ff6057326bf166568
[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 _0xd69e=['defaults','./dashboardItem.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','reject','update','then','destroy','error','stack','name','send','params','model','keys','rawAttributes','query','filters','intersection','fields','attributes','length','includeAll','include','find','catch','type','iframe','attrUrl','attrs','https://','attrPath','clock','attrHourFormat','value','attrTimezone','0.00','attrFontSize','counter','total','attrVoiceQueues','attrChannel','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','DashboardItem','create','eml-format','rimraf','zip-dir','request-promise','moment','sox','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','redis'];(function(_0x21d0e6,_0x5a7aa6){var _0x1cc2d1=function(_0x25ded8){while(--_0x25ded8){_0x21d0e6['push'](_0x21d0e6['shift']());}};_0x1cc2d1(++_0x5a7aa6);}(_0xd69e,0xa0));var _0xed69=function(_0x138adb,_0x193fee){_0x138adb=_0x138adb-0x0;var _0x1b27f2=_0xd69e[_0x138adb];return _0x1b27f2;};'use strict';var emlformat=require(_0xed69('0x0'));var rimraf=require(_0xed69('0x1'));var zipdir=require(_0xed69('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xed69('0x3'));var moment=require(_0xed69('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xed69('0x5'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xed69('0x6'));var _=require(_0xed69('0x7'));var squel=require(_0xed69('0x8'));var crypto=require(_0xed69('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xed69('0xa'));var toCsv=require('to-csv');var querystring=require(_0xed69('0xb'));var Papa=require(_0xed69('0xc'));var Redis=require('ioredis');var authService=require(_0xed69('0xd'));var qs=require(_0xed69('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xed69('0xf'));var logger=require('../../config/logger')(_0xed69('0x10'));var utils=require(_0xed69('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0xed69('0x12'));var db=require('../../mysqldb')['db'];config[_0xed69('0x13')]=_[_0xed69('0x14')](config[_0xed69('0x13')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xed69('0x13')]));require(_0xed69('0x15'))[_0xed69('0x16')](socket);function respondWithStatusCode(_0x476524,_0x12cfd5){_0x12cfd5=_0x12cfd5||0xcc;return function(_0x5a9ffd){if(_0x5a9ffd){return _0x476524[_0xed69('0x17')](_0x12cfd5);}return _0x476524[_0xed69('0x18')](_0x12cfd5)[_0xed69('0x19')]();};}function respondWithResult(_0x118ab3,_0x35d924){_0x35d924=_0x35d924||0xc8;return function(_0x2990fa){if(_0x2990fa){return _0x118ab3[_0xed69('0x18')](_0x35d924)[_0xed69('0x1a')](_0x2990fa);}};}function respondWithFilteredResult(_0x1e7446,_0xa510c1){return function(_0x4df35e){if(_0x4df35e){var _0x4843bf=typeof _0xa510c1['offset']===_0xed69('0x1b')&&typeof _0xa510c1[_0xed69('0x1c')]===_0xed69('0x1b');var _0x576a71=_0x4df35e[_0xed69('0x1d')];var _0x11c1fc=_0x4843bf?0x0:_0xa510c1['offset'];var _0x3ed869=_0x4843bf?_0x4df35e[_0xed69('0x1d')]:_0xa510c1[_0xed69('0x1e')]+_0xa510c1[_0xed69('0x1c')];var _0x4ef2fe;if(_0x3ed869>=_0x576a71){_0x3ed869=_0x576a71;_0x4ef2fe=0xc8;}else{_0x4ef2fe=0xce;}_0x1e7446[_0xed69('0x18')](_0x4ef2fe);return _0x1e7446[_0xed69('0x1f')]('Content-Range',_0x11c1fc+'-'+_0x3ed869+'/'+_0x576a71)[_0xed69('0x1a')](_0x4df35e);}return null;};}function patchUpdates(_0x350f01){return function(_0x257550){try{jsonpatch[_0xed69('0x20')](_0x257550,_0x350f01,!![]);}catch(_0xa3486a){return BPromise[_0xed69('0x21')](_0xa3486a);}return _0x257550['save']();};}function saveUpdates(_0x35e7ec,_0x91b170){return function(_0x115558){if(_0x115558){return _0x115558[_0xed69('0x22')](_0x35e7ec)[_0xed69('0x23')](function(_0xd182bd){return _0xd182bd;});}return null;};}function removeEntity(_0x33f01f,_0x1e34c8){return function(_0x2156ad){if(_0x2156ad){return _0x2156ad[_0xed69('0x24')]()[_0xed69('0x23')](function(){_0x33f01f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x383a83,_0x228091){return function(_0x2c77d4){if(!_0x2c77d4){_0x383a83[_0xed69('0x17')](0x194);}return _0x2c77d4;};}function handleError(_0xbb7904,_0x21be83){_0x21be83=_0x21be83||0x1f4;return function(_0x5b6ee3){logger[_0xed69('0x25')](_0x5b6ee3[_0xed69('0x26')]);if(_0x5b6ee3[_0xed69('0x27')]){delete _0x5b6ee3['name'];}_0xbb7904['status'](_0x21be83)[_0xed69('0x28')](_0x5b6ee3);};}exports['show']=function(_0x379706,_0x234c8a){var _0x164316={'raw':![],'where':{'id':_0x379706[_0xed69('0x29')]['id']}},_0x1f4e54={};_0x1f4e54[_0xed69('0x2a')]=_[_0xed69('0x2b')](db['DashboardItem'][_0xed69('0x2c')]);_0x1f4e54[_0xed69('0x2d')]=_[_0xed69('0x2b')](_0x379706[_0xed69('0x2d')]);_0x1f4e54[_0xed69('0x2e')]=_[_0xed69('0x2f')](_0x1f4e54[_0xed69('0x2a')],_0x1f4e54['query']);_0x164316['attributes']=_[_0xed69('0x2f')](_0x1f4e54[_0xed69('0x2a')],qs[_0xed69('0x30')](_0x379706[_0xed69('0x2d')][_0xed69('0x30')]));_0x164316[_0xed69('0x31')]=_0x164316['attributes'][_0xed69('0x32')]?_0x164316[_0xed69('0x31')]:_0x1f4e54[_0xed69('0x2a')];if(_0x379706[_0xed69('0x2d')][_0xed69('0x33')]){_0x164316[_0xed69('0x34')]=[{'all':!![]}];}_0x164316=_['merge']({},_0x164316,_0x379706['options']);return db['DashboardItem'][_0xed69('0x35')](_0x164316)[_0xed69('0x23')](handleEntityNotFound(_0x234c8a,null))[_0xed69('0x23')](respondWithResult(_0x234c8a,null))[_0xed69('0x36')](handleError(_0x234c8a,null));};exports['destroy']=function(_0x347311,_0x338be3){return db['DashboardItem'][_0xed69('0x35')]({'where':{'id':_0x347311[_0xed69('0x29')]['id']}})[_0xed69('0x23')](handleEntityNotFound(_0x338be3,null))[_0xed69('0x23')](removeEntity(_0x338be3,null))['catch'](handleError(_0x338be3,null));};function widgetAttributes(_0x13f04c){try{switch(_0x13f04c[_0xed69('0x37')]){case _0xed69('0x38'):return[{'name':_0xed69('0x39'),'value':_0x13f04c[_0xed69('0x39')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x0]?_0x13f04c[_0xed69('0x3a')][0x0]['value']:undefined)||_0xed69('0x3b')}];case'custom':return[{'name':_0xed69('0x3c'),'value':_0x13f04c[_0xed69('0x3c')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c['attrs'][0x0]?_0x13f04c[_0xed69('0x3a')][0x0]['value']:undefined)||''}];case _0xed69('0x3d'):return[{'name':_0xed69('0x3e'),'value':_0x13f04c[_0xed69('0x3e')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x0]?_0x13f04c[_0xed69('0x3a')][0x0][_0xed69('0x3f')]:undefined)||'HH:mm:ss'},{'name':'attrTimezone','value':_0x13f04c[_0xed69('0x40')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x1]?_0x13f04c[_0xed69('0x3a')][0x1]['value']:undefined)||_0xed69('0x41')},{'name':_0xed69('0x42'),'value':_0x13f04c[_0xed69('0x42')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x2]?_0x13f04c[_0xed69('0x3a')][0x2][_0xed69('0x3f')]:undefined)||0xc}];case _0xed69('0x43'):return[{'name':'attrMetric','value':_0x13f04c['attrMetric']||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x0]?_0x13f04c[_0xed69('0x3a')][0x0]['value']:undefined)||_0xed69('0x44')},{'name':_0xed69('0x45'),'value':_0x13f04c[_0xed69('0x45')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x1]?_0x13f04c[_0xed69('0x3a')][0x1][_0xed69('0x3f')]:undefined)||[]},{'name':_0xed69('0x42'),'value':_0x13f04c['attrFontSize']||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c['attrs'][0x2]?_0x13f04c[_0xed69('0x3a')][0x2]['value']:undefined)||0x14},{'name':_0xed69('0x46'),'value':_0x13f04c[_0xed69('0x46')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x3]?_0x13f04c['attrs'][0x3][_0xed69('0x3f')]:undefined)||'voice'},{'name':_0xed69('0x47'),'value':_0x13f04c[_0xed69('0x47')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x4]?_0x13f04c[_0xed69('0x3a')][0x4][_0xed69('0x3f')]:undefined)||''},{'name':_0xed69('0x48'),'value':_0x13f04c[_0xed69('0x48')]||(_0x13f04c['attrs']&&_0x13f04c[_0xed69('0x3a')][0x5]?_0x13f04c[_0xed69('0x3a')][0x5][_0xed69('0x3f')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x13f04c[_0xed69('0x49')]||(_0x13f04c['attrs']&&_0x13f04c[_0xed69('0x3a')][0x6]?_0x13f04c[_0xed69('0x3a')][0x6][_0xed69('0x3f')]:undefined)||''},{'name':_0xed69('0x4a'),'value':_0x13f04c[_0xed69('0x4a')]||(_0x13f04c['attrs']&&_0x13f04c[_0xed69('0x3a')][0x7]?_0x13f04c[_0xed69('0x3a')][0x7]['value']:undefined)||''},{'name':_0xed69('0x4b'),'value':_0x13f04c[_0xed69('0x4b')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c['attrs'][0x8]?_0x13f04c['attrs'][0x8]['value']:undefined)||''},{'name':'attrChatWebsites','value':_0x13f04c[_0xed69('0x4c')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x9]?_0x13f04c[_0xed69('0x3a')][0x9]['value']:undefined)||''}];case _0xed69('0x4d'):case'pie-chart':return[{'name':'attrSerie1','value':_0x13f04c[_0xed69('0x4e')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x0]?_0x13f04c[_0xed69('0x3a')][0x0]['value']:undefined)||'total'},{'name':_0xed69('0x4f'),'value':_0x13f04c['attrSerie2']||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x1]?_0x13f04c[_0xed69('0x3a')][0x1]['value']:undefined)||null},{'name':_0xed69('0x50'),'value':_0x13f04c[_0xed69('0x50')]||(_0x13f04c['attrs']&&_0x13f04c[_0xed69('0x3a')][0x2]?_0x13f04c[_0xed69('0x3a')][0x2][_0xed69('0x3f')]:undefined)||null},{'name':_0xed69('0x45'),'value':_0x13f04c['attrVoiceQueues']||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c['attrs'][0x3]?_0x13f04c['attrs'][0x3][_0xed69('0x3f')]:undefined)||[]},{'name':_0xed69('0x46'),'value':_0x13f04c[_0xed69('0x46')]||(_0x13f04c['attrs']&&_0x13f04c['attrs'][0x4]?_0x13f04c[_0xed69('0x3a')][0x4][_0xed69('0x3f')]:undefined)||'voice'},{'name':'attrEmailAccounts','value':_0x13f04c[_0xed69('0x47')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x5]?_0x13f04c[_0xed69('0x3a')][0x5][_0xed69('0x3f')]:undefined)||''},{'name':_0xed69('0x48'),'value':_0x13f04c[_0xed69('0x48')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c['attrs'][0x6]?_0x13f04c['attrs'][0x6][_0xed69('0x3f')]:undefined)||''},{'name':_0xed69('0x49'),'value':_0x13f04c[_0xed69('0x49')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c['attrs'][0x7]?_0x13f04c[_0xed69('0x3a')][0x7][_0xed69('0x3f')]:undefined)||''},{'name':_0xed69('0x4a'),'value':_0x13f04c[_0xed69('0x4a')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x8]?_0x13f04c['attrs'][0x8][_0xed69('0x3f')]:undefined)||''},{'name':_0xed69('0x4b'),'value':_0x13f04c['attrWhatsappAccounts']||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x9]?_0x13f04c[_0xed69('0x3a')][0x9][_0xed69('0x3f')]:undefined)||''},{'name':_0xed69('0x4c'),'value':_0x13f04c[_0xed69('0x4c')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0xa]?_0x13f04c[_0xed69('0x3a')][0xa][_0xed69('0x3f')]:undefined)||''}];case _0xed69('0x51'):return[{'name':_0xed69('0x52'),'type':_0x13f04c[_0xed69('0x53')]||(_0x13f04c[_0xed69('0x3a')]&&_0x13f04c[_0xed69('0x3a')][0x0]?_0x13f04c[_0xed69('0x3a')][0x0][_0xed69('0x37')]:undefined)||null,'value':_0x13f04c[_0xed69('0x52')]||(_0x13f04c['attrs']&&_0x13f04c['attrs'][0x0]?_0x13f04c[_0xed69('0x3a')][0x0][_0xed69('0x3f')]:undefined)||null},{'name':_0xed69('0x54'),'value':_0x13f04c[_0xed69('0x54')]||(_0x13f04c['attrs']&&_0x13f04c['attrs'][0x1]?_0x13f04c[_0xed69('0x3a')][0x1][_0xed69('0x3f')]:undefined)||0x0}];default:return[];}}catch(_0x3fb6b5){logger[_0xed69('0x25')](_0xed69('0x55'),JSON[_0xed69('0x56')](_0x3fb6b5));return[];}}exports['create']=function(_0x39d520,_0x271a43){if(_0x39d520[_0xed69('0x57')]){_0x39d520[_0xed69('0x57')][_0xed69('0x3a')]=widgetAttributes(_0x39d520[_0xed69('0x57')]);}return db[_0xed69('0x58')][_0xed69('0x59')](_0x39d520[_0xed69('0x57')],{})[_0xed69('0x23')](respondWithResult(_0x271a43,0xc9))['catch'](handleError(_0x271a43,null));};exports['update']=function(_0x47f006,_0x5bed4b){if(_0x47f006[_0xed69('0x57')]['id']){delete _0x47f006['body']['id'];}_0x47f006[_0xed69('0x57')][_0xed69('0x3a')]=widgetAttributes(_0x47f006[_0xed69('0x57')]);return db[_0xed69('0x58')][_0xed69('0x35')]({'where':{'id':_0x47f006[_0xed69('0x29')]['id']}})[_0xed69('0x23')](handleEntityNotFound(_0x5bed4b,null))['then'](saveUpdates(_0x47f006[_0xed69('0x57')],null))[_0xed69('0x23')](respondWithResult(_0x5bed4b,null))['catch'](handleError(_0x5bed4b,null));};