76b1f8b9f6b8992edab1b4e4095ba2fa53851861
[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 _0x27eb=['HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','stringify','body','create','update','find','eml-format','rimraf','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','localhost','redis','register','sendStatus','end','status','json','offset','undefined','limit','Content-Range','reject','save','then','destroy','error','stack','name','send','show','params','model','keys','DashboardItem','rawAttributes','query','intersection','attributes','fields','length','includeAll','include','catch','type','iframe','attrUrl','attrs','value','custom','attrPath','clock','attrHourFormat'];(function(_0x777421,_0x1f9866){var _0x2bdaa2=function(_0x500041){while(--_0x500041){_0x777421['push'](_0x777421['shift']());}};_0x2bdaa2(++_0x1f9866);}(_0x27eb,0xd0));var _0xb27e=function(_0x45d48a,_0xc2538f){_0x45d48a=_0x45d48a-0x0;var _0x93e5d0=_0x27eb[_0x45d48a];return _0x93e5d0;};'use strict';var emlformat=require(_0xb27e('0x0'));var rimraf=require(_0xb27e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xb27e('0x2'));var moment=require(_0xb27e('0x3'));var BPromise=require(_0xb27e('0x4'));var Mustache=require('mustache');var util=require(_0xb27e('0x5'));var path=require(_0xb27e('0x6'));var sox=require(_0xb27e('0x7'));var csv=require(_0xb27e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb27e('0x9'));var _=require(_0xb27e('0xa'));var squel=require(_0xb27e('0xb'));var crypto=require(_0xb27e('0xc'));var jsforce=require(_0xb27e('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xb27e('0x8'));var querystring=require(_0xb27e('0xe'));var Papa=require(_0xb27e('0xf'));var Redis=require(_0xb27e('0x10'));var authService=require(_0xb27e('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xb27e('0x12'));var hardwareService=require(_0xb27e('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0xb27e('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xb27e('0x15'));var db=require(_0xb27e('0x16'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0xb27e('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb27e('0x18')]));require('./dashboardItem.socket')[_0xb27e('0x19')](socket);function respondWithStatusCode(_0x5aa86f,_0x1453e5){_0x1453e5=_0x1453e5||0xcc;return function(_0x1cb58c){if(_0x1cb58c){return _0x5aa86f[_0xb27e('0x1a')](_0x1453e5);}return _0x5aa86f['status'](_0x1453e5)[_0xb27e('0x1b')]();};}function respondWithResult(_0x1d14bb,_0x24fc3e){_0x24fc3e=_0x24fc3e||0xc8;return function(_0x188073){if(_0x188073){return _0x1d14bb[_0xb27e('0x1c')](_0x24fc3e)[_0xb27e('0x1d')](_0x188073);}};}function respondWithFilteredResult(_0x25ce70,_0x336679){return function(_0x317f4e){if(_0x317f4e){var _0x48b70f=typeof _0x336679[_0xb27e('0x1e')]===_0xb27e('0x1f')&&typeof _0x336679[_0xb27e('0x20')]==='undefined';var _0x352856=_0x317f4e['count'];var _0x517932=_0x48b70f?0x0:_0x336679[_0xb27e('0x1e')];var _0x15dc7e=_0x48b70f?_0x317f4e['count']:_0x336679[_0xb27e('0x1e')]+_0x336679[_0xb27e('0x20')];var _0x16c950;if(_0x15dc7e>=_0x352856){_0x15dc7e=_0x352856;_0x16c950=0xc8;}else{_0x16c950=0xce;}_0x25ce70[_0xb27e('0x1c')](_0x16c950);return _0x25ce70['set'](_0xb27e('0x21'),_0x517932+'-'+_0x15dc7e+'/'+_0x352856)['json'](_0x317f4e);}return null;};}function patchUpdates(_0x19c0f2){return function(_0x2b8f05){try{jsonpatch['apply'](_0x2b8f05,_0x19c0f2,!![]);}catch(_0x58fc84){return BPromise[_0xb27e('0x22')](_0x58fc84);}return _0x2b8f05[_0xb27e('0x23')]();};}function saveUpdates(_0x3703ab,_0x3c4aa2){return function(_0x1e1bb9){if(_0x1e1bb9){return _0x1e1bb9['update'](_0x3703ab)[_0xb27e('0x24')](function(_0x4cba0b){return _0x4cba0b;});}return null;};}function removeEntity(_0x3972bc,_0x1ac460){return function(_0x289bb5){if(_0x289bb5){return _0x289bb5[_0xb27e('0x25')]()[_0xb27e('0x24')](function(){_0x3972bc['status'](0xcc)[_0xb27e('0x1b')]();});}};}function handleEntityNotFound(_0x5bae7c,_0x2839cf){return function(_0x2f44f3){if(!_0x2f44f3){_0x5bae7c[_0xb27e('0x1a')](0x194);}return _0x2f44f3;};}function handleError(_0x10dfc1,_0x3da666){_0x3da666=_0x3da666||0x1f4;return function(_0x35169a){logger[_0xb27e('0x26')](_0x35169a[_0xb27e('0x27')]);if(_0x35169a[_0xb27e('0x28')]){delete _0x35169a['name'];}_0x10dfc1[_0xb27e('0x1c')](_0x3da666)[_0xb27e('0x29')](_0x35169a);};}exports[_0xb27e('0x2a')]=function(_0x41fc88,_0x58a1a9){var _0x1ba773={'raw':![],'where':{'id':_0x41fc88[_0xb27e('0x2b')]['id']}},_0x28927a={};_0x28927a[_0xb27e('0x2c')]=_[_0xb27e('0x2d')](db[_0xb27e('0x2e')][_0xb27e('0x2f')]);_0x28927a['query']=_['keys'](_0x41fc88[_0xb27e('0x30')]);_0x28927a['filters']=_[_0xb27e('0x31')](_0x28927a['model'],_0x28927a[_0xb27e('0x30')]);_0x1ba773[_0xb27e('0x32')]=_[_0xb27e('0x31')](_0x28927a[_0xb27e('0x2c')],qs[_0xb27e('0x33')](_0x41fc88[_0xb27e('0x30')]['fields']));_0x1ba773[_0xb27e('0x32')]=_0x1ba773['attributes'][_0xb27e('0x34')]?_0x1ba773['attributes']:_0x28927a[_0xb27e('0x2c')];if(_0x41fc88['query'][_0xb27e('0x35')]){_0x1ba773[_0xb27e('0x36')]=[{'all':!![]}];}_0x1ba773=_['merge']({},_0x1ba773,_0x41fc88['options']);return db[_0xb27e('0x2e')]['find'](_0x1ba773)['then'](handleEntityNotFound(_0x58a1a9,null))['then'](respondWithResult(_0x58a1a9,null))[_0xb27e('0x37')](handleError(_0x58a1a9,null));};exports[_0xb27e('0x25')]=function(_0x583414,_0xa6ff7b){return db[_0xb27e('0x2e')]['find']({'where':{'id':_0x583414['params']['id']}})[_0xb27e('0x24')](handleEntityNotFound(_0xa6ff7b,null))['then'](removeEntity(_0xa6ff7b,null))[_0xb27e('0x37')](handleError(_0xa6ff7b,null));};function widgetAttributes(_0x551038){try{switch(_0x551038[_0xb27e('0x38')]){case _0xb27e('0x39'):return[{'name':_0xb27e('0x3a'),'value':_0x551038[_0xb27e('0x3a')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x0]?_0x551038[_0xb27e('0x3b')][0x0][_0xb27e('0x3c')]:undefined)||'https://'}];case _0xb27e('0x3d'):return[{'name':_0xb27e('0x3e'),'value':_0x551038[_0xb27e('0x3e')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x0]?_0x551038['attrs'][0x0]['value']:undefined)||''}];case _0xb27e('0x3f'):return[{'name':_0xb27e('0x40'),'value':_0x551038[_0xb27e('0x40')]||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x0]?_0x551038[_0xb27e('0x3b')][0x0][_0xb27e('0x3c')]:undefined)||_0xb27e('0x41')},{'name':_0xb27e('0x42'),'value':_0x551038[_0xb27e('0x42')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038['attrs'][0x1]?_0x551038['attrs'][0x1][_0xb27e('0x3c')]:undefined)||_0xb27e('0x43')},{'name':_0xb27e('0x44'),'value':_0x551038[_0xb27e('0x44')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x2]?_0x551038[_0xb27e('0x3b')][0x2][_0xb27e('0x3c')]:undefined)||0xc}];case'counter':return[{'name':_0xb27e('0x45'),'value':_0x551038[_0xb27e('0x45')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x0]?_0x551038['attrs'][0x0][_0xb27e('0x3c')]:undefined)||'total'},{'name':'attrVoiceQueues','value':_0x551038[_0xb27e('0x46')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038['attrs'][0x1]?_0x551038[_0xb27e('0x3b')][0x1][_0xb27e('0x3c')]:undefined)||[]},{'name':_0xb27e('0x44'),'value':_0x551038[_0xb27e('0x44')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x2]?_0x551038[_0xb27e('0x3b')][0x2]['value']:undefined)||0x14},{'name':_0xb27e('0x47'),'value':_0x551038['attrChannel']||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x3]?_0x551038[_0xb27e('0x3b')][0x3][_0xb27e('0x3c')]:undefined)||_0xb27e('0x48')},{'name':_0xb27e('0x49'),'value':_0x551038['attrEmailAccounts']||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x4]?_0x551038[_0xb27e('0x3b')][0x4][_0xb27e('0x3c')]:undefined)||''},{'name':_0xb27e('0x4a'),'value':_0x551038[_0xb27e('0x4a')]||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x5]?_0x551038[_0xb27e('0x3b')][0x5][_0xb27e('0x3c')]:undefined)||''},{'name':_0xb27e('0x4b'),'value':_0x551038[_0xb27e('0x4b')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x6]?_0x551038[_0xb27e('0x3b')][0x6][_0xb27e('0x3c')]:undefined)||''},{'name':_0xb27e('0x4c'),'value':_0x551038[_0xb27e('0x4c')]||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x7]?_0x551038['attrs'][0x7][_0xb27e('0x3c')]:undefined)||''},{'name':_0xb27e('0x4d'),'value':_0x551038[_0xb27e('0x4d')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x8]?_0x551038[_0xb27e('0x3b')][0x8][_0xb27e('0x3c')]:undefined)||''},{'name':_0xb27e('0x4e'),'value':_0x551038['attrChatWebsites']||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x9]?_0x551038[_0xb27e('0x3b')][0x9][_0xb27e('0x3c')]:undefined)||''}];case'multibar-chart':case _0xb27e('0x4f'):return[{'name':'attrSerie1','value':_0x551038[_0xb27e('0x50')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x0]?_0x551038['attrs'][0x0][_0xb27e('0x3c')]:undefined)||'total'},{'name':_0xb27e('0x51'),'value':_0x551038[_0xb27e('0x51')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x1]?_0x551038['attrs'][0x1][_0xb27e('0x3c')]:undefined)||null},{'name':_0xb27e('0x52'),'value':_0x551038[_0xb27e('0x52')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x2]?_0x551038[_0xb27e('0x3b')][0x2][_0xb27e('0x3c')]:undefined)||null},{'name':_0xb27e('0x46'),'value':_0x551038[_0xb27e('0x46')]||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x3]?_0x551038['attrs'][0x3]['value']:undefined)||[]},{'name':_0xb27e('0x47'),'value':_0x551038[_0xb27e('0x47')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x4]?_0x551038[_0xb27e('0x3b')][0x4]['value']:undefined)||'voice'},{'name':_0xb27e('0x49'),'value':_0x551038[_0xb27e('0x49')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x5]?_0x551038[_0xb27e('0x3b')][0x5][_0xb27e('0x3c')]:undefined)||''},{'name':_0xb27e('0x4a'),'value':_0x551038[_0xb27e('0x4a')]||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x6]?_0x551038[_0xb27e('0x3b')][0x6]['value']:undefined)||''},{'name':_0xb27e('0x4b'),'value':_0x551038[_0xb27e('0x4b')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x7]?_0x551038[_0xb27e('0x3b')][0x7][_0xb27e('0x3c')]:undefined)||''},{'name':_0xb27e('0x4c'),'value':_0x551038[_0xb27e('0x4c')]||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x8]?_0x551038[_0xb27e('0x3b')][0x8][_0xb27e('0x3c')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x551038[_0xb27e('0x4d')]||(_0x551038['attrs']&&_0x551038['attrs'][0x9]?_0x551038[_0xb27e('0x3b')][0x9][_0xb27e('0x3c')]:undefined)||''},{'name':_0xb27e('0x4e'),'value':_0x551038[_0xb27e('0x4e')]||(_0x551038[_0xb27e('0x3b')]&&_0x551038['attrs'][0xa]?_0x551038[_0xb27e('0x3b')][0xa][_0xb27e('0x3c')]:undefined)||''}];case _0xb27e('0x53'):return[{'name':_0xb27e('0x54'),'type':_0x551038['reportType']||(_0x551038[_0xb27e('0x3b')]&&_0x551038[_0xb27e('0x3b')][0x0]?_0x551038[_0xb27e('0x3b')][0x0][_0xb27e('0x38')]:undefined)||null,'value':_0x551038[_0xb27e('0x54')]||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x0]?_0x551038[_0xb27e('0x3b')][0x0]['value']:undefined)||null},{'name':_0xb27e('0x55'),'value':_0x551038[_0xb27e('0x55')]||(_0x551038['attrs']&&_0x551038[_0xb27e('0x3b')][0x1]?_0x551038[_0xb27e('0x3b')][0x1][_0xb27e('0x3c')]:undefined)||0x0}];default:return[];}}catch(_0x4ede55){logger[_0xb27e('0x26')]('widgetAttributes:\x20%s',JSON[_0xb27e('0x56')](_0x4ede55));return[];}}exports['create']=function(_0x32d9ec,_0x104e8e){if(_0x32d9ec[_0xb27e('0x57')]){_0x32d9ec[_0xb27e('0x57')][_0xb27e('0x3b')]=widgetAttributes(_0x32d9ec[_0xb27e('0x57')]);}return db[_0xb27e('0x2e')][_0xb27e('0x58')](_0x32d9ec['body'],{})[_0xb27e('0x24')](respondWithResult(_0x104e8e,0xc9))['catch'](handleError(_0x104e8e,null));};exports[_0xb27e('0x59')]=function(_0x48e11b,_0x861def){if(_0x48e11b[_0xb27e('0x57')]['id']){delete _0x48e11b[_0xb27e('0x57')]['id'];}_0x48e11b[_0xb27e('0x57')][_0xb27e('0x3b')]=widgetAttributes(_0x48e11b[_0xb27e('0x57')]);return db[_0xb27e('0x2e')][_0xb27e('0x5a')]({'where':{'id':_0x48e11b['params']['id']}})[_0xb27e('0x24')](handleEntityNotFound(_0x861def,null))[_0xb27e('0x24')](saveUpdates(_0x48e11b[_0xb27e('0x57')],null))[_0xb27e('0x24')](respondWithResult(_0x861def,null))[_0xb27e('0x37')](handleError(_0x861def,null));};