Built motion from commit c738b9ac.|2.6.25
[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 _0x00cd=['filters','intersection','fields','attributes','length','includeAll','include','merge','options','find','catch','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','attrMetric','total','attrVoiceQueues','attrChannel','attrEmailAccounts','attrFaxAccounts','attrSmsAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie2','attrSerie3','voice','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','localhost','socket.io-emitter','redis','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','then','end','error','name','send','show','params','model','keys','DashboardItem','rawAttributes','query'];(function(_0x2ba6e8,_0x4dccea){var _0x49474f=function(_0x5d25a0){while(--_0x5d25a0){_0x2ba6e8['push'](_0x2ba6e8['shift']());}};_0x49474f(++_0x4dccea);}(_0x00cd,0xee));var _0xd00c=function(_0x48961c,_0x280e9d){_0x48961c=_0x48961c-0x0;var _0x1d895d=_0x00cd[_0x48961c];return _0x1d895d;};'use strict';var emlformat=require(_0xd00c('0x0'));var rimraf=require(_0xd00c('0x1'));var zipdir=require(_0xd00c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xd00c('0x3'));var BPromise=require(_0xd00c('0x4'));var Mustache=require(_0xd00c('0x5'));var util=require(_0xd00c('0x6'));var path=require(_0xd00c('0x7'));var sox=require('sox');var csv=require(_0xd00c('0x8'));var ejs=require(_0xd00c('0x9'));var fs=require('fs');var fs_extra=require(_0xd00c('0xa'));var _=require(_0xd00c('0xb'));var squel=require(_0xd00c('0xc'));var crypto=require(_0xd00c('0xd'));var jsforce=require(_0xd00c('0xe'));var deskjs=require(_0xd00c('0xf'));var toCsv=require(_0xd00c('0x8'));var querystring=require(_0xd00c('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xd00c('0x11'));var qs=require(_0xd00c('0x12'));var as=require(_0xd00c('0x13'));var hardwareService=require(_0xd00c('0x14'));var logger=require('../../config/logger')(_0xd00c('0x15'));var utils=require('../../config/utils');var config=require(_0xd00c('0x16'));var licenseUtil=require(_0xd00c('0x17'));var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config['redis'],{'host':_0xd00c('0x18'),'port':0x18eb});var socket=require(_0xd00c('0x19'))(new Redis(config[_0xd00c('0x1a')]));require('./dashboardItem.socket')[_0xd00c('0x1b')](socket);function respondWithStatusCode(_0x5ed7e7,_0x268a1a){_0x268a1a=_0x268a1a||0xcc;return function(_0x3ac907){if(_0x3ac907){return _0x5ed7e7[_0xd00c('0x1c')](_0x268a1a);}return _0x5ed7e7['status'](_0x268a1a)['end']();};}function respondWithResult(_0x41f67c,_0x3ccf95){_0x3ccf95=_0x3ccf95||0xc8;return function(_0x15fddd){if(_0x15fddd){return _0x41f67c[_0xd00c('0x1d')](_0x3ccf95)[_0xd00c('0x1e')](_0x15fddd);}};}function respondWithFilteredResult(_0x2a5531,_0x3ff1d5){return function(_0x3864a9){if(_0x3864a9){var _0x4e21ac=typeof _0x3ff1d5[_0xd00c('0x1f')]===_0xd00c('0x20')&&typeof _0x3ff1d5[_0xd00c('0x21')]==='undefined';var _0x541174=_0x3864a9[_0xd00c('0x22')];var _0x271543=_0x4e21ac?0x0:_0x3ff1d5[_0xd00c('0x1f')];var _0x29a748=_0x4e21ac?_0x3864a9[_0xd00c('0x22')]:_0x3ff1d5[_0xd00c('0x1f')]+_0x3ff1d5[_0xd00c('0x21')];var _0x4ef9f8;if(_0x29a748>=_0x541174){_0x29a748=_0x541174;_0x4ef9f8=0xc8;}else{_0x4ef9f8=0xce;}_0x2a5531[_0xd00c('0x1d')](_0x4ef9f8);return _0x2a5531[_0xd00c('0x23')](_0xd00c('0x24'),_0x271543+'-'+_0x29a748+'/'+_0x541174)[_0xd00c('0x1e')](_0x3864a9);}return null;};}function patchUpdates(_0x10d08d){return function(_0x595a67){try{jsonpatch['apply'](_0x595a67,_0x10d08d,!![]);}catch(_0x27c892){return BPromise[_0xd00c('0x25')](_0x27c892);}return _0x595a67['save']();};}function saveUpdates(_0x4a6c84,_0x4cf5e5){return function(_0xdb92ff){if(_0xdb92ff){return _0xdb92ff['update'](_0x4a6c84)[_0xd00c('0x26')](function(_0x4a918f){return _0x4a918f;});}return null;};}function removeEntity(_0x25300a,_0x276eef){return function(_0x4fc631){if(_0x4fc631){return _0x4fc631['destroy']()[_0xd00c('0x26')](function(){_0x25300a[_0xd00c('0x1d')](0xcc)[_0xd00c('0x27')]();});}};}function handleEntityNotFound(_0x2f95e4,_0x56f50f){return function(_0x2f8853){if(!_0x2f8853){_0x2f95e4[_0xd00c('0x1c')](0x194);}return _0x2f8853;};}function handleError(_0x2f73ff,_0x136352){_0x136352=_0x136352||0x1f4;return function(_0x4987c5){logger[_0xd00c('0x28')](_0x4987c5['stack']);if(_0x4987c5[_0xd00c('0x29')]){delete _0x4987c5[_0xd00c('0x29')];}_0x2f73ff[_0xd00c('0x1d')](_0x136352)[_0xd00c('0x2a')](_0x4987c5);};}exports[_0xd00c('0x2b')]=function(_0x399f2d,_0xbbbf0e){var _0x2a4fa4={'raw':![],'where':{'id':_0x399f2d[_0xd00c('0x2c')]['id']}},_0x1345dd={};_0x1345dd[_0xd00c('0x2d')]=_[_0xd00c('0x2e')](db[_0xd00c('0x2f')][_0xd00c('0x30')]);_0x1345dd[_0xd00c('0x31')]=_[_0xd00c('0x2e')](_0x399f2d[_0xd00c('0x31')]);_0x1345dd[_0xd00c('0x32')]=_['intersection'](_0x1345dd['model'],_0x1345dd[_0xd00c('0x31')]);_0x2a4fa4['attributes']=_[_0xd00c('0x33')](_0x1345dd[_0xd00c('0x2d')],qs[_0xd00c('0x34')](_0x399f2d[_0xd00c('0x31')][_0xd00c('0x34')]));_0x2a4fa4['attributes']=_0x2a4fa4[_0xd00c('0x35')][_0xd00c('0x36')]?_0x2a4fa4['attributes']:_0x1345dd[_0xd00c('0x2d')];if(_0x399f2d[_0xd00c('0x31')][_0xd00c('0x37')]){_0x2a4fa4[_0xd00c('0x38')]=[{'all':!![]}];}_0x2a4fa4=_[_0xd00c('0x39')]({},_0x2a4fa4,_0x399f2d[_0xd00c('0x3a')]);return db['DashboardItem'][_0xd00c('0x3b')](_0x2a4fa4)['then'](handleEntityNotFound(_0xbbbf0e,null))[_0xd00c('0x26')](respondWithResult(_0xbbbf0e,null))['catch'](handleError(_0xbbbf0e,null));};exports['destroy']=function(_0x5c1773,_0xb611c8){return db[_0xd00c('0x2f')][_0xd00c('0x3b')]({'where':{'id':_0x5c1773['params']['id']}})[_0xd00c('0x26')](handleEntityNotFound(_0xb611c8,null))[_0xd00c('0x26')](removeEntity(_0xb611c8,null))[_0xd00c('0x3c')](handleError(_0xb611c8,null));};function widgetAttributes(_0x572b8e){try{switch(_0x572b8e[_0xd00c('0x3d')]){case _0xd00c('0x3e'):return[{'name':_0xd00c('0x3f'),'value':_0x572b8e[_0xd00c('0x3f')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x0]?_0x572b8e[_0xd00c('0x40')][0x0][_0xd00c('0x41')]:undefined)||_0xd00c('0x42')}];case _0xd00c('0x43'):return[{'name':'attrPath','value':_0x572b8e[_0xd00c('0x44')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e['attrs'][0x0]?_0x572b8e[_0xd00c('0x40')][0x0][_0xd00c('0x41')]:undefined)||''}];case'clock':return[{'name':_0xd00c('0x45'),'value':_0x572b8e[_0xd00c('0x45')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x0]?_0x572b8e[_0xd00c('0x40')][0x0][_0xd00c('0x41')]:undefined)||_0xd00c('0x46')},{'name':_0xd00c('0x47'),'value':_0x572b8e['attrTimezone']||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x1]?_0x572b8e[_0xd00c('0x40')][0x1][_0xd00c('0x41')]:undefined)||'0.00'},{'name':_0xd00c('0x48'),'value':_0x572b8e[_0xd00c('0x48')]||(_0x572b8e['attrs']&&_0x572b8e[_0xd00c('0x40')][0x2]?_0x572b8e[_0xd00c('0x40')][0x2][_0xd00c('0x41')]:undefined)||0xc}];case'counter':return[{'name':_0xd00c('0x49'),'value':_0x572b8e['attrMetric']||(_0x572b8e['attrs']&&_0x572b8e[_0xd00c('0x40')][0x0]?_0x572b8e['attrs'][0x0][_0xd00c('0x41')]:undefined)||_0xd00c('0x4a')},{'name':_0xd00c('0x4b'),'value':_0x572b8e[_0xd00c('0x4b')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x1]?_0x572b8e[_0xd00c('0x40')][0x1][_0xd00c('0x41')]:undefined)||[]},{'name':_0xd00c('0x48'),'value':_0x572b8e[_0xd00c('0x48')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e['attrs'][0x2]?_0x572b8e[_0xd00c('0x40')][0x2][_0xd00c('0x41')]:undefined)||0x14},{'name':_0xd00c('0x4c'),'value':_0x572b8e['attrChannel']||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x3]?_0x572b8e['attrs'][0x3]['value']:undefined)||'voice'},{'name':_0xd00c('0x4d'),'value':_0x572b8e[_0xd00c('0x4d')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x4]?_0x572b8e[_0xd00c('0x40')][0x4][_0xd00c('0x41')]:undefined)||''},{'name':_0xd00c('0x4e'),'value':_0x572b8e[_0xd00c('0x4e')]||(_0x572b8e['attrs']&&_0x572b8e[_0xd00c('0x40')][0x5]?_0x572b8e[_0xd00c('0x40')][0x5][_0xd00c('0x41')]:undefined)||''},{'name':_0xd00c('0x4f'),'value':_0x572b8e[_0xd00c('0x4f')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x6]?_0x572b8e[_0xd00c('0x40')][0x6][_0xd00c('0x41')]:undefined)||''},{'name':_0xd00c('0x50'),'value':_0x572b8e[_0xd00c('0x50')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x7]?_0x572b8e[_0xd00c('0x40')][0x7]['value']:undefined)||''},{'name':_0xd00c('0x51'),'value':_0x572b8e[_0xd00c('0x51')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x8]?_0x572b8e[_0xd00c('0x40')][0x8][_0xd00c('0x41')]:undefined)||''},{'name':'attrChatWebsites','value':_0x572b8e[_0xd00c('0x52')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x9]?_0x572b8e['attrs'][0x9][_0xd00c('0x41')]:undefined)||''}];case _0xd00c('0x53'):case _0xd00c('0x54'):return[{'name':'attrSerie1','value':_0x572b8e['attrSerie1']||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x0]?_0x572b8e[_0xd00c('0x40')][0x0][_0xd00c('0x41')]:undefined)||_0xd00c('0x4a')},{'name':'attrSerie2','value':_0x572b8e[_0xd00c('0x55')]||(_0x572b8e['attrs']&&_0x572b8e[_0xd00c('0x40')][0x1]?_0x572b8e['attrs'][0x1]['value']:undefined)||null},{'name':_0xd00c('0x56'),'value':_0x572b8e[_0xd00c('0x56')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x2]?_0x572b8e['attrs'][0x2]['value']:undefined)||null},{'name':'attrVoiceQueues','value':_0x572b8e[_0xd00c('0x4b')]||(_0x572b8e['attrs']&&_0x572b8e[_0xd00c('0x40')][0x3]?_0x572b8e[_0xd00c('0x40')][0x3][_0xd00c('0x41')]:undefined)||[]},{'name':_0xd00c('0x4c'),'value':_0x572b8e[_0xd00c('0x4c')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e['attrs'][0x4]?_0x572b8e['attrs'][0x4][_0xd00c('0x41')]:undefined)||_0xd00c('0x57')},{'name':'attrEmailAccounts','value':_0x572b8e[_0xd00c('0x4d')]||(_0x572b8e['attrs']&&_0x572b8e[_0xd00c('0x40')][0x5]?_0x572b8e[_0xd00c('0x40')][0x5]['value']:undefined)||''},{'name':_0xd00c('0x4e'),'value':_0x572b8e[_0xd00c('0x4e')]||(_0x572b8e['attrs']&&_0x572b8e[_0xd00c('0x40')][0x6]?_0x572b8e['attrs'][0x6][_0xd00c('0x41')]:undefined)||''},{'name':_0xd00c('0x4f'),'value':_0x572b8e[_0xd00c('0x4f')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x7]?_0x572b8e['attrs'][0x7][_0xd00c('0x41')]:undefined)||''},{'name':_0xd00c('0x50'),'value':_0x572b8e[_0xd00c('0x50')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e['attrs'][0x8]?_0x572b8e[_0xd00c('0x40')][0x8][_0xd00c('0x41')]:undefined)||''},{'name':'attrWhatsappAccounts','value':_0x572b8e[_0xd00c('0x51')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x9]?_0x572b8e['attrs'][0x9][_0xd00c('0x41')]:undefined)||''},{'name':_0xd00c('0x52'),'value':_0x572b8e['attrChatWebsites']||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e['attrs'][0xa]?_0x572b8e[_0xd00c('0x40')][0xa][_0xd00c('0x41')]:undefined)||''}];case _0xd00c('0x58'):return[{'name':_0xd00c('0x59'),'type':_0x572b8e[_0xd00c('0x5a')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x0]?_0x572b8e['attrs'][0x0][_0xd00c('0x3d')]:undefined)||null,'value':_0x572b8e['attrReport']||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e['attrs'][0x0]?_0x572b8e[_0xd00c('0x40')][0x0]['value']:undefined)||null},{'name':'attrRefresh','value':_0x572b8e[_0xd00c('0x5b')]||(_0x572b8e[_0xd00c('0x40')]&&_0x572b8e[_0xd00c('0x40')][0x1]?_0x572b8e[_0xd00c('0x40')][0x1][_0xd00c('0x41')]:undefined)||0x0}];default:return[];}}catch(_0x5b9cb3){logger['error'](_0xd00c('0x5c'),JSON[_0xd00c('0x5d')](_0x5b9cb3));return[];}}exports[_0xd00c('0x5e')]=function(_0x32265d,_0xbbe29a){if(_0x32265d[_0xd00c('0x5f')]){_0x32265d[_0xd00c('0x5f')][_0xd00c('0x40')]=widgetAttributes(_0x32265d['body']);}return db[_0xd00c('0x2f')][_0xd00c('0x5e')](_0x32265d[_0xd00c('0x5f')],{})['then'](respondWithResult(_0xbbe29a,0xc9))[_0xd00c('0x3c')](handleError(_0xbbe29a,null));};exports['update']=function(_0x3d2f1f,_0x38fbad){if(_0x3d2f1f[_0xd00c('0x5f')]['id']){delete _0x3d2f1f[_0xd00c('0x5f')]['id'];}_0x3d2f1f[_0xd00c('0x5f')]['attrs']=widgetAttributes(_0x3d2f1f['body']);return db[_0xd00c('0x2f')][_0xd00c('0x3b')]({'where':{'id':_0x3d2f1f[_0xd00c('0x2c')]['id']}})['then'](handleEntityNotFound(_0x38fbad,null))['then'](saveUpdates(_0x3d2f1f[_0xd00c('0x5f')],null))['then'](respondWithResult(_0x38fbad,null))[_0xd00c('0x3c')](handleError(_0x38fbad,null));};