fd0bdb8c69a3650f5ff3d48090aca3874696abe2
[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 _0x29af=['attrWhatsappAccounts','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrChatWebsites','web-report','attrReport','reportType','attrRefresh','error','widgetAttributes:\x20%s','body','update','eml-format','rimraf','zip-dir','request-promise','moment','mustache','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','name','send','show','params','model','keys','DashboardItem','rawAttributes','query','filters','attributes','intersection','includeAll','include','merge','options','find','then','catch','type','iframe','attrUrl','attrs','value','https://','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','attrChannel','voice','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts'];(function(_0x157f32,_0x385930){var _0x29021c=function(_0x3070e0){while(--_0x3070e0){_0x157f32['push'](_0x157f32['shift']());}};_0x29021c(++_0x385930);}(_0x29af,0x134));var _0xf29a=function(_0x857b54,_0x4212fd){_0x857b54=_0x857b54-0x0;var _0x2a4f07=_0x29af[_0x857b54];return _0x2a4f07;};'use strict';var emlformat=require(_0xf29a('0x0'));var rimraf=require(_0xf29a('0x1'));var zipdir=require(_0xf29a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf29a('0x3'));var moment=require(_0xf29a('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xf29a('0x5'));var util=require('util');var path=require(_0xf29a('0x6'));var sox=require(_0xf29a('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf29a('0x8'));var _=require(_0xf29a('0x9'));var squel=require(_0xf29a('0xa'));var crypto=require(_0xf29a('0xb'));var jsforce=require(_0xf29a('0xc'));var deskjs=require(_0xf29a('0xd'));var toCsv=require('to-csv');var querystring=require(_0xf29a('0xe'));var Papa=require(_0xf29a('0xf'));var Redis=require(_0xf29a('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xf29a('0x11'));var hardwareService=require(_0xf29a('0x12'));var logger=require(_0xf29a('0x13'))(_0xf29a('0x14'));var utils=require(_0xf29a('0x15'));var config=require(_0xf29a('0x16'));var licenseUtil=require(_0xf29a('0x17'));var db=require('../../mysqldb')['db'];config[_0xf29a('0x18')]=_[_0xf29a('0x19')](config[_0xf29a('0x18')],{'host':_0xf29a('0x1a'),'port':0x18eb});var socket=require(_0xf29a('0x1b'))(new Redis(config[_0xf29a('0x18')]));require(_0xf29a('0x1c'))['register'](socket);function respondWithStatusCode(_0x4fc117,_0x53e962){_0x53e962=_0x53e962||0xcc;return function(_0xd1e064){if(_0xd1e064){return _0x4fc117[_0xf29a('0x1d')](_0x53e962);}return _0x4fc117[_0xf29a('0x1e')](_0x53e962)[_0xf29a('0x1f')]();};}function respondWithResult(_0x17faf4,_0x5a351f){_0x5a351f=_0x5a351f||0xc8;return function(_0x34cd2e){if(_0x34cd2e){return _0x17faf4[_0xf29a('0x1e')](_0x5a351f)[_0xf29a('0x20')](_0x34cd2e);}};}function respondWithFilteredResult(_0x283fe5,_0x14d1dc){return function(_0xd4ca39){if(_0xd4ca39){var _0x19e886=typeof _0x14d1dc[_0xf29a('0x21')]===_0xf29a('0x22')&&typeof _0x14d1dc[_0xf29a('0x23')]==='undefined';var _0x474e1f=_0xd4ca39[_0xf29a('0x24')];var _0x5dec1e=_0x19e886?0x0:_0x14d1dc[_0xf29a('0x21')];var _0x40923f=_0x19e886?_0xd4ca39[_0xf29a('0x24')]:_0x14d1dc['offset']+_0x14d1dc[_0xf29a('0x23')];var _0x560b73;if(_0x40923f>=_0x474e1f){_0x40923f=_0x474e1f;_0x560b73=0xc8;}else{_0x560b73=0xce;}_0x283fe5[_0xf29a('0x1e')](_0x560b73);return _0x283fe5[_0xf29a('0x25')](_0xf29a('0x26'),_0x5dec1e+'-'+_0x40923f+'/'+_0x474e1f)[_0xf29a('0x20')](_0xd4ca39);}return null;};}function patchUpdates(_0x4d557c){return function(_0x46cd66){try{jsonpatch[_0xf29a('0x27')](_0x46cd66,_0x4d557c,!![]);}catch(_0x43ce76){return BPromise[_0xf29a('0x28')](_0x43ce76);}return _0x46cd66[_0xf29a('0x29')]();};}function saveUpdates(_0x162538,_0x2e03e7){return function(_0x5d5ff5){if(_0x5d5ff5){return _0x5d5ff5['update'](_0x162538)['then'](function(_0x262a5f){return _0x262a5f;});}return null;};}function removeEntity(_0x4b610c,_0x3635a6){return function(_0xd791e3){if(_0xd791e3){return _0xd791e3[_0xf29a('0x2a')]()['then'](function(){_0x4b610c[_0xf29a('0x1e')](0xcc)[_0xf29a('0x1f')]();});}};}function handleEntityNotFound(_0x401318,_0xc2f545){return function(_0x11d1a6){if(!_0x11d1a6){_0x401318[_0xf29a('0x1d')](0x194);}return _0x11d1a6;};}function handleError(_0x4bb823,_0x4216af){_0x4216af=_0x4216af||0x1f4;return function(_0x43b4ab){logger['error'](_0x43b4ab['stack']);if(_0x43b4ab['name']){delete _0x43b4ab[_0xf29a('0x2b')];}_0x4bb823[_0xf29a('0x1e')](_0x4216af)[_0xf29a('0x2c')](_0x43b4ab);};}exports[_0xf29a('0x2d')]=function(_0xcde883,_0x1a3c70){var _0x694c05={'raw':![],'where':{'id':_0xcde883[_0xf29a('0x2e')]['id']}},_0x50b221={};_0x50b221[_0xf29a('0x2f')]=_[_0xf29a('0x30')](db[_0xf29a('0x31')][_0xf29a('0x32')]);_0x50b221[_0xf29a('0x33')]=_[_0xf29a('0x30')](_0xcde883['query']);_0x50b221[_0xf29a('0x34')]=_['intersection'](_0x50b221[_0xf29a('0x2f')],_0x50b221[_0xf29a('0x33')]);_0x694c05[_0xf29a('0x35')]=_[_0xf29a('0x36')](_0x50b221[_0xf29a('0x2f')],qs['fields'](_0xcde883[_0xf29a('0x33')]['fields']));_0x694c05[_0xf29a('0x35')]=_0x694c05[_0xf29a('0x35')]['length']?_0x694c05[_0xf29a('0x35')]:_0x50b221[_0xf29a('0x2f')];if(_0xcde883['query'][_0xf29a('0x37')]){_0x694c05[_0xf29a('0x38')]=[{'all':!![]}];}_0x694c05=_[_0xf29a('0x39')]({},_0x694c05,_0xcde883[_0xf29a('0x3a')]);return db[_0xf29a('0x31')][_0xf29a('0x3b')](_0x694c05)['then'](handleEntityNotFound(_0x1a3c70,null))[_0xf29a('0x3c')](respondWithResult(_0x1a3c70,null))[_0xf29a('0x3d')](handleError(_0x1a3c70,null));};exports[_0xf29a('0x2a')]=function(_0x545244,_0x250e21){return db[_0xf29a('0x31')][_0xf29a('0x3b')]({'where':{'id':_0x545244[_0xf29a('0x2e')]['id']}})[_0xf29a('0x3c')](handleEntityNotFound(_0x250e21,null))[_0xf29a('0x3c')](removeEntity(_0x250e21,null))[_0xf29a('0x3d')](handleError(_0x250e21,null));};function widgetAttributes(_0x3bcba9){try{switch(_0x3bcba9[_0xf29a('0x3e')]){case _0xf29a('0x3f'):return[{'name':_0xf29a('0x40'),'value':_0x3bcba9[_0xf29a('0x40')]||(_0x3bcba9['attrs']&&_0x3bcba9['attrs'][0x0]?_0x3bcba9[_0xf29a('0x41')][0x0][_0xf29a('0x42')]:undefined)||_0xf29a('0x43')}];case'custom':return[{'name':_0xf29a('0x44'),'value':_0x3bcba9[_0xf29a('0x44')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x0]?_0x3bcba9[_0xf29a('0x41')][0x0][_0xf29a('0x42')]:undefined)||''}];case _0xf29a('0x45'):return[{'name':_0xf29a('0x46'),'value':_0x3bcba9[_0xf29a('0x46')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x0]?_0x3bcba9['attrs'][0x0][_0xf29a('0x42')]:undefined)||'HH:mm:ss'},{'name':_0xf29a('0x47'),'value':_0x3bcba9[_0xf29a('0x47')]||(_0x3bcba9['attrs']&&_0x3bcba9[_0xf29a('0x41')][0x1]?_0x3bcba9['attrs'][0x1][_0xf29a('0x42')]:undefined)||_0xf29a('0x48')},{'name':_0xf29a('0x49'),'value':_0x3bcba9[_0xf29a('0x49')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9['attrs'][0x2]?_0x3bcba9[_0xf29a('0x41')][0x2][_0xf29a('0x42')]:undefined)||0xc}];case _0xf29a('0x4a'):return[{'name':_0xf29a('0x4b'),'value':_0x3bcba9['attrMetric']||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x0]?_0x3bcba9[_0xf29a('0x41')][0x0][_0xf29a('0x42')]:undefined)||_0xf29a('0x4c')},{'name':_0xf29a('0x4d'),'value':_0x3bcba9[_0xf29a('0x4d')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x1]?_0x3bcba9[_0xf29a('0x41')][0x1][_0xf29a('0x42')]:undefined)||[]},{'name':_0xf29a('0x49'),'value':_0x3bcba9[_0xf29a('0x49')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x2]?_0x3bcba9[_0xf29a('0x41')][0x2][_0xf29a('0x42')]:undefined)||0x14},{'name':_0xf29a('0x4e'),'value':_0x3bcba9[_0xf29a('0x4e')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9['attrs'][0x3]?_0x3bcba9['attrs'][0x3][_0xf29a('0x42')]:undefined)||_0xf29a('0x4f')},{'name':_0xf29a('0x50'),'value':_0x3bcba9[_0xf29a('0x50')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x4]?_0x3bcba9[_0xf29a('0x41')][0x4][_0xf29a('0x42')]:undefined)||''},{'name':_0xf29a('0x51'),'value':_0x3bcba9[_0xf29a('0x51')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x5]?_0x3bcba9[_0xf29a('0x41')][0x5][_0xf29a('0x42')]:undefined)||''},{'name':_0xf29a('0x52'),'value':_0x3bcba9[_0xf29a('0x52')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x6]?_0x3bcba9[_0xf29a('0x41')][0x6][_0xf29a('0x42')]:undefined)||''},{'name':_0xf29a('0x53'),'value':_0x3bcba9[_0xf29a('0x53')]||(_0x3bcba9['attrs']&&_0x3bcba9[_0xf29a('0x41')][0x7]?_0x3bcba9[_0xf29a('0x41')][0x7][_0xf29a('0x42')]:undefined)||''},{'name':_0xf29a('0x54'),'value':_0x3bcba9[_0xf29a('0x54')]||(_0x3bcba9['attrs']&&_0x3bcba9[_0xf29a('0x41')][0x8]?_0x3bcba9[_0xf29a('0x41')][0x8][_0xf29a('0x42')]:undefined)||''},{'name':'attrChatWebsites','value':_0x3bcba9['attrChatWebsites']||(_0x3bcba9['attrs']&&_0x3bcba9[_0xf29a('0x41')][0x9]?_0x3bcba9[_0xf29a('0x41')][0x9]['value']:undefined)||''}];case'multibar-chart':case _0xf29a('0x55'):return[{'name':_0xf29a('0x56'),'value':_0x3bcba9['attrSerie1']||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x0]?_0x3bcba9['attrs'][0x0]['value']:undefined)||'total'},{'name':_0xf29a('0x57'),'value':_0x3bcba9[_0xf29a('0x57')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x1]?_0x3bcba9[_0xf29a('0x41')][0x1][_0xf29a('0x42')]:undefined)||null},{'name':'attrSerie3','value':_0x3bcba9[_0xf29a('0x58')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x2]?_0x3bcba9[_0xf29a('0x41')][0x2][_0xf29a('0x42')]:undefined)||null},{'name':_0xf29a('0x4d'),'value':_0x3bcba9[_0xf29a('0x4d')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x3]?_0x3bcba9['attrs'][0x3]['value']:undefined)||[]},{'name':_0xf29a('0x4e'),'value':_0x3bcba9[_0xf29a('0x4e')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x4]?_0x3bcba9['attrs'][0x4]['value']:undefined)||'voice'},{'name':_0xf29a('0x50'),'value':_0x3bcba9[_0xf29a('0x50')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x5]?_0x3bcba9['attrs'][0x5][_0xf29a('0x42')]:undefined)||''},{'name':_0xf29a('0x51'),'value':_0x3bcba9[_0xf29a('0x51')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9['attrs'][0x6]?_0x3bcba9[_0xf29a('0x41')][0x6]['value']:undefined)||''},{'name':_0xf29a('0x52'),'value':_0x3bcba9[_0xf29a('0x52')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x7]?_0x3bcba9[_0xf29a('0x41')][0x7][_0xf29a('0x42')]:undefined)||''},{'name':_0xf29a('0x53'),'value':_0x3bcba9[_0xf29a('0x53')]||(_0x3bcba9['attrs']&&_0x3bcba9[_0xf29a('0x41')][0x8]?_0x3bcba9[_0xf29a('0x41')][0x8][_0xf29a('0x42')]:undefined)||''},{'name':_0xf29a('0x54'),'value':_0x3bcba9[_0xf29a('0x54')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x9]?_0x3bcba9['attrs'][0x9][_0xf29a('0x42')]:undefined)||''},{'name':_0xf29a('0x59'),'value':_0x3bcba9[_0xf29a('0x59')]||(_0x3bcba9['attrs']&&_0x3bcba9[_0xf29a('0x41')][0xa]?_0x3bcba9[_0xf29a('0x41')][0xa][_0xf29a('0x42')]:undefined)||''}];case _0xf29a('0x5a'):return[{'name':_0xf29a('0x5b'),'type':_0x3bcba9[_0xf29a('0x5c')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x0]?_0x3bcba9[_0xf29a('0x41')][0x0]['type']:undefined)||null,'value':_0x3bcba9[_0xf29a('0x5b')]||(_0x3bcba9[_0xf29a('0x41')]&&_0x3bcba9[_0xf29a('0x41')][0x0]?_0x3bcba9[_0xf29a('0x41')][0x0][_0xf29a('0x42')]:undefined)||null},{'name':_0xf29a('0x5d'),'value':_0x3bcba9[_0xf29a('0x5d')]||(_0x3bcba9['attrs']&&_0x3bcba9[_0xf29a('0x41')][0x1]?_0x3bcba9[_0xf29a('0x41')][0x1][_0xf29a('0x42')]:undefined)||0x0}];default:return[];}}catch(_0x40e404){logger[_0xf29a('0x5e')](_0xf29a('0x5f'),JSON['stringify'](_0x40e404));return[];}}exports['create']=function(_0x5ab992,_0x5670de){if(_0x5ab992[_0xf29a('0x60')]){_0x5ab992[_0xf29a('0x60')][_0xf29a('0x41')]=widgetAttributes(_0x5ab992[_0xf29a('0x60')]);}return db['DashboardItem']['create'](_0x5ab992[_0xf29a('0x60')],{})[_0xf29a('0x3c')](respondWithResult(_0x5670de,0xc9))[_0xf29a('0x3d')](handleError(_0x5670de,null));};exports[_0xf29a('0x61')]=function(_0x2b4d2c,_0x4078ba){if(_0x2b4d2c[_0xf29a('0x60')]['id']){delete _0x2b4d2c[_0xf29a('0x60')]['id'];}_0x2b4d2c['body']['attrs']=widgetAttributes(_0x2b4d2c[_0xf29a('0x60')]);return db['DashboardItem'][_0xf29a('0x3b')]({'where':{'id':_0x2b4d2c[_0xf29a('0x2e')]['id']}})[_0xf29a('0x3c')](handleEntityNotFound(_0x4078ba,null))[_0xf29a('0x3c')](saveUpdates(_0x2b4d2c['body'],null))[_0xf29a('0x3c')](respondWithResult(_0x4078ba,null))['catch'](handleError(_0x4078ba,null));};