2efc3a27c9658b98261835f915476e369a1fdd8d
[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 _0x2b29=['count','Content-Range','apply','save','update','then','destroy','error','stack','name','send','show','params','model','rawAttributes','query','keys','filters','attributes','intersection','fields','length','includeAll','include','merge','DashboardItem','catch','type','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','counter','attrVoiceQueues','attrChannel','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','offset','undefined','limit'];(function(_0x51360f,_0x55ecff){var _0x381786=function(_0x11f562){while(--_0x11f562){_0x51360f['push'](_0x51360f['shift']());}};_0x381786(++_0x55ecff);}(_0x2b29,0x163));var _0x92b2=function(_0x5b473a,_0x39bf7b){_0x5b473a=_0x5b473a-0x0;var _0x47fe6a=_0x2b29[_0x5b473a];return _0x47fe6a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x92b2('0x0'));var zipdir=require(_0x92b2('0x1'));var jsonpatch=require(_0x92b2('0x2'));var rp=require(_0x92b2('0x3'));var moment=require('moment');var BPromise=require(_0x92b2('0x4'));var Mustache=require(_0x92b2('0x5'));var util=require(_0x92b2('0x6'));var path=require(_0x92b2('0x7'));var sox=require(_0x92b2('0x8'));var csv=require(_0x92b2('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x92b2('0xa'));var _=require('lodash');var squel=require(_0x92b2('0xb'));var crypto=require(_0x92b2('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x92b2('0xd'));var toCsv=require(_0x92b2('0x9'));var querystring=require(_0x92b2('0xe'));var Papa=require(_0x92b2('0xf'));var Redis=require('ioredis');var authService=require(_0x92b2('0x10'));var qs=require(_0x92b2('0x11'));var as=require(_0x92b2('0x12'));var hardwareService=require(_0x92b2('0x13'));var logger=require(_0x92b2('0x14'))(_0x92b2('0x15'));var utils=require(_0x92b2('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x92b2('0x17'));var db=require(_0x92b2('0x18'))['db'];config[_0x92b2('0x19')]=_['defaults'](config[_0x92b2('0x19')],{'host':_0x92b2('0x1a'),'port':0x18eb});var socket=require(_0x92b2('0x1b'))(new Redis(config[_0x92b2('0x19')]));require(_0x92b2('0x1c'))[_0x92b2('0x1d')](socket);function respondWithStatusCode(_0x52ef07,_0x11e175){_0x11e175=_0x11e175||0xcc;return function(_0x5c42b5){if(_0x5c42b5){return _0x52ef07[_0x92b2('0x1e')](_0x11e175);}return _0x52ef07[_0x92b2('0x1f')](_0x11e175)[_0x92b2('0x20')]();};}function respondWithResult(_0x4899fa,_0x5cbb30){_0x5cbb30=_0x5cbb30||0xc8;return function(_0xbb9cef){if(_0xbb9cef){return _0x4899fa['status'](_0x5cbb30)[_0x92b2('0x21')](_0xbb9cef);}};}function respondWithFilteredResult(_0x4d51db,_0x42872b){return function(_0x1a7866){if(_0x1a7866){var _0x39d811=typeof _0x42872b[_0x92b2('0x22')]===_0x92b2('0x23')&&typeof _0x42872b[_0x92b2('0x24')]===_0x92b2('0x23');var _0x692704=_0x1a7866[_0x92b2('0x25')];var _0xa08831=_0x39d811?0x0:_0x42872b[_0x92b2('0x22')];var _0x3bdda8=_0x39d811?_0x1a7866[_0x92b2('0x25')]:_0x42872b[_0x92b2('0x22')]+_0x42872b[_0x92b2('0x24')];var _0x4d2850;if(_0x3bdda8>=_0x692704){_0x3bdda8=_0x692704;_0x4d2850=0xc8;}else{_0x4d2850=0xce;}_0x4d51db[_0x92b2('0x1f')](_0x4d2850);return _0x4d51db['set'](_0x92b2('0x26'),_0xa08831+'-'+_0x3bdda8+'/'+_0x692704)[_0x92b2('0x21')](_0x1a7866);}return null;};}function patchUpdates(_0x2b372c){return function(_0x1e09b6){try{jsonpatch[_0x92b2('0x27')](_0x1e09b6,_0x2b372c,!![]);}catch(_0x574c3e){return BPromise['reject'](_0x574c3e);}return _0x1e09b6[_0x92b2('0x28')]();};}function saveUpdates(_0x31567c,_0x8ed58d){return function(_0x386a80){if(_0x386a80){return _0x386a80[_0x92b2('0x29')](_0x31567c)[_0x92b2('0x2a')](function(_0x15faf5){return _0x15faf5;});}return null;};}function removeEntity(_0x49b81e,_0xbbbfa7){return function(_0x573df3){if(_0x573df3){return _0x573df3[_0x92b2('0x2b')]()['then'](function(){_0x49b81e[_0x92b2('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5e9688,_0x105270){return function(_0x2d707f){if(!_0x2d707f){_0x5e9688[_0x92b2('0x1e')](0x194);}return _0x2d707f;};}function handleError(_0x5a874e,_0x9314e3){_0x9314e3=_0x9314e3||0x1f4;return function(_0x482706){logger[_0x92b2('0x2c')](_0x482706[_0x92b2('0x2d')]);if(_0x482706[_0x92b2('0x2e')]){delete _0x482706[_0x92b2('0x2e')];}_0x5a874e[_0x92b2('0x1f')](_0x9314e3)[_0x92b2('0x2f')](_0x482706);};}exports[_0x92b2('0x30')]=function(_0x515a62,_0x4dda21){var _0x5efa2b={'raw':![],'where':{'id':_0x515a62[_0x92b2('0x31')]['id']}},_0xd240ec={};_0xd240ec[_0x92b2('0x32')]=_['keys'](db['DashboardItem'][_0x92b2('0x33')]);_0xd240ec[_0x92b2('0x34')]=_[_0x92b2('0x35')](_0x515a62[_0x92b2('0x34')]);_0xd240ec[_0x92b2('0x36')]=_['intersection'](_0xd240ec['model'],_0xd240ec['query']);_0x5efa2b[_0x92b2('0x37')]=_[_0x92b2('0x38')](_0xd240ec['model'],qs[_0x92b2('0x39')](_0x515a62[_0x92b2('0x34')][_0x92b2('0x39')]));_0x5efa2b[_0x92b2('0x37')]=_0x5efa2b[_0x92b2('0x37')][_0x92b2('0x3a')]?_0x5efa2b[_0x92b2('0x37')]:_0xd240ec[_0x92b2('0x32')];if(_0x515a62['query'][_0x92b2('0x3b')]){_0x5efa2b[_0x92b2('0x3c')]=[{'all':!![]}];}_0x5efa2b=_[_0x92b2('0x3d')]({},_0x5efa2b,_0x515a62['options']);return db[_0x92b2('0x3e')]['find'](_0x5efa2b)[_0x92b2('0x2a')](handleEntityNotFound(_0x4dda21,null))[_0x92b2('0x2a')](respondWithResult(_0x4dda21,null))['catch'](handleError(_0x4dda21,null));};exports['destroy']=function(_0x119d4c,_0xc6730b){return db['DashboardItem']['find']({'where':{'id':_0x119d4c[_0x92b2('0x31')]['id']}})[_0x92b2('0x2a')](handleEntityNotFound(_0xc6730b,null))['then'](removeEntity(_0xc6730b,null))[_0x92b2('0x3f')](handleError(_0xc6730b,null));};function widgetAttributes(_0x111eca){try{switch(_0x111eca[_0x92b2('0x40')]){case'iframe':return[{'name':_0x92b2('0x41'),'value':_0x111eca['attrUrl']||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x0]?_0x111eca[_0x92b2('0x42')][0x0][_0x92b2('0x43')]:undefined)||_0x92b2('0x44')}];case _0x92b2('0x45'):return[{'name':'attrPath','value':_0x111eca[_0x92b2('0x46')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca['attrs'][0x0]?_0x111eca[_0x92b2('0x42')][0x0][_0x92b2('0x43')]:undefined)||''}];case _0x92b2('0x47'):return[{'name':_0x92b2('0x48'),'value':_0x111eca[_0x92b2('0x48')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x0]?_0x111eca['attrs'][0x0][_0x92b2('0x43')]:undefined)||'HH:mm:ss'},{'name':_0x92b2('0x49'),'value':_0x111eca['attrTimezone']||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x1]?_0x111eca[_0x92b2('0x42')][0x1]['value']:undefined)||_0x92b2('0x4a')},{'name':_0x92b2('0x4b'),'value':_0x111eca[_0x92b2('0x4b')]||(_0x111eca['attrs']&&_0x111eca[_0x92b2('0x42')][0x2]?_0x111eca[_0x92b2('0x42')][0x2][_0x92b2('0x43')]:undefined)||0xc}];case _0x92b2('0x4c'):return[{'name':'attrMetric','value':_0x111eca['attrMetric']||(_0x111eca['attrs']&&_0x111eca[_0x92b2('0x42')][0x0]?_0x111eca[_0x92b2('0x42')][0x0][_0x92b2('0x43')]:undefined)||'total'},{'name':_0x92b2('0x4d'),'value':_0x111eca['attrVoiceQueues']||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x1]?_0x111eca[_0x92b2('0x42')][0x1][_0x92b2('0x43')]:undefined)||[]},{'name':_0x92b2('0x4b'),'value':_0x111eca[_0x92b2('0x4b')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x2]?_0x111eca[_0x92b2('0x42')][0x2][_0x92b2('0x43')]:undefined)||0x14},{'name':_0x92b2('0x4e'),'value':_0x111eca[_0x92b2('0x4e')]||(_0x111eca['attrs']&&_0x111eca[_0x92b2('0x42')][0x3]?_0x111eca['attrs'][0x3][_0x92b2('0x43')]:undefined)||'voice'},{'name':_0x92b2('0x4f'),'value':_0x111eca[_0x92b2('0x4f')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca['attrs'][0x4]?_0x111eca[_0x92b2('0x42')][0x4]['value']:undefined)||''},{'name':_0x92b2('0x50'),'value':_0x111eca[_0x92b2('0x50')]||(_0x111eca['attrs']&&_0x111eca[_0x92b2('0x42')][0x5]?_0x111eca[_0x92b2('0x42')][0x5][_0x92b2('0x43')]:undefined)||''},{'name':_0x92b2('0x51'),'value':_0x111eca[_0x92b2('0x51')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x6]?_0x111eca[_0x92b2('0x42')][0x6][_0x92b2('0x43')]:undefined)||''},{'name':_0x92b2('0x52'),'value':_0x111eca[_0x92b2('0x52')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x7]?_0x111eca[_0x92b2('0x42')][0x7]['value']:undefined)||''},{'name':_0x92b2('0x53'),'value':_0x111eca[_0x92b2('0x53')]||(_0x111eca['attrs']&&_0x111eca['attrs'][0x8]?_0x111eca['attrs'][0x8][_0x92b2('0x43')]:undefined)||''},{'name':_0x92b2('0x54'),'value':_0x111eca['attrChatWebsites']||(_0x111eca['attrs']&&_0x111eca['attrs'][0x9]?_0x111eca[_0x92b2('0x42')][0x9][_0x92b2('0x43')]:undefined)||''}];case _0x92b2('0x55'):case _0x92b2('0x56'):return[{'name':_0x92b2('0x57'),'value':_0x111eca[_0x92b2('0x57')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x0]?_0x111eca['attrs'][0x0]['value']:undefined)||'total'},{'name':_0x92b2('0x58'),'value':_0x111eca['attrSerie2']||(_0x111eca[_0x92b2('0x42')]&&_0x111eca['attrs'][0x1]?_0x111eca[_0x92b2('0x42')][0x1][_0x92b2('0x43')]:undefined)||null},{'name':_0x92b2('0x59'),'value':_0x111eca[_0x92b2('0x59')]||(_0x111eca['attrs']&&_0x111eca[_0x92b2('0x42')][0x2]?_0x111eca[_0x92b2('0x42')][0x2][_0x92b2('0x43')]:undefined)||null},{'name':_0x92b2('0x4d'),'value':_0x111eca[_0x92b2('0x4d')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x3]?_0x111eca[_0x92b2('0x42')][0x3][_0x92b2('0x43')]:undefined)||[]},{'name':_0x92b2('0x4e'),'value':_0x111eca[_0x92b2('0x4e')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x4]?_0x111eca[_0x92b2('0x42')][0x4][_0x92b2('0x43')]:undefined)||'voice'},{'name':'attrEmailAccounts','value':_0x111eca[_0x92b2('0x4f')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x5]?_0x111eca['attrs'][0x5][_0x92b2('0x43')]:undefined)||''},{'name':_0x92b2('0x50'),'value':_0x111eca[_0x92b2('0x50')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x6]?_0x111eca[_0x92b2('0x42')][0x6][_0x92b2('0x43')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x111eca[_0x92b2('0x51')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x7]?_0x111eca['attrs'][0x7][_0x92b2('0x43')]:undefined)||''},{'name':_0x92b2('0x52'),'value':_0x111eca['attrOpenchannelAccounts']||(_0x111eca['attrs']&&_0x111eca[_0x92b2('0x42')][0x8]?_0x111eca[_0x92b2('0x42')][0x8]['value']:undefined)||''},{'name':_0x92b2('0x53'),'value':_0x111eca[_0x92b2('0x53')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x9]?_0x111eca[_0x92b2('0x42')][0x9][_0x92b2('0x43')]:undefined)||''},{'name':_0x92b2('0x54'),'value':_0x111eca[_0x92b2('0x54')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0xa]?_0x111eca['attrs'][0xa][_0x92b2('0x43')]:undefined)||''}];case _0x92b2('0x5a'):return[{'name':_0x92b2('0x5b'),'type':_0x111eca[_0x92b2('0x5c')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca['attrs'][0x0]?_0x111eca['attrs'][0x0][_0x92b2('0x40')]:undefined)||null,'value':_0x111eca[_0x92b2('0x5b')]||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x0]?_0x111eca[_0x92b2('0x42')][0x0][_0x92b2('0x43')]:undefined)||null},{'name':_0x92b2('0x5d'),'value':_0x111eca['attrRefresh']||(_0x111eca[_0x92b2('0x42')]&&_0x111eca[_0x92b2('0x42')][0x1]?_0x111eca['attrs'][0x1][_0x92b2('0x43')]:undefined)||0x0}];default:return[];}}catch(_0x545872){logger[_0x92b2('0x2c')](_0x92b2('0x5e'),JSON[_0x92b2('0x5f')](_0x545872));return[];}}exports['create']=function(_0x4b2036,_0x1fa5cb){if(_0x4b2036['body']){_0x4b2036['body'][_0x92b2('0x42')]=widgetAttributes(_0x4b2036[_0x92b2('0x60')]);}return db[_0x92b2('0x3e')][_0x92b2('0x61')](_0x4b2036[_0x92b2('0x60')],{})[_0x92b2('0x2a')](respondWithResult(_0x1fa5cb,0xc9))[_0x92b2('0x3f')](handleError(_0x1fa5cb,null));};exports['update']=function(_0x3ba3ca,_0x407b80){if(_0x3ba3ca['body']['id']){delete _0x3ba3ca[_0x92b2('0x60')]['id'];}_0x3ba3ca[_0x92b2('0x60')][_0x92b2('0x42')]=widgetAttributes(_0x3ba3ca[_0x92b2('0x60')]);return db[_0x92b2('0x3e')]['find']({'where':{'id':_0x3ba3ca[_0x92b2('0x31')]['id']}})[_0x92b2('0x2a')](handleEntityNotFound(_0x407b80,null))['then'](saveUpdates(_0x3ba3ca[_0x92b2('0x60')],null))[_0x92b2('0x2a')](respondWithResult(_0x407b80,null))[_0x92b2('0x3f')](handleError(_0x407b80,null));};