Built motion from commit 9d0783e6.|2.6.13
[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 _0xbf25=['offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','params','model','keys','query','filters','intersection','fields','attributes','length','includeAll','include','options','catch','DashboardItem','attrUrl','attrs','value','https://','custom','attrHourFormat','attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','voice','attrEmailAccounts','attrOpenchannelAccounts','attrWhatsappAccounts','attrChatWebsites','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','attrChannel','attrFaxAccounts','attrSmsAccounts','web-report','reportType','type','attrRefresh','widgetAttributes:\x20%s','body','create','find','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','register','sendStatus','status','end','json'];(function(_0xade4c4,_0x314e6b){var _0x5ee0b2=function(_0x5a7c1d){while(--_0x5a7c1d){_0xade4c4['push'](_0xade4c4['shift']());}};_0x5ee0b2(++_0x314e6b);}(_0xbf25,0x15e));var _0x5bf2=function(_0x23e9d3,_0x3f0b85){_0x23e9d3=_0x23e9d3-0x0;var _0x5084e6=_0xbf25[_0x23e9d3];return _0x5084e6;};'use strict';var emlformat=require(_0x5bf2('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5bf2('0x1'));var jsonpatch=require(_0x5bf2('0x2'));var rp=require(_0x5bf2('0x3'));var moment=require(_0x5bf2('0x4'));var BPromise=require(_0x5bf2('0x5'));var Mustache=require(_0x5bf2('0x6'));var util=require('util');var path=require(_0x5bf2('0x7'));var sox=require('sox');var csv=require(_0x5bf2('0x8'));var ejs=require(_0x5bf2('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5bf2('0xa'));var squel=require(_0x5bf2('0xb'));var crypto=require(_0x5bf2('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x5bf2('0xd'));var toCsv=require(_0x5bf2('0x8'));var querystring=require(_0x5bf2('0xe'));var Papa=require('papaparse');var Redis=require(_0x5bf2('0xf'));var authService=require(_0x5bf2('0x10'));var qs=require(_0x5bf2('0x11'));var as=require(_0x5bf2('0x12'));var hardwareService=require(_0x5bf2('0x13'));var logger=require(_0x5bf2('0x14'))(_0x5bf2('0x15'));var utils=require(_0x5bf2('0x16'));var config=require(_0x5bf2('0x17'));var licenseUtil=require(_0x5bf2('0x18'));var db=require(_0x5bf2('0x19'))['db'];config[_0x5bf2('0x1a')]=_[_0x5bf2('0x1b')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x5bf2('0x1c'))(new Redis(config[_0x5bf2('0x1a')]));require('./dashboardItem.socket')[_0x5bf2('0x1d')](socket);function respondWithStatusCode(_0x43a83b,_0x1bdb56){_0x1bdb56=_0x1bdb56||0xcc;return function(_0x21a3a1){if(_0x21a3a1){return _0x43a83b[_0x5bf2('0x1e')](_0x1bdb56);}return _0x43a83b[_0x5bf2('0x1f')](_0x1bdb56)[_0x5bf2('0x20')]();};}function respondWithResult(_0xff9397,_0x214752){_0x214752=_0x214752||0xc8;return function(_0x326cea){if(_0x326cea){return _0xff9397[_0x5bf2('0x1f')](_0x214752)[_0x5bf2('0x21')](_0x326cea);}};}function respondWithFilteredResult(_0x4d1990,_0x4fc7c7){return function(_0x2f87ff){if(_0x2f87ff){var _0x4af54a=typeof _0x4fc7c7[_0x5bf2('0x22')]===_0x5bf2('0x23')&&typeof _0x4fc7c7['limit']==='undefined';var _0x3adc26=_0x2f87ff[_0x5bf2('0x24')];var _0x3602b8=_0x4af54a?0x0:_0x4fc7c7[_0x5bf2('0x22')];var _0x22f35a=_0x4af54a?_0x2f87ff[_0x5bf2('0x24')]:_0x4fc7c7[_0x5bf2('0x22')]+_0x4fc7c7[_0x5bf2('0x25')];var _0x44bedc;if(_0x22f35a>=_0x3adc26){_0x22f35a=_0x3adc26;_0x44bedc=0xc8;}else{_0x44bedc=0xce;}_0x4d1990['status'](_0x44bedc);return _0x4d1990['set'](_0x5bf2('0x26'),_0x3602b8+'-'+_0x22f35a+'/'+_0x3adc26)[_0x5bf2('0x21')](_0x2f87ff);}return null;};}function patchUpdates(_0x161ec2){return function(_0x2d2b7e){try{jsonpatch[_0x5bf2('0x27')](_0x2d2b7e,_0x161ec2,!![]);}catch(_0x1cb9e1){return BPromise[_0x5bf2('0x28')](_0x1cb9e1);}return _0x2d2b7e[_0x5bf2('0x29')]();};}function saveUpdates(_0x239206,_0x2825c7){return function(_0x2d9a12){if(_0x2d9a12){return _0x2d9a12[_0x5bf2('0x2a')](_0x239206)[_0x5bf2('0x2b')](function(_0x5ae161){return _0x5ae161;});}return null;};}function removeEntity(_0x1a90e7,_0x4d3067){return function(_0x36cab3){if(_0x36cab3){return _0x36cab3[_0x5bf2('0x2c')]()['then'](function(){_0x1a90e7[_0x5bf2('0x1f')](0xcc)[_0x5bf2('0x20')]();});}};}function handleEntityNotFound(_0x5cefb3,_0x5426f9){return function(_0x8c54cd){if(!_0x8c54cd){_0x5cefb3[_0x5bf2('0x1e')](0x194);}return _0x8c54cd;};}function handleError(_0x3ceabf,_0x43c2f7){_0x43c2f7=_0x43c2f7||0x1f4;return function(_0x5ca619){logger[_0x5bf2('0x2d')](_0x5ca619[_0x5bf2('0x2e')]);if(_0x5ca619[_0x5bf2('0x2f')]){delete _0x5ca619[_0x5bf2('0x2f')];}_0x3ceabf[_0x5bf2('0x1f')](_0x43c2f7)[_0x5bf2('0x30')](_0x5ca619);};}exports['show']=function(_0x3edba7,_0x2ea937){var _0x44a6a3={'raw':![],'where':{'id':_0x3edba7[_0x5bf2('0x31')]['id']}},_0x59ac8b={};_0x59ac8b[_0x5bf2('0x32')]=_[_0x5bf2('0x33')](db['DashboardItem']['rawAttributes']);_0x59ac8b['query']=_[_0x5bf2('0x33')](_0x3edba7[_0x5bf2('0x34')]);_0x59ac8b[_0x5bf2('0x35')]=_[_0x5bf2('0x36')](_0x59ac8b[_0x5bf2('0x32')],_0x59ac8b['query']);_0x44a6a3['attributes']=_[_0x5bf2('0x36')](_0x59ac8b[_0x5bf2('0x32')],qs[_0x5bf2('0x37')](_0x3edba7[_0x5bf2('0x34')][_0x5bf2('0x37')]));_0x44a6a3[_0x5bf2('0x38')]=_0x44a6a3[_0x5bf2('0x38')][_0x5bf2('0x39')]?_0x44a6a3[_0x5bf2('0x38')]:_0x59ac8b[_0x5bf2('0x32')];if(_0x3edba7[_0x5bf2('0x34')][_0x5bf2('0x3a')]){_0x44a6a3[_0x5bf2('0x3b')]=[{'all':!![]}];}_0x44a6a3=_['merge']({},_0x44a6a3,_0x3edba7[_0x5bf2('0x3c')]);return db['DashboardItem']['find'](_0x44a6a3)['then'](handleEntityNotFound(_0x2ea937,null))['then'](respondWithResult(_0x2ea937,null))[_0x5bf2('0x3d')](handleError(_0x2ea937,null));};exports[_0x5bf2('0x2c')]=function(_0x23e82c,_0xcdee4c){return db[_0x5bf2('0x3e')]['find']({'where':{'id':_0x23e82c['params']['id']}})['then'](handleEntityNotFound(_0xcdee4c,null))[_0x5bf2('0x2b')](removeEntity(_0xcdee4c,null))[_0x5bf2('0x3d')](handleError(_0xcdee4c,null));};function widgetAttributes(_0x541d7f){try{switch(_0x541d7f['type']){case'iframe':return[{'name':'attrUrl','value':_0x541d7f[_0x5bf2('0x3f')]||(_0x541d7f['attrs']&&_0x541d7f[_0x5bf2('0x40')][0x0]?_0x541d7f[_0x5bf2('0x40')][0x0][_0x5bf2('0x41')]:undefined)||_0x5bf2('0x42')}];case _0x5bf2('0x43'):return[{'name':'attrPath','value':_0x541d7f['attrPath']||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x0]?_0x541d7f[_0x5bf2('0x40')][0x0][_0x5bf2('0x41')]:undefined)||''}];case'clock':return[{'name':'attrHourFormat','value':_0x541d7f[_0x5bf2('0x44')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x0]?_0x541d7f['attrs'][0x0][_0x5bf2('0x41')]:undefined)||'HH:mm:ss'},{'name':_0x5bf2('0x45'),'value':_0x541d7f['attrTimezone']||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x1]?_0x541d7f[_0x5bf2('0x40')][0x1][_0x5bf2('0x41')]:undefined)||_0x5bf2('0x46')},{'name':_0x5bf2('0x47'),'value':_0x541d7f[_0x5bf2('0x47')]||(_0x541d7f['attrs']&&_0x541d7f['attrs'][0x2]?_0x541d7f[_0x5bf2('0x40')][0x2]['value']:undefined)||0xc}];case'counter':return[{'name':_0x5bf2('0x48'),'value':_0x541d7f[_0x5bf2('0x48')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x0]?_0x541d7f[_0x5bf2('0x40')][0x0]['value']:undefined)||_0x5bf2('0x49')},{'name':_0x5bf2('0x4a'),'value':_0x541d7f[_0x5bf2('0x4a')]||(_0x541d7f['attrs']&&_0x541d7f[_0x5bf2('0x40')][0x1]?_0x541d7f['attrs'][0x1][_0x5bf2('0x41')]:undefined)||[]},{'name':_0x5bf2('0x47'),'value':_0x541d7f['attrFontSize']||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f['attrs'][0x2]?_0x541d7f['attrs'][0x2][_0x5bf2('0x41')]:undefined)||0x14},{'name':'attrChannel','value':_0x541d7f['attrChannel']||(_0x541d7f['attrs']&&_0x541d7f[_0x5bf2('0x40')][0x3]?_0x541d7f[_0x5bf2('0x40')][0x3]['value']:undefined)||_0x5bf2('0x4b')},{'name':_0x5bf2('0x4c'),'value':_0x541d7f[_0x5bf2('0x4c')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f['attrs'][0x4]?_0x541d7f[_0x5bf2('0x40')][0x4][_0x5bf2('0x41')]:undefined)||''},{'name':'attrFaxAccounts','value':_0x541d7f['attrFaxAccounts']||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f['attrs'][0x5]?_0x541d7f[_0x5bf2('0x40')][0x5][_0x5bf2('0x41')]:undefined)||''},{'name':'attrSmsAccounts','value':_0x541d7f['attrSmsAccounts']||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f['attrs'][0x6]?_0x541d7f[_0x5bf2('0x40')][0x6]['value']:undefined)||''},{'name':'attrOpenchannelAccounts','value':_0x541d7f[_0x5bf2('0x4d')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x7]?_0x541d7f['attrs'][0x7][_0x5bf2('0x41')]:undefined)||''},{'name':_0x5bf2('0x4e'),'value':_0x541d7f['attrWhatsappAccounts']||(_0x541d7f['attrs']&&_0x541d7f[_0x5bf2('0x40')][0x8]?_0x541d7f['attrs'][0x8][_0x5bf2('0x41')]:undefined)||''},{'name':_0x5bf2('0x4f'),'value':_0x541d7f['attrChatWebsites']||(_0x541d7f['attrs']&&_0x541d7f[_0x5bf2('0x40')][0x9]?_0x541d7f[_0x5bf2('0x40')][0x9][_0x5bf2('0x41')]:undefined)||''}];case _0x5bf2('0x50'):case _0x5bf2('0x51'):return[{'name':_0x5bf2('0x52'),'value':_0x541d7f[_0x5bf2('0x52')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x0]?_0x541d7f['attrs'][0x0]['value']:undefined)||_0x5bf2('0x49')},{'name':_0x5bf2('0x53'),'value':_0x541d7f[_0x5bf2('0x53')]||(_0x541d7f['attrs']&&_0x541d7f['attrs'][0x1]?_0x541d7f['attrs'][0x1]['value']:undefined)||null},{'name':_0x5bf2('0x54'),'value':_0x541d7f['attrSerie3']||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x2]?_0x541d7f['attrs'][0x2][_0x5bf2('0x41')]:undefined)||null},{'name':_0x5bf2('0x4a'),'value':_0x541d7f[_0x5bf2('0x4a')]||(_0x541d7f['attrs']&&_0x541d7f[_0x5bf2('0x40')][0x3]?_0x541d7f[_0x5bf2('0x40')][0x3][_0x5bf2('0x41')]:undefined)||[]},{'name':'attrChannel','value':_0x541d7f[_0x5bf2('0x55')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x4]?_0x541d7f[_0x5bf2('0x40')][0x4]['value']:undefined)||_0x5bf2('0x4b')},{'name':'attrEmailAccounts','value':_0x541d7f['attrEmailAccounts']||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x5]?_0x541d7f[_0x5bf2('0x40')][0x5]['value']:undefined)||''},{'name':_0x5bf2('0x56'),'value':_0x541d7f['attrFaxAccounts']||(_0x541d7f['attrs']&&_0x541d7f[_0x5bf2('0x40')][0x6]?_0x541d7f[_0x5bf2('0x40')][0x6][_0x5bf2('0x41')]:undefined)||''},{'name':_0x5bf2('0x57'),'value':_0x541d7f['attrSmsAccounts']||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x7]?_0x541d7f[_0x5bf2('0x40')][0x7][_0x5bf2('0x41')]:undefined)||''},{'name':_0x5bf2('0x4d'),'value':_0x541d7f[_0x5bf2('0x4d')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x8]?_0x541d7f[_0x5bf2('0x40')][0x8][_0x5bf2('0x41')]:undefined)||''},{'name':_0x5bf2('0x4e'),'value':_0x541d7f[_0x5bf2('0x4e')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x9]?_0x541d7f[_0x5bf2('0x40')][0x9][_0x5bf2('0x41')]:undefined)||''},{'name':_0x5bf2('0x4f'),'value':_0x541d7f[_0x5bf2('0x4f')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0xa]?_0x541d7f[_0x5bf2('0x40')][0xa][_0x5bf2('0x41')]:undefined)||''}];case _0x5bf2('0x58'):return[{'name':'attrReport','type':_0x541d7f[_0x5bf2('0x59')]||(_0x541d7f['attrs']&&_0x541d7f[_0x5bf2('0x40')][0x0]?_0x541d7f[_0x5bf2('0x40')][0x0][_0x5bf2('0x5a')]:undefined)||null,'value':_0x541d7f['attrReport']||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x0]?_0x541d7f[_0x5bf2('0x40')][0x0][_0x5bf2('0x41')]:undefined)||null},{'name':_0x5bf2('0x5b'),'value':_0x541d7f[_0x5bf2('0x5b')]||(_0x541d7f[_0x5bf2('0x40')]&&_0x541d7f[_0x5bf2('0x40')][0x1]?_0x541d7f[_0x5bf2('0x40')][0x1][_0x5bf2('0x41')]:undefined)||0x0}];default:return[];}}catch(_0x376f3d){logger[_0x5bf2('0x2d')](_0x5bf2('0x5c'),JSON['stringify'](_0x376f3d));return[];}}exports['create']=function(_0x12a55e,_0x100e65){if(_0x12a55e[_0x5bf2('0x5d')]){_0x12a55e[_0x5bf2('0x5d')]['attrs']=widgetAttributes(_0x12a55e[_0x5bf2('0x5d')]);}return db[_0x5bf2('0x3e')][_0x5bf2('0x5e')](_0x12a55e[_0x5bf2('0x5d')],{})['then'](respondWithResult(_0x100e65,0xc9))[_0x5bf2('0x3d')](handleError(_0x100e65,null));};exports[_0x5bf2('0x2a')]=function(_0x555b77,_0x3e3e16){if(_0x555b77['body']['id']){delete _0x555b77[_0x5bf2('0x5d')]['id'];}_0x555b77['body'][_0x5bf2('0x40')]=widgetAttributes(_0x555b77[_0x5bf2('0x5d')]);return db['DashboardItem'][_0x5bf2('0x5f')]({'where':{'id':_0x555b77[_0x5bf2('0x31')]['id']}})[_0x5bf2('0x2b')](handleEntityNotFound(_0x3e3e16,null))[_0x5bf2('0x2b')](saveUpdates(_0x555b77[_0x5bf2('0x5d')],null))['then'](respondWithResult(_0x3e3e16,null))[_0x5bf2('0x3d')](handleError(_0x3e3e16,null));};